GoldenGate abending – Unable to open file

The GoldenGate data pump was abending on the source:

GGSCI (uiiompd17) 1> info all
 
Program     Status      Group       Lag at Chkpt  Time Since Chkpt
 
MANAGER     RUNNING                                           
EXTRACT     ABENDED     DPUMPxx     00:00:00      04:00:29    
EXTRACT     RUNNING     EXAxxxx     00:00:00      00:00:02    

The GoldenGate error log contained the below message:

2016-12-17 07:22:13  ERROR   OGG-01031  Oracle GoldenGate Capture for Oracle, dpumprp.prm:  There is a problem in network communication, a remote file problem, encryption keys for target and source do not match (if using ENCRYPT) or an unknown error. (Reply received is Unable to open file "/ggs//dirdat/rp013263" (error 11, Resource temporarily unavailable)).

The file directory that was being reported was for the target of the GoldenGate process. On the target side, the file did exist and there were no issues with the file system, mount point etc. I moved the file as follows:

mv /ggs//dirdat/rp013263 /ggs//dirdat/rp013263.old

I then restarted the abended data pump and normal processing was resumed.

Adabas ACBX direct calls in COBOL

In the Software AG Adabas V8.2.4 source lib (COBADA8), an example was provided to show how to code Adabas ACBX direct calls in COBOL. This is a very excellent skeleton to begin to code other Adabas direct call programs using ACBX calls. The example below takes that source program and corrects the mistakes and makes a few programmatic improvements.

Please click on the below MS Word document:

acbx-direct-call-example

Adabas 8391 Blocksize

Steps taken to convert to large block size

1. ADAORD existing database contents using RESTRUCTUREDB option

ADAORD RESTRUCTUREDB DBASSODEV=8391,DBDATADEV=8391,LPB=32760

2. Reformat existing datasets

ADAFRM ASSOFRM SIZE=26704,DEVICE=8391

3. Redefine database using ADADEF

ADADEF DEFINE DBNAME='TEST-DATABASE-44'
ADADEF        ASSOSIZE=26704,DATASIZE=30042,WORKSIZE=1100
ADADEF        MAXFILES=255
*
ADADEF FILE=1,CHECKPOINT
ADADEF NAME='CHECKPOINT-FILE',MAXISN=50000,UISIZE=5B
ADADEF                        NISIZE=20B,DSSIZE=500B
/*

4. RELOAD RESTRUCTURED DATA FROM STEP 1

ADAORD STORE ALLFILES,OVERWRITE

Performance recommendations for ADARUN parameters:
All these notes are going from 3390 to 8391. Other blocksizes are not considered. There are 4 major areas to consider:

A. LBP
B. Work dataset size and parameters.
C. PLOG parameters.
D. Cache parameters.

A. Increase LBP.

Double the size from the old.
NOTE: You may have to increase the Region size on the nuc step. The upper limit to the buffer pool is the number of buffer pool headers that must be scanned for every buffer flush. Traditionally, we like to stay under 30-40M. With 8391, there are fewer headers (ASSO blocksize is 1.6x bigger), therefore the buffer pool can be larger.

CAUTION: If you do not increase LBP, your performance may be degraded due to more IO (fewer blocks in LBP) and increased number of buffer flushes (full of update blocks, none to overwrite). Also consider doubling the size of LFIOP, if a large volume database and substantiated by pds history (mbr=APSDB2).

B. Work dataset size and parameters.

Considerations:
1. Has work dataset size been increased or not?
2. Parameters for the primary versus secondary?
   (AD.P.ADA—.MPM.CNTL(ADARUN or SECRUN)
3. Ideal sizes for Work or just convert?

1. If the overall size of Work has been increased and it is at least 2x larger than the old, you can just use the same LP and LWKP2 values as before. If it is not at least 2x bigger or you want ideal sizes, then move on.

2. Secondary LP and LWKP2 sizes.

a. Make changes to:

AD.P.ADA---.MPM.CNTL(SECRUN)
AD.P.ADA---.MPM.CNTL(SECNUCPS)

b. Determine size of SEC Work in blocks for an 8391.

Either do an Adarep on the secondary or use:
(number of cylinders) * 60
Call this WORKSIZE

c. Use LWKP2=100 (100 blocks)

d. For LP, use the smaller of
LP=65500
or
LP= WORKSIZE – 200

3. PRIMARY LP AND LWKP2 sizes, straight conversion over.
a. Make changes to:
AD.P.ADA—.MPM.CNTL(ADARUN)
AD.ADA—.CNTL(ADA—PS)

b. If the overall size of Work is as before (same number of cyls) and you do not want ideal sizes, and just want it all to be the same as the old, then use:

New LP    = (old LP) * 0.42         (can round up)
New LWKP2 = (old LWKP2) * 0.42      (can round up)

4. PRIMARY LP AND LWKP2 sizes, ideal sizes.
a. Make changes to:
AD.P.ADA—.MPM.CNTL(ADARUN)
AD.ADA—.CNTL(ADA—PS)

b. Determine size of SEC Work in blocks for an 8391.
Either do an Adarep on the secondary or use:
(number of cylinders) * 60
Call this WORKSIZE

c. Work III size.
For client use 1000.
NOTE: For other shops, there are much more important formulas. Work III needs to be at least 50 blocks (else nuc won’t start).

If users get a response code 73, then this area is currently filled up.  The immediate problem could be resolved by stopping the Sx users or issuing DELUI cmds.  We can than revisit resizing this area, probably by shrinking LP.

d. For LWKP2, use
New LWKP2 = (old LWKP2) * 0.42      (can round up)

NOTE: This client only, there are much more important formulas.

Work II is used only for complex searches (a rarity at here). The percent of complex searches here is less than 1%, the chances of 2 running concurrently is low. This is much smaller sizing than most other Adabas shops. In a worst case, if multiple very large complex searches need to run, there may be longer delay in getting to run (but maybe this is good punishment). If someone tries to do a complex or non-descriptor search on a file of more than 16M, they will get a response code 74 (which maybe they should). We can reconsider sizing this at a later time.

e. For LP, use the smaller of

LP=65500
or
LP= WORKSIZE – LWKP2 – 1000

C. PLOG parameters.

1. DUALPLD=8391
2. Determine size of PLOG in cylinders.
DUALPLS= cyls * 60

D. Cache parameters.
Not fully explored at this time. ADARUN CASSOMAXS and CDATAMAXS should be doubled to keep the same number of blocks in memory, but paging problems may result.