DBO1703E UNABLE TO OPEN PRIMARY OUTPUT FILE WITH DD NAME "dbdname "
Question:
For a run with execution option FUNCTION=INDEXECTRACT of a database with secondary indexes encounter error message:
IDI2802I FILE "indexdbdname" IS NOT AVAILABLE.
DBO1703E UNABLE TO OPEN PRIMARY OUTPUT FILE WITH DD NAME "indexdbdname ".
What needs to be checked?
Answer:
If you are trying to extract data to build first secondary index, so the output file has to be allocated based on DD name of that particular index, for example
//IDXDDNAM DD DISP=OLD,DSN=&DBIDX, ** ONE PER INDEX **
// UNIT=TAPE,VOL=SER=&VOLSER1
If you are using SIBUNLD1 as DD name, for example
//SIBUNLD1 DD DISP=OLD,DSN=&DBIDX, ** FOR THE PRIMARY INDEX ONLY **
// UNIT=TAPE,VOL=SER=&VOLSER1
which is just for primary index only, then you will encounter DBO1703E error message.
- SIBUNLD1
Defines the primary copy of the INDEXEXTRACT function. This DD statement must always be included for the INDEXEXTRACT function when SPLITOUTPUT=NO or when the primary index of a HIDAM database is to be extracted. However, it is not used during an INDEXEXTRACT when SPLITOUTPUT=YES, unless the primary index of a HIDAM database index is to be extracted. It can reside on tape or disk but due to the size of the file, tape is usually used. All DCB attributes are specified in the program.
Additional Information:From documentation:https://docops.ca.com/display/DMIMS/Customizing+CA+Secondary+Index+Builder+JCLsee section sample jclExtract Some of the IndexesIf only some of the indexes are to be extracted, the control statements for the index extract function are:FUNCTION=INDEXEXTRACT,DBDNAME=dbdname,INDEXDBDNAME=(pindex,sindex2)This example does the following:
- Scans the indexed database that has the DBD name specified.
- Builds an output records for the primary index, which has a DBD name of pindex. Also builds output records for the secondary index, which has a DBD name of sindex2.
- Writes the output records to different output files based on the index DBD name. All the primary index extraction records are written to the file with ddname SIBUNLD1. All the secondary index extraction records for secondary index, sindex2 are written to the file with ddname, sindex2. Two output files are built because SPLITOUTPUT=YES is the default.