How to locate a large element in an Endevor Library(ELIB) to fix error C1LB003E
search cancel

How to locate a large element in an Endevor Library(ELIB) to fix error C1LB003E

book

Article ID: 98069

calendar_today

Updated On:

Products

Endevor

Issue/Introduction

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.

Resolution

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.
/*

Additional Information

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"