IBM Support

II04891: ISPF LIBDEF SERVICE EXPLANATION.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as canceled.

Error description

  • THIS INFORMATIONAL APAR WAS OPENED TO PROVIDE A MORE DETAILED
    EXPLANATION OF THE ISPF LIBDEF SERVICE IN THE FOLLOWING USAGES:
    ****************************************************************
    LIBDEF VS APPLIDS   ********************************************
    ****************************************************************
        APPLICATIONS ARE DESIGNATED BY HAVING A DIALOG THAT RUNS
    UNDER ONE APPLID.  THE APPLID IS SPECIFIED BY THE 'NEWAPPL' PARM
    ON THE SELECT COMMAND. ADDITIONALLY, THE 'PASSLIB' PARM MAYBE
    USED ON THE SELECT  COMMAND TO PASS LIBDEFS DONE BY THE INVOKING
    APPLICATION ON TO THE NEW SUB-APPLICATION.
      THE FOLLOWING IS AN EXAMPLE OF HOW TO LIBDEF ISPTLIB WITH
    THE DATASET THAT CONTAINS THE COMMAND TABLE FOR APPC (APPCCMDS).
    ISSUING CLIST CCC WITH THE NEWAPPL PARM, WILL ISOLATE ANY
    PREVIOUS LIBDEFS FROM CLISTS CCC AND CMDC.
    .
          ISPEXEC SELECT CMD(CCC) NEWAPPL(TEMP)
          ------------
          CLIST CCC
          PROC 0
          ISPEXEC LIBDEF ISPTLIB DATASET ID(....)
          ISPEXEC SELECT CMD(CMDC) NEWAPPL(APPC) PASSLIB
          ISPEXEC LIBDEF ISPTLIB
          EXIT CODE(0)
    .
        LIBDEF'S ARE THE CURRENT APPLICATION LEVEL LIBRARY DEFINI-
    TIONS. WHEN YOU SPECIFY THE PASSLIB, YOU ARE PASSING ON THE
    CURRENT APPLICATION-LEVEL LIBRARY DEFINITIONS TO THE SELECTED
    APPLICATION.
       SO, A SUBSEQUENT LIBDEF AGAINST ANY OF THE PREVIOUSLY DEFINED
    LIBRARIES WILL RESULT IN THE CURRENT APPLICATION-LEVEL LIBDEF
    BEING CHANGED.  THIS CURRENT DEFINITION WILL BE CARRIED BACK TO
    THE ORIGINAL APPLICATION WITH ANY CHANGES MADE BY THE APPLICA-
    TION THAT THE PASSLIB WAS FOR.
      ISPF DOES MAINTAIN A CHAIN OF THE CURRENT LIBDEFS, SO THEY CAN
    BE REPLACED IN THE SEARCH SEQUENCE WHEN THE APPLICATION BEING
    SELECTED TERMINATES.
       THE KEY TO PROTECTING YOUR CHAINED LIBDEFS IS THE PASSLIB AND
    NEWAPPL PARMS.
       ***********************************************************
       ** NOTE ** READ "LIBDEF VS ISPTLIB AND COMMAND TABLES"   **
       ***********************************************************
       1 - TO PROTECT A SET OF LIBDEFS YOU WOULD SPECIFY NEWAPPL
           WITHOUT THE PASSLIB, ON THE SELECT COMMAND.
       2 - IF YOU WISH THE SELECTED NEWAPPL TO USE THE ESTABLISHED
           LIBDEFS, THEN SPECIFY THE PASSLIB WITH NEWAPPL.  BUT
           REALIZE THAT ANY CHANGES MADE TO THE LIBDEF IN THE NEW
           APPLICATION WILL BE CARRIED BACK TO THE INVOKING
           APPLICATION.
    ----------------------------------------------------------------
    EXAMPLE :
    
    SUPPOSE WE HAVE THE FOLLOWING SEQUENCE OF APPLICATIONS CALLED
    VIA CLISTS OR PROGRAM SELECTS:
    
       ... LIBDEF ISPPLIB DATASET ID(LIBB)      /* APPB PANEL LIB */
       ... SELECT CMD(CMDB) NEWAPPL(APPB) PASSLIB
                                 /* IN APPB NOW...                */
       ... LIBDEF ISPPLIB DATASET ID(LIBC)      /* APPC PANEL LIB */
       ... SELECT CMD(CMDC) NEWAPPL(APPC) PASSLIB
                                 /* APPB INVOKES APPC             */
       ... LIBDEF ISPPLIB        /* APPC RELEASES LIBDEF          */
    
     THE LIBDEF IS ISSUED WHILE IN APPB, APPC IS INVOKED WITH SELECT
    AND NEWAPPL WITH THE PASSLIB PARMS. THE LIBDEF ESTABLISH BY APPB
    IS PASSED TO APPC TO USE AS A TASKLIB.  APPC AT TERMINATION DOES
    A NULL LIBDEF, WHICH FREED THE EXISTING LIBDEF FOR ISPPLIB. THIS
    WILL ALSO EFFECT APPB'S TASKLIB SEARCH. YOU NEED TO ISOLATE THE
    LIBDEF'S FOR APPC WITHIN APPC, BY CHANGING THE SELECT ON CMDC.
    EXAMPLE :
    
       ISPEXEC SELECT CMD(CCC) NEWAPPL(APPC)
       ---
       CLIST CCC
       PROC 0
       ISPEXEC LIBDEF ISPPLIB DATASET ID(....)
       ISPEXEC SELECT CMD(CMDC)
       ISPEXEC LIBDEF ISPPLIB
       EXIT CODE(0)
    
    ----------------------------------------------------------------
    THE KEY IS THAT THE LIBDEF'S NEED TO BE DONE WHILE WITHIN THE
    APPLICATION IF YOU WANT TO RESTORE A PREVIOUS SET UPON RETURN
    FROM THAT APPLICATION.
    ----------------------------------------------------------------
    REFERENCE :
      V2.3 - SC34-4113 'DIALOG MANAGEMENT SERVICES',
             PG 77 "SELECT"
    
      V3.2 - SC34-4266 'DIALOG MANAGEMENT GUIDE',
             PG 309 "SELECT"
    
    ****************************************************************
    LIBDEF VS ISPTLIB AND COMMAND TABLES ***************************
    ****************************************************************
       IF AN APPLICATION IS INVOKED VIA THE SELECT WITH A NEWAPPL
    SPECIFIED AND THE APPLICATION HAS ITS OWN COMMAND TABLE THAT
    IS BEING LIBDEF'D TO ISPTLIB. THE LIBDEF OF ISPTLIB MUST BE DONE
    PRIOR TO THE ISSUING OF THE 'ISPEXEC SELECT CMD(..) NEWAPPL(..)'
    FOR THAT APPLICATION'S COMMAND TABLE TO BE AVAILABLE FOR USE.
       THIS IS DUE TO THE ATTEMPT TO OPEN THE COMMAND TABLE
    ASSOCIATED WITH THE APPLID, BEING DONE AT THE TIME THE SELECT
    IS PROCESSED. FAILING TO DO THE LIBDEF FOR ISPTLIB PRIOR TO THE
    SELECT WITH NEWAPPL WILL RESULT IN THE LIBDEF'D COMMAND TABLE
    NOT BEING OPENED AND COMMAND NOT BEING FOUND. IF THE UNIQUE
    COMMANDS ARE NOT FOUND FOR THIS APPLICATION THEN ISPCMDS IS THE
    DEFAULT COMMANDS TABLE LOADED FOR THAT DIALOG.
      THE FOLLOWING IS AN EXAMPLE OF HOW TO LIBDEF ISPTLIB WITH
    THE DATASET THAT CONTAINS THE COMMAND TABLE FOR APPC (APPCCMDS).
    
    ----------------------------------------------------------------
    EXAMPLE :
    
          ISPEXEC SELECT CMD(CCC) NEWAPPL(TEMP)
          ------------
          CLIST CCC
          PROC 0
          ISPEXEC LIBDEF ISPTLIB DATASET ID(....)
          ISPEXEC SELECT CMD(CMDC) NEWAPPL(APPC) PASSLIB
          ISPEXEC LIBDEF ISPTLIB
          EXIT CODE(0)
    ----------------------------------------------------------------
    THE KEY IS THAT THE LIBDEF FOR ISPTLIB IS DONE FROM WITHIN A
    NEWAPPL, THUS ISOLATING ANY PREVIOUS APPLID'S LIBDEFS. THE
    LIBDEF IS ISSUED PRIOR TO INVOKING THE NEW APPLID APPC, THIS
    APPCCMDS TABLE PART OF THE ISPTLIB SEARCH ORDER PRIOR TO THE
    SELECT ON CMDC. THIS MEANS THAT THE TABLE WILL BE OPENED ON
    THE SELECT AND APPCCMDS WILL BE AVAILABLE TO THE APPLICATION.
    ----------------------------------------------------------------
    REFERENCE :
      V2.3 - SC34-4113 'DIALOG MANAGEMENT SERVICES',
             PG  18 "NEWAPPL"
             PG  38 "COMMAND TABLES DEFINE COMMANDS...."
    
      V3.2 - SC34-4266 'DIALOG MANAGEMENT GUIDE',
             PG   5 "COMMAND TABLES"
             PG  19 "NEWAPPL"
             PG  53 "COMMAND TABLES DEFINE COMMANDS...."
    
    
    ***************************************************************
    LIBDEF VS ISPLLIB   *******************************************
    ***************************************************************
    WHEN DEALING WITH OTHER APPLICATIONS THEY MUST USE THE SELECT OR
    THE ISPLINK INTERFACE IN ORDER FOR THE LIBDEF TASKLIB DCB TO
    PASSED ON ANY LINKS OR ATTACHES.
    
    IF PROGRAM INVOKES ANOTHER PROGRAM USING CALL OR LINK CONVENTION
    THESE NESTED PROGRAMS ARE TRANSPARENT TO ISPF. HENCE, THE ISPF
    DOES NOT CONTROL THE LINK AND THE LIBDEF'D DCB  IS NOT PASSED,
    WHICH MAY RESULT IN THE ABEND806 CONDITION.
    SO, IF A PROGRAM ORIGINALLY INVOKED WITH THE SELECT, THEN DOES A
    CALL OR LINK TO ANOTHER PROGRAM & BOTH PROGRAMS HAVE BEEN LIBDEF
    TO ISPLLIB. THE SELECTED PROGRAM WILL BE FOUND, BUT THE LINKED
    PROGRAM WILL ABEND806.  SINCE ISPF IS NOT CONTROLLING THE LINK,
    THE LINK SVC'S DCB POINTER WILL NOT REFLECT THE LIBDEF.
    
    ADDITIONALLY, IF THE APPLICATION DOES A SELECT WITH NEWAPPL WITH
    OUT THE PASSLIB PARM, THE LIBDEF WILL NOT BE CARRIED OVER.
    REFERENCE :
       V2.3   "ISPF DIALOG MANAGEMENT SERVICES AND EXAMPLES"
               SC34-4113, PG 74, SELECT SERVICE
                          PG 53, LIBDEF SERVICE
    
       V3.2   "ISPF DIALOG MANAGEMENT GUIDE AND REFERENCE"
               SC34-4266, PG 306, SELECT SERVICE
                          PG 496.2, LIBDEF SERVICE
               ( LIBDEF ==> TNL SN29-6003-00 TO SC34-4266 )
    ****************************************************************
    LIBDEF VS SYSPROC   ********************************************
    ****************************************************************
    
    SYSPROC IS A TSO DATA DECLARATION ( DD ).
    LIBDEF IS AN ISPF SERVICE AND WILL ONLY EFFECT THE ISPF ENVIRON-
    MENT, I.E. ISPF DDS.
    
    TSO/E V2.1 HAS ADDED ALTLIB SUPPORT AND THIS CAN BE USED TO
    ALTER THE SYSPROC CONCATENATION SEQUENCE.
    
    REFERENCE :
      TSO/E   "TSO/E V2 SYSTEM PROGRAMMING COMMAND REFERENCE"
               SC28-1878, SECTION I COMMANDS AND SUBCOMMANDS
    
    ****************************************************************
    LIBDEF VS SPLIT SCREEN  ****************************************
    ****************************************************************
    LIBDEFS DO NOT CARRY ACROSS SPLIT SCREEN, TO UNDERSTAND WHY WE
    NEED TO LOOK AT WHAT SPLIT SCREEN ACTUALLY IS. SPLIT SCREEN
    CREATES TWO SEPARATE ISPF SESSIONS ( TWO ISPTASK TCBS UNDER ONE
    ISPMAIN ).  THIS MEANS,  THAT THERE IS A SEPARATE TASKLIB
    ASSOCIATED WITH EACH ISPTASK. THEREFORE, A LIBDEF WILL ONLY BE
    ASSOCIATED WITH THE ISPTASK / SESSION THAT IT IS ISSUED FROM.
    REFERENCE :
       V2.3   "ISPF DIALOG MANAGEMENT SERVICES AND EXAMPLES"
               SC34-4113, PG 74, SELECT SERVICE
                          PG 53, LIBDEF SERVICE
    
       V3.2   "ISPF DIALOG MANAGEMENT GUIDE AND REFERENCE"
                PAGE 496.1 - 496.2 LIBDEF SERVICE
               ( LIBDEF ==> TNL SN29-6003-00 TO SC34-4266 )
    
       MVS     "SUPERVISOR SERVICES AND MACRO INSTRUCTIONS"
    
           SC28-1154, PAGE 30-31 - PROGRAM MANAGEMENT, SEARCH ORDER
    

Local fix

  • KEYWORDS :
    ISPFINFO
    

Problem summary

Problem conclusion

Temporary fix

Comments

  • ISPF INFO APAR
    

APAR Information

  • APAR number

    II04891

  • Reported component name

    V2 LIB INFO ITE

  • Reported component ID

    INFOV2LIB

  • Reported release

    001

  • Status

    CLOSED CAN

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    1991-02-15

  • Closed date

    1991-02-19

  • Last modified date

    1991-07-24

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19N","label":"APARs - OS\/390 environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSSN3L","label":"z\/OS Communications Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"001","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
13 December 2020