Endevor inventory analyzer reports NO MATCHES found for all the COBOL load members in the "USING DSN" load library

Document ID : KB000053201
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Inventory analyzer reports NO MATCHES found for many of the COBOL members in the "USING DSN" load library., The reason for no matches is usually due to the compiler identifier not being amongst those currently listed within the inventory analyzer rules.

Solution:

This document illustrates how to edit the rules so the members can be matched to a type and processor group. In order for the analyzer to recognize the compiler you need to follow the 3 simple steps below to modify the analyzer rules accordingly.

  • Determine compiler's "primary translator"

  • Add primary translator and new LANG to DEFINES member

  • ESTABLISH new processor groups for the new LANG in *DBM* members

This document illustrates how to edit the rules so the members can be matched to a type and processor group by explaining ea ch of the above steps in more detail below:

  1. Step 1: Determine compiler's "primary translator"

    There are 2 ways you can do this:

    1. Browse your load members to determine the "primary translator".

      In the COBOL/LE module example below it is 5655G5300:
      BROWSE    TURKA02.TEST.LOADLIB(EXIT7CST)     Command ===>  *********************  . .....0C1UEXT07.....  . .....0CEEROOTD.....  . ..... CEESG006.....  ...................  ..5695PMB01 ...... . <<=== linkage editor  . ..5655G5300 .....  <<=== compiler/primary translator  .h......RSI70816474.  ............ ......H.  00..CEE........ 00.q  ....... ............. 
    2. "UnDUMMY" the C1MSGS DD in BC1JANLZ and specify SET REPORT LEVEL ALL. at the top of the analyzer input statements. This will list all the analyzer rules and provide detailed analysis of each member for which no matches were found.
      //C1MSGS1 DD SYSOUT=* //C1SUMARY DD SYSOUT=* //BSTIPT01 DD *   SET REPORT LEVEL ALL .   SET FROM DSN 'TURKA02.TEST.SOURCE' .   SET USING DSN 'TURKA02.TEST.LOADLIB' .     ANALYZE MEMBER *     ASSIGN ENV='ENV1'  SYS='KT1'  SBS='KT1'  CCID='LOAD'  COMMENT='INTIAL ENDEVOR LOAD'.
      In the example below, C1SUMARY lists several members that did not match any type/processor group combination:
      < MEMBER > MATCH <-- FROM DSNAME --> <-- USING DSNAME --> PAGE# TYPE GROUPAL0001D2 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1535 ANA02 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1545 COBOL CIINBL47ECHAETRA 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1545 ECHAETRP 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1552 ECHALELM 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1559 ECHALSIT 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1566 ECHALTYP 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1572 EDV155D 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1578 EDV278A 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47 ENCOPTBL 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL13ENHAEPRT 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47ENHALSIT 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47ENUXSITE 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 EXIT7CST 0 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1595 Q08ANA02 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1601 COBOL CIINBL47XIT7MAIL 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1601 ASSM ASHNBL47

      Viewing C1MSGS1 for the members that don?t match gives a detailed list of what characteristics it found:

      ANAL502I ANALYZE MEMBER AL0001D2 ANAL504I FROM DSNAME 'TURKA02.ANALYZER.JCLLIB' ANAL508I USING DSNAME 'TURKA02.TEST.LOADLIB' ANAL520E ANALYSIS OF MEMBER AL0001D2 FAILED, NO RULES MATCHED ANAL530I LIST OF DEFINITIONS WITH RESULTS: ANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: DB2 RESULT: TRUE ANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: IDMS RESULT: UNRESOANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: IMS RESULT: UNRESOANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: TOTAL RESULT: UNRESOANAL531I MAJOR CATEGORY: FEATURE MINOR CATEGORY: CAPEXOPT RESULT: UNRESOANAL531I MAJOR CATEGORY: GENTOOL MINOR CATEGORY: TELON RESULT: UNRESO...ANAL524I MODULE ATTRIBUTES ARE: ANAL525I AMODE31 EXEC NOT-ALIAS NOT-ONLYLD NOT-OVLY ANAL525I NOT-SCTR NOT-TEST RENT REUS RMODEANY ANAL528I LINKAGE EDIT TRANSLATOR IS: 5695PMB01 ANAL526I MODULE CSECT NAMES AND TRANSLATORS ARE: ANAL527I -> ESD #: 1 CSECT NAME: AL0001D2 TRANSLATOR: 5655G5300 ANAL527I ESD #: 2 CSECT NAME: IGZCBSO TRANSLATOR: 569623400 ANAL527I ESD #: 3 CSECT NAME: CEESTART TRANSLATOR: 569623400
      The detail report for the above member shows the primary translator is 5655G5300 and the module contains DB2 .
      ANAL502I ANALYZE MEMBER ECHAETRA ANAL504I FROM DSNAME 'TURKA02.ANALYZER.JCLLIB' ANAL508I USING DSNAME 'TURKA02.TEST.LOADLIB' ANAL520E ANALYSIS OF MEMBER ECHAETRA FAILED, NO RULES MATCHED ANAL530I LIST OF DEFINITIONS WITH RESULTS: ANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: DB2 RESULT: FALSE ANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: IMS RESULT: FALSE ANAL531I MAJOR CATEGORY: DBMS MINOR CATEGORY: TOTAL RESULT: FALSE ANAL531I MAJOR CATEGORY: FEATURE MINOR CATEGORY: CAPEXOPT RESULT: UNRESOLVEDANAL531I MAJOR CATEGORY: GENTOOL MINOR CATEGORY: TELON RESULT: UNRESOLVED...ANAL518I MODULE SOURCE IS: ANAL529I IDENTIFICATION DIVISION. ...ANAL529I STOP RUN.  ANAL524I MODULE ATTRIBUTES ARE: ANAL525I AMODE31 EXEC NOT-ALIAS NOT-ONLYLD NOT-OVLY NOT-REFR ANAL525I NOT-RENT NOT-REUS NOT-SCTR NOT-TEST RMODEANY ANAL528I LINKAGE EDIT TRANSLATOR IS: 5695PMB01 ANAL526I MODULE CSECT NAMES AND TRANSLATORS ARE: ANAL527I -> ESD #: 1 CSECT NAME: ECHAETRA TRANSLATOR: 5655G5300 ANAL527I ESD #: 2 CSECT NAME: IGZCBSO TRANSLATOR: 569623400 PL/X-390 ANAL527I ESD #: 3 CSECT NAME: CEESTART TRANSLATOR: 569623400 
      This detail report shows the primary translator is also 5655G5300, and has no database entries. You know by looking at the source that both modules are written in COBOL, but in order to distinguish between the different flavors of COBOL you need to add DEFINE and ESTABLISH pairs for the new translator and language (which we will call COBLE) and possible processor group combinations for each new translator you need to add to the analyzer rules.

  2. Step 2: Make a copy of the DEFINES member for edit

    1. Add a commented line at the top for the new translator in the comment box at the top:
      ** COBOL TRANS = 40CB1. ** COBOL TRANS = 5740CB103. ** COBOLII TRANS = 566895801. ** COBOLLE TRANS = 5655G5300. <<== new cobol compiler 
    2. In the COBOL section of the define statements, add a new DEFINE rule for COBLE and its translator.
      DEFINE LANG COBOL2 WHEN PRIMARY TRANSLATOR = 566895801.DEFINE LANG COBLE WHEN PRIMARY TRANSLATOR = 5655G5300. <<== Cobol/le compiler
    3. PF3 to save the changes.

      Now that the new LANGuage COBLE has been DEFINEd, corresponding processor group entries for that LANG must be ESTABLISHed.

  3. Step 3: Copy applicable *DBM* members for edit.

    Each *DBM* member (DB2DBMS, IDMSDBMS, IMSDBMS, NODBMS, TOTALDBM) has two COBOL and COBOL2 sections ( TPMON=' ' and TPMON= 'CICS' )

    Edit each member respectively to repeat one set of these sections and change all to match the new language. For the modules listed above, both DB2DBMS and NODBMS will need updating.

    In the example below member NODBMS is updated as follows:
    1. Page down to the first COBOL2 entry and RR the first line
      RR ************************************************************* 0584 ** THE FOLLOWING ESTABLISH TYPES AND GROUPS FOR NO DBMS WITH 0585 ** COBOL2 AND NO TP MONITOR 0586 **************************************************************** 0587 ESTABLISH TYPE COBOL GROUP CIINBL00 WHEN 0588 DBMS = '' AND LANG = COBOL2 AND TPMON = '' AND OPTIONS = 00. 0589 ESTABLISH TYPE COBOL GROUP CIINBL01 WHEN 0590 DBMS = '' AND LANG = COBOL2 AND TPMON = '' AND OPTIONS = 01. 0591 ESTABLISH TYPE COBOL GROUP CIINBL02 WHEN . . .
    2. Page down to the last COBOL2 entry; RR on that line (hint: f PL1 first) and eXclude the remaining lines
      000863 ESTABLISH TYPE COBOL GROUP CIINCL67 WHEN 000864 DBMS = '' AND LANG = COBOL2 AND TPMON = CICS AND OPTIONS = 67. 000865 ESTABLISH TYPE COBOL GROUP CIINCL68 WHEN RR 866 DBMS = '' AND LANG = COBOL2 AND TPMON = CICS AND OPTIONS = 68. x99999 ****************************************************************** 000868 ** THE FOLLOWING ESTABLISH TYPES AND GROUPS FOR NO DBMS WITH 000869 ** PL1 AND NO TP MONITOR 000870 ******************************************************************  
    3. Hit enter for the repeat

    4. In order to make a global change easier, exclude from the original COBOL2 section?s last line to the top of the member (only lines 867 to 1151 should be visible)
      000865 ESTABLISH TYPE COBOL GROUP CIINCL68 WHEN xx DBMS = '' AND LANG = COBOL2 AND TPMON = CICS AND OPTIONS = 68. 000867 *******************************************************************000868 ** THE FOLLOWING ESTABLISH TYPES AND GROUPS FOR NO DBMS WITH 000869 ** COBOL2 AND NO TP MONITOR 000870 *******************************************************************000871 ESTABLISH TYPE COBOL GROUP CIINBL00 WHEN
    5. Perform a simple change all: C ALL COBOL2 COBLE NX to establish a relationship between the new LANG (COBLE) and the endevor type to which you want it associated (e.g., COBOL)

    6. A second change all is required to distinguish processor groups, as it is now we have LANG COBLE mapped to CII proc groups:
      000868 ** THE FOLLOWING ESTABLISH TYPES AND GROUPS FOR NO DBMS WITH ==CHG> ** COBLE AND NO TP MONITOR 000870 *************************************************************** 000871 ESTABLISH TYPE COBOL GROUP CIINBL00 WHEN ==CHG> DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = 00. 000873 ESTABLISH TYPE COBOL GROUP CIINBL01 WHEN ==CHG> DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = 01. 000875 ESTABLISH TYPE COBOL GROUP CIINBL02 WHENC ALL CII CLE NX 000868 ** THE FOLLOWING ESTABLISH TYPES AND GROUPS FOR NO DBMS WITH ==CHG> ** COBLE AND NO TP MONITOR 000870 *************************************************************** ==CHG> ESTABLISH TYPE COBOL GROUP CLENBL00 WHEN ==CHG> DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = 00. ==CHG> ESTABLISH TYPE COBOL GROUP CLENBL01 WHEN ==CHG> DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = 01. ==CHG> ESTABLISH TYPE COBOL GROUP CLENBL02 WHEN 
    7. Now RESET to refresh the excluded lines.

      There are still two more sections for OBJECTS at the bottom of the *DBM* members that require updating:

    8. Page down to approximately line 2847:
      002847 ******************************************************************** 002848 ** THE FOLLOWING ESTABLISH TYPES FOR OBJECTS OF THE VARIOUS LANGUAGES002849 ** WITH NO DBMS AND NO TPMONITOR 002850 *********************************************************************
      The entries for COBOL and COBOL2 are at approximately line 2859:
      002859 ESTABLISH TYPE COBOL GROUP COBNBOD7 WHEN 002860 DBMS = '' AND LANG = COBOL AND TPMON = '' AND OPTIONS = D7. 002861 ESTABLISH TYPE COBOL GROUP COBNBOD8 WHEN 002862 DBMS = '' AND LANG = COBOL AND TPMON = '' AND OPTIONS = D8. 002863 ESTABLISH TYPE TELON GROUP COBNBOD9 WHEN 002864 DBMS = '' AND LANG = COBOL AND TPMON = '' AND OPTIONS = D9. 002865 ESTABLISH TYPE TELON GROUP COBNBOE0 WHEN 
    9. Repeat the COBOL2 lines (2867-2874) and update manually for CLE and COBLE
      ESTABLISH TYPE TELON GROUP CIINBOE0 WHEN DBMS = '' AND LANG = COBOL2 AND TPMON = '' AND OPTIONS = E0.ESTABLISH TYPE COBOL GROUP CLENBOD7 WHEN DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = D7. ESTABLISH TYPE COBOL GROUP CLENBOD8 WHEN DBMS = '' AND LANG = COBLE AND TPMON = '' AND OPTIONS = D8.
    10. Repeat for the CICS object section
      002903 ******************************************************************** 002904 ** THE FOLLOWING ESTABLISH TYPES FOR OBJECTS OF THE VARIUOS LANGUAGES 002905 ** WITH NO DBMS AND TPMONITOR= CICS 002906 **********************************************************************
      (Approximately Lines 2923-2930).

    11. Repeat the above sequence of events for STEP 3 for each *DBM* member applicable for your site (DB2, IDMS, etc).

    12. PF3 to save

      Update BC1JANLZ jcllib member to use your updated members in place of the originals and you are all set.

      Your COBOL/LE load and source members should now find processor group matches using the inventory analyzer. As seen in the new C1SUMARY below the members that had no match previously now do:
      < MEMBER > MATCH <-- FROM DSNAME --> <-- USING DSNAME --> PAGE# TYPE GROUPAL0001D2 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1535 COBOL CLE2BL47 ANA02 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1545 COBOL CIINBL47ECHAETRA 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1545 COBOL CLENBL49 ECHAETRP 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1552 COBOL CLENBL49 ECHALELM 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1559 COBOL CLENBL47 ECHALSIT 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1566 COBOL CLENBL49 ECHALTYP 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1572 COBOL CLENBL47 EDV155D 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1578 COBOL CLENBL47 EDV278A 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47 ENCOPTBL 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL13ENHAEPRT 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47ENHALSIT 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 ASSM ASHNBL47ENUXSITE 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1590 COBOL CLENBL47 EXIT7CST 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1595 COBOL CLENBL47 Q08ANA02 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1601 COBOL CIINBL47XIT7MAIL 1 TURKA02.TEST.SOURCE TURKA02.TEST.LOADLIB 1601 ASSM ASHNBL4