Example program ASMADA9 calls ADABAS version 8.5 with ACBX and multi-fetch to read the sample “Employee” file number 2.
The ACBX copybook is unchanged however a small modification has been made to the ADABDX macro to allow equates to be expanded and the different ABD’s for format buffer, record buffer, search buffer, value buffer, etc. to be coded (see modified ADABDX).
The file is read using descriptor AA (A8) employee number retrieving chunks of 100 records per call. This is unblocked after calling ADABAS by examining each 16 byte entry of the multi-fetch buffer for response code zero, or three (EOF). The number of records returned in the call is indicated in (MBCOUNT), the first full word of the multi-fetch data area.
The JCL to run the assembled/linked program is as follows, with the ADARUN card specifying PROG=RENTUSER to indicate the fully reentrant ADABAS link module is to be used. The calling parameters to do this are shown in the source of ASMADA9, see contents of nine full words stored into ADAPAL:
//NRUNADA9 JOB (0010),'RUN ASMADA9',
// NOTIFY=&SYSUID.,
// REGION=0M,
// CLASS=A,
// MSGLEVEL=(1,1),
// MSGCLASS=X
//*
// EXPORT SYMLIST=*
// SET HLQ=<TSO-ID>
// SET MLQ=<PROJECT>
//*
//JOBLIB DD DISP=SHR,DSN=&HLQ..&MLQ..LOAD
// DD DISP=SHR,DSN=SAG.ADA854.LOAD
//*
//ADAPGM EXEC PGM=GVBADA9
//*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//DDPRINT DD SYSOUT=*
//DDDRUCK DD SYSOUT=*
//DDODATA DD DISP=SHR,DSN=&HLQ..&MLQ..ADAF002
//*
//DDCARD DD *
ADARUN PROG=RENTUSER,MODE=MULTI,SVC=245,DEVICE=3390,DBID=300
/*
Sample output is show below:
ASMADA: OPEN DONE
ASMADA: READ DONE 11100102EDGAR PETER SCHINDLER
ASMADA: READ DONE 11100105CHRISTIAN SCHIRM
..................
.. many records ..
..................
ASMADA: READ DONE 60016228SONIA JACOTOT MARTINEZ
ASMADA: READ DONE 60016231ARTURO DE LA HOZ SERRANO
ASMADA: READ DONE 60016233JORGE BELTRAN DE LA IGLESIA
ASMADA: READ DONE 60016287ROBERTO OSEA
ASMADA: END OF DATA
ASMADA: CLOSE DONE
ASMADA9: Records read: 1107
ASMADA9: Using L3 commands: 12