ELIBs are a very solid solution to record the components of an element in the Endevor inventory.
However, when elements are big or are growing, issues can occurs, especially when components are fragmented and/or the definition of the ELIB is not adjusted.
The error C1LB003E typically occurs when moving an element which size that exceeds the "Reserve Threshold" defined for this library.
In order to resolve the problem, identify the large member at the source of the action from the related ELIB dataset.
For example, if a Move action from ENV1 stage 1 to ENV1 stage 2, the information about the element/member that causes the error C1LB003E in the Stage 2 ELIB must be researched in the "FROM LOCATION" of the move, i.e. the Stage 1 ELIB. The same situation can occurs for any action updating a library, i.e. Add, Transfer, etc.
To resolve the problem:
1 - Gather Information:
In case of issue, look at the C1MSGS1 of the failing job and identify the Endevor ELIB and member in the C1LB003E message.
Identify the related ELIB defined at the source of the action from the Type definition.
In case you want to anticipate the move of a large element, identify the related ELIB defined at the source of the action from the Type definition.
Run BC1PNLIB to gather information about the member(s) stored in the ELIB defined in the "FROM location" of the action :
Command is "INQUIRE DDNAME=ELIB OPTION MEMBERS"
The JCL to run the INQUIRE would be:
//ELBINQR EXEC PGM=BC1PNLIB
//STEPLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQAUTU
// DD DISP=SHR,DSN=xxx.xxxxxx.CSIQUATH
//CONLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQLOAD
//ELIB1 DD DISP=SHR,DSN=YOUR.ENDEVOR.ELIB.FILE.NAME
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//BSTERR DD SYSOUT=*
//SYSIN DD *
INQUIRE DDNAME=ELIB1
OPTION MEMBER
/*
2 - Analyze the Results:
The listing shows each member and provides the following information:
...+....10...+....20...+....30...+....40...+....50...+....60...+....70...+....80...+....90...+....100..+....110..+....120..+....130
MEMBER=ELSL0001 START PAGE # 896 END PAGE 1281 STAMP # 7 # RECS 390000 # BYTES 1560917 # PAGES 386 C
/ ENV1 SYS0001 SSY0001 EELB0001 TYP0001 2 0001.0001 15/355 04:25 0
The number of pages is located from column 121 to 125, the range for pages number is 1-99999
example:
Use command "f p'#' 122 122" to research member with more than 999 pages.
Use command "f p'#' 123 123" to research member with more than 99 pages.
Use command "f p'#' 124 124" to research member with more than 9 pages.
The member name is available in the first line at the 13th column
The element name is available in the next line at the 44th column
You can use the FIND command to locate the element and member name.
3 - Review the ELIB definition:
Now that you have the information from the listing and found the large member, you have to adjust your ELIB with an accurate RESERVE PAGES value.
Using the sample above, notice the largest member is 386 Pages, then a "RESERVE PAGES" size of at less 386 will match the requirement.
Also, in case of error C1LB003E, you need to expand the ELIB by forcing the allocation of more secondary space before to rerun the action.
However the member fills 386 pages, the reserve page must be changed to a minimum of 386.
Regarding the secondary space allocation, a value of 792 is adequate because it includes the number of pages necessary to store element EELB0001 and the "RESERVE PAGES" value, i.e., 386+386=792.
4 - Fix the ELIB definition
This operation is done in the two following steps:
- Allocate more secondary space:
Run BC1PNLIB utility with "EXPAND" function.
The JCL to run the INQUIRE would be:
//ELBEXPD EXEC PGM=BC1PNLIB
//STEPLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQAUTU
// DD DISP=SHR,DSN=xxx.xxxxxx.CSIQUATH
//CONLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQLOAD
//ELIB1 DD DISP=SHR,DSN=YOUR.ENDEVOR.ELIB.FILE.NAME
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//BSTERR DD SYSOUT=*
//SYSIN DD *
EXPAND DDNAME = INITVSAM
ALLOCATE PAGES = 792
.
INQUIRE DDNAME=ELIB1.
/*
- Adjust the ELIB definition:
Run BC1PNLIB utility with "ADJUST" function.
The JCL to run the INQUIRE would be:
//ELBADJT EXEC PGM=BC1PNLIB
//STEPLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQAUTU
// DD DISP=SHR,DSN=xxx.xxxxxx.CSIQUATH
//CONLIB DD DISP=SHR,DSN=xxx.xxxxxx.CSIQLOAD
//ELIB1 DD DISP=SHR,DSN=YOUR.ENDEVOR.ELIB.FILE.NAME
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//BSTERR DD SYSOUT=*
//SYSIN DD *
ADJUST DDNAME = INITVSAM
ALLOCATE PAGES = 792
RESERVE PAGES = 386
.
INQUIRE DDNAME=ELIB1.
/*
For further information about Elibs and their utilities please refer to
- The section "Setting Up ELIB Data Sets"
- Technical document "Tips and Techniques for Managing Endevor Elibs"