VSE/ESA LIBRARIAN Server for CMS Users Release 3.2

This edition applies to Version 3 Release 1 of the VSE/ESA LIBRARIAN Server for CMS Users

© Copyright International Business Machine Corporation 1994


Table of Contents

General Information

  • Presentation
  • Installation.
  • Requirements
  • Installation steps:
  • Executing LIBRCMS.
  • Stopping LIBRCMS.
  • LIBRCMS Function requests

  • READ function.
  • READUPDT function.
  • LOCK function.
  • UNLOCK function.
  • WRITE function.
  • WRITEDAT function.
  • Differences between WRITE and WRITEDAT
  • LISTLIB function
  • LISTDIR function
  • LIBREDIT EXEC procedure.

  • General overview
  • LIBREDIT profile
  • Edit and modify VSE/ESA members under CMS
  • Locking or unlocking VSE/ESA library members
  • Edit VSE/ESA Library directory in FILELIST format
  • Panel column meaning:
  • Edit VSE/ESA sublibrary directory in FILELIST format
  • Messages.


    General Information


    Presentation

    The "VSE/ESA LIBRARIAN Server for CMS Users" makes CMS developers get library members catalogued into VSE/ESA libraries using direct program to program communications by means of the APPC/VM protocol.

    • The VSE/ESA LIBRARIAN Server is started in an endless partition and waits for CMS users requests.

    • This server may handle only one request at a time. This means that if 2 CMS users are competing to get Librarian services, the first one will be served, and the second one will have to try again a few seconds later.

    • All communications use APPC/VM-IUCV protocols.

    • The conversation is initiated from a CMS user by a simple command:

      LIBRCMS parameter_list

    • The LIBREDIT procedure is also provided to edit VSE Library members directly under CMS by using the favorite user editor (eg. XEDIT).

    • Only members having a logical record size of 80 bytes may be processed. Thus, this excludes of course PHASE or DUMP member types.

    Installation.


    Requirements

    1. VSE/ESA 1.3.0 and up

    2. VM/ESA (any release)

    3. Each CMS user CP directory entry should have defined: OPTION MAXCONN n IUCV ALLOW IUCV *IDENT resid GLOBAL or IUCV *IDENT ANY GLOBAL

      This implies that it also may work by using ISFC or within a TSAF collection.

    4. A free partition of 1M minimum for running the LIBRARIAN Server. It may be a dynamic partition. At least 50K should be allocated by means of the SETPFIX JCL command to fix pages needed for APPC/VM communications.
    To be noticed:

    1. Although the VSE/ESA program is the server, IUCV *IDENT has to be specified for every user of LIBRCMS. This is not an error.

    2. APPC/VM definitions are not required when IPLing VSE/ESA (SET XPPC commands).

    3. The name "LIBRCMSV" must NOT be defined by SET XPCC TARGET at IPL time.

    Installation steps:

    1. Send the LIBRCMSI JCL job to the VSE/ESA machine. This job catalogs the unique LIBRCMSV phase to PRD2.COMM.

    2. Catalog files into a CMS minidisk accessible from all authorized users (eg. 19E).

      • LIBRCMS MODULE

      • LIBREDIT EXEC

      • LIBREDIT $PROFILE

      • LIBUMEA REPOS

      • LIBUME TXTAMENG

    3. That's all. Isn't it tough?

    Executing LIBRCMS.

    1. From the VSE part (you may use file LIBRCMS JCL as sample)
         * $$ JOB JNM=LIBRCMS
         // JOB JNM=LIBRCMS
         // SETPARM SRVNAME=GEGESRV
         // LIBDEF *,SEARCH=PRD2.COMM
         // EXEC LIBRCMS,SIZE=AUTO
         /*
         /&
         * $$ EOJ
      

    2. From the CMS user part:
       LIBRCMS func lib sublib mname mtype lockid server-name fname ftype fmode
      

      Where:

      • "func" is the function that you are requesting for the specified member to be applied by the VSE/ESA LIBRARIAN Server. It may be:
        • LISTDIR
        • LISTLIB
        • LOCK
        • READ
        • READUPDT
        • UNLOCK
        • WRITE
        • WRITEDAT

        All these functions are discussed in detail in chapter "LIBRCMS Function requests".

      • "lib, sublib, mname, and mtype" apply to the VSE/ESA member to be retrieved.

      • "lockid" specifies a unique string from 1 to 8 characters to identify the member owner. It is used by the VSE Librarian to lock a sublibrary member. A simple practice would specify the CMS virtual machine name.

      • "server-name" is the name that you specified via the SETPARM SRVNAME command and that you are allowed to connect to (IUCV *IDENT resid) as specified in your Virtual Machine directory entry.

      • "fname, ftype, and fmode" refer to the CMS file-id.
      All these parameters are mandatory in the given order. However depending on the function, some of them may have no meaning (for example a cms file-id is not necessary for LOCK or UNLOCK functions), in such cases place-holders are required. For example:
         LIBRCMS READ * * mymemb mytype % serverid mymemb mytype a1
                             or
         LIBRCMS UNLOCK mylib mysublib mymemb mytype mylockid serverid % % %
      
      In the above examples % signs are place holders, but they could be of any string from 1 to 8 characters.

      If lib=* (only valid with READ function), then, members will be searched according to the sublibrary chain: // LIBDEF SOURCE,SEARCH=(...)

      Notes:

      1. One can retrieve any member with any member-type (even PROC, TEXT... etc)

      2. Both temporary and permanent chains are used

      3. Of course, the disk specified by "fmode" should have a R/W access mode, and be large enough to contain the output file.

      4. If the output file already exists, the retrieved member is appended to it. This may be an alternative of the member generic format (xxx*.yy*) which is not allowed with LIBRCMS.

    Timeout Detection
    If VSE does not reply within a 10 second interval, then the request is cancelled with message: STN008E.


    Stopping LIBRCMS.

    To stop the server, issue the Attention Routine MSG command: MSG partition-id

    LIBRCMS Function requests

    We have previously seen that the first parameter of the LIBRCMS command must be the function request sent to the VSE Librarian Server. Here is the list of all valid function requests.


    READ function.

    When a READ request is used, the member is retrieved either from an explicitly specified VSE/ESA sublibrary (that we'll call "fully qualified member"), or from a sublibrary belonging to the VSE/ESA LIBRARIAN Server partition SOURCE chain specified by LIBDEF commands. It does no matter whether or not the specified member has previously been locked.


    READUPDT function.

    With this function, you're requesting the member from the VSE/ESA LIBRARIAN Server, but you also indicate your intent to modify it. Therefore the member will be locked by the VSE/ESA Librarian to insure that no-one else will update while you're working on it. This function is rejected if one of the following conditions exists:

    • The member is not fully qualified.

    • The member is currently locked.

    LOCK function.

    By using this function you're requesting to lock the member without reading it. This may be useful when you're working on a project and you don't have enough space on your CMS minidisk to store all project members. Doing this reserves the member for your own use. Later you'll be able to issue a simple READ request to get this locked member. This function is rejected if one of the following conditions exists:

    • The member is not fully qualified.

    • The member is currently locked.

    UNLOCK function.

    By using this function you're asking for unlocking of the fully qualified member. This might be used if you locked a member (by READUPDT or LOCK) but you don't intend anymore to modify it. This function is rejected if one of the following conditions exists:

    • The member is not fully qualified.

    • The lock identifier (LOCKID) does not have the same value as when the member was locked.

    • The member was not previously locked.

    WRITE function.

    Use this function to add or update a member to the VSE/ESA sublibrary. This function is rejected if one of the following condition exists:

    • The member is not fully qualified

    • The member already exists but was not previously locked

    • The lock identifier (LOCKID) does not have the same value as when the member was locked

    Note: The member is automatically unlocked if the function was successfully completed, otherwise it remains locked.


    WRITEDAT function.

    This function is identical to the WRITE function, with only one difference: it sets the sublibrary member with the DATA=YES attribute. Usually this is used in conjunction with PROC or REXX member types. They are different figures you can met:

    Differences between WRITE and WRITEDAT

    1. WRITEDAT always forces the DATA=YES attribute either for new or old members.

    2. WRITE
      • For new members it sets DATA=NO
      • For old members it keeps the same attribute.

    Note: There is no way using LIBRCMS to reset DATA=YES to DATA=NO (so far). In such a case, you must catalog the member by using VSE job.


    LISTLIB function

    This asks for a library directory. You may use generic name for the sublibrary (eg. PRD2.SQL*). The CMS file created by this function will contain one line for each sublibrary directory entry. Each line has the internal Librarian format as described by the macro INLCSBST. You'd better use LIBREDIT EXEC to have a nice display,


    LISTDIR function

    This asks for a directory list of the specified sublibrary. The sublibrary cannot be specified as generic (eg. PRD2.*). However you may get a partial list by using generic names for members For example PRD2.SQL340.ARI*.PROC would list all SQL/DS procedure directory entries. The CMS file created by this function will contain one line per member directory entry. Each line is under the internal Librarian format as described by the macro INLCMBST. You'd better use LIBREDIT EXEC to have a nice display,


    LIBREDIT EXEC procedure.


    General overview

    This procedure is a sort of user front-end for using internally the LIBRCMS module. It allows:

    1. To edit a VSE/ESA library member from a specified sublibrary

    2. To edit a VSE/ESA library member from a sublibrary specified thru a LIBDEF command when starting the VSE/ESA librarian server.

    3. To edit, modify and copy the modified member to the VSE/ESA sublibrary.

    4. To add a new member to a VSE/ESA sublibrary

    5. To display in FILELIST format the caracteristics of all or selected sublibraries of a particular library.

    6. To display in FILELIST format a list of all or selected members belonging to a VSE/ESA sublibrary. Edit/Update a selected member from the FILELIST is then possible.

    7. Lock or unlock a particular member from a specified sublibrary
    The LIBREDIT invoking syntax is as follows:
             LIBREDIT member-id (option 
    
    Where:

    • member-id specifies the member(s) to be processed. Depending on the "option" you have also specified, it may be either fully or partially qualified. If it has to be fully qualified, you must specify all the 4 qualifiers defining entirely a VSE/ESA library member:

      library sublibrary member-name member-type

    • option may be one of the following:
      • DIR to display a VSE/ESA sublibrary directory in CMS FILELIST
      • LIB to display a VSE/ESA library directory in CMS FILELIST
      • LOCK to lock a member without reading it from the VSE/ESA library.
      • READ to be able to edit member.
      • UNLOCK to unlock an already locked member
      • UPDATE to be able to edit and modify a member. format.


    LIBREDIT profile

    Before calling LIBREDIT, you must specify a few keywords and arguments in the LIBREDIT $PROFILE file.

          EDITOR=editor_name            optional
          LOCKID=lock_identifier        mandatory except for the READ option
          REPLACE=YES | NO             (NO is the default)
          SRVNAME=server_name           mandatory
          WORKDISK=A                    optional
    

    Notes:

    1. If EDITOR is not specified, XEDIT is assumed.

    2. LOCKID will be used for READUPDT, WRITE, LOCK and UNLOCK functions. if not specified, the CMS Virtual machine name will be used.

    3. REPLACE option
      YES specifies that you want always get a new copy from the VSE library. If such a file already exists on your CMS work disk, it will be replaced without any message.

      NO specifies that you don't want to replace the existing file on your work disk. Instead a warning message is issued. This is the default.

      CMSCOPY specifies that LIBREDIT has to search the member first from your CMS work disk before to search it from the VSE sublibrary. This option is meaningful only when editing a file with update intent AND if the member is already locked by yourself. If the member is not already locked, then a new copy is always taken from the VSE sublibrary. This would prevent you work on a back level copy. Without an update intent, the member is always read from the VSE sublibrary.

    4. SRVNAME must be the name that you must have specified via the // SETPARM SRVNAME JCL control statement, and that you are allowed to connect to (IUCV *IDENT resid) as specified in your Virtual Machine directory entry (unless resid=ANY).

    5. WORKDISK refers to the disk into which the file has to be filed. If not specified, A is assumed.

    6. If you wish to abbreviate the LIBREDIT word (to have a XEDIT like invocation), you may add a synonym to your synonym list. For example, provided the following file: MY SYNONYM
       
           BROWSE   B     1
           LIBREDIT V     1          <----
       
         Just issue
         SYNONYM MY (usually put into your PROFILE EXEC)-
      

      Therefore, you may now edit VSE members merely by typing: V mname mtype


    Edit and modify VSE/ESA members under CMS

    The invoking syntax may be one of the following:

              LIBREDIT lib.sublib.mname.mtype  (READ | UPDATE
                        or
              LIBREDIT lib.sublib mname.mtype  (READ | UPDATE
                        or
              LIBREDIT lib sublib mname mtype  (READ | UPDATE
                        or
              LIBREDIT mname mtype             (READ
                        or
              LIBREDIT mname.mtype             (READ
    

    Note: READ is the default option.

    The following examples are valid:

          LIBREDIT ijsysrs.syslib.$0jcl.proc
          LIBREDIT ijsysrs syslib $0jcl proc (update
          LIBREDIT $0jcl proc
          LIBREDIT $0jcl.proc
    

    But, the following are invalid:

          LIBREDIT ijsysrs syslib $0jcl.proc
          LIBREDIT ijsysrs.syslib $0jcl proc
          LIBREDIT $0jcl.proc  (update
    

    Automatic Update for XEDIT users
    If your favorite editor is XEDIT, and you have modified the member, you may automatically send it back to the VSE sublibrary. You just have to enter "VSEFILE" on the XEDIT command line when your changes are completed.
    If you issue neither VSEFILE, nor SAVE, nor FILE commands, the file will disappear from your work disk, but the file will stay locked (same as the LOCK option).


    Locking or unlocking VSE/ESA library members

    You may also use LIBREDIT to (un)lock a member of a VSE/ESA sublibrary. The invoking command may be one of the following:

              LIBREDIT lib.sublib.mname.mtype  (LOCK | UNLOCK
                        or
              LIBREDIT lib.sublib mname.mtype  (LOCK | UNLOCK
                        or
              LIBREDIT lib sublib mname mtype  (LOCK | UNLOCK
    

    As you may notice only fully qualified member specifications are possible.

    Before you READ or LOCK a member, LIBRCMS checks whether this file exists on your CMS work disk, unless REPLACE=YES has been specified within your LIBREDIT profile. If this file exists and REPLACE=NO was specified, your request is rejected. The reasons for such a logic are the following:

    1. With READ requests, you're asking for copying a library member to your work disk. It may happen that there is already a file with the same name which has nothing to do with the VSE library member. Rejecting the request prevents that you erase this file by accident.

    2. With LOCK requests, you merely tell VSE that you intend to update this member, but you will get it later from the VSE library. However, as soon as the LOCK is accepted you are allowed to WRITE the member back with any copy you currently have on your work disk (which is maybe different from the actual copy in library). This is error prone because there is a potential exposure to lose updates done by other people (before your LOCK request) on this particular VSE library member. Rejecting the request avoids that you might work on a non-valid copy.


    Edit VSE/ESA Library directory in FILELIST format

    You may use LIBREDIT to display the list of the sublibraries of a particular VSE/ESA library in FILELIST-like format. Please look at Figure 1 for an example. The invoking syntax may be one of the following:

              LIBREDIT lib                     (LIB
              LIBREDIT lib.sublib              (LIB
              LIBREDIT lib sublib              (LIB
    

    For example, here are are valid commands:

              LIBREDIT prd2.sql340 (lib
              LIBREDIT prd2.sql*   (lib
              LIBREDIT prd2        (lib
    

    Figure 1. Example ff Library Directory in FILELIST mode.

    +--------------------------------------------------------------------------------+
    |                                                                                |
    | VSE-ESA  LIBRARY  H1  V 80  Trunc=80 Size=53 Line=1 Col=1 Alt=0                |
    | Cmd Library  Sublib Reclaim Members Used/Blk Held/blk  Lock   Creation-Date    |
    |                                                                                |
    |     PRD2     CONFIG   < A >      51      116        0    0  93-07-20 12:43.46  |
    |     PRD2     SAVE     < A >      35       53        0    0  93-07-20 12:43.47  |
    |     PRD2     PROD     < A >    4350    45064        0    0  93-07-20 12:43.47  |
    |     PRD2     DBASE    < A >    1066    12241        0    0  93-07-20 12:43.47  |
    |     PRD2     COMM     < A >       9       66       42    0  93-07-20 12:43.47  |
    |     PRD2     COMM2    < A >       0        1        0    0  93-07-20 12:43.48  |
    |     PRD2     CICSR    < A >     112      535        0    0  93-07-20 12:43.48  |
    |     PRD2     AFP      < A >    4160    19620        0    0  93-07-20 12:43.48  |
    |     PRD2     STN      < A >      55      525        0    0  93-07-21 11:32.16  |
    |     PRD2     PERF     < A >      15     1251        0    0  93-07-21 11:32.28  |
    |     PRD2     GEN1     < A >     717    28557        0    0  93-07-21 14:37.13  |
    |     PRD2     PWS      < A >      72    18477        0    0  93-07-21 15:05.00  |
    |     PRD2     SQL320   < A >    1299    16825        0    0  93-07-21 15:19.28  |
    |     PRD2     SQLNSF   < A >      27     5381        0    0  93-07-21 15:40.08  |
    |     PRD2     DLI1A0   < A >     249    12796        0    0  93-07-21 15:41.15  |
    |     PRD2     FONTS    < A >    5052    37023        0    0  92-02-12 12:18.29  |
    |v / aris* procSQL340   < A >    1434    20173        0    0  93-07-22 14:39.56  |
    |     PRD2     FLFS     < A >     312     1080        0    0  93-09-09 13:08.01  |
    |     PRD2     TOTO     < A >       1        2        0    0  93-09-22 14:25.32  |
    |     PRD2     CSP330   < A >     279    10661        0    0  94-01-12 16:23.50  |
    |     PRD2     CSPRS22  < A >     253     2518        0    0  94-01-16 18:07.58  |
    |     PRD2     PARS111G < A >      24      235        0    0  94-01-24 16:47.20  |
    |     PRD2     CSPLIB   < A >      18      190        0    0  94-02-18 11:52.06  |
    |     PRD2     EZELIB   < A >       0        1        0    0  94-04-22 15:51.18  |
    |     PRD2     CSPBETA  < A >     289     3175        0    0  94-05-09 21:18.22  |
    |                                                                                |
    |                                                                                |
    |1= Top     2= Refresh  3= Quit       4= Sort(Slib)  5= Sort(Date)  6= Sort(Memb)|
    |7=Backward 8= Forward  9=Sort(Used) 10= Sort(Held) 11= LISTDIR    12= Cursor    |
    |                                                                                |
    +--------------------------------------------------------------------------------+

    Notes:

    1. To have an entire sublibrary directory displayed, put the cursor on the selected line, press PF11 or, enter V (or X) in the command field. You may also ask for particular members. In our figure, V / ARIS* PROC will display only procedure members starting with the string "ARIS" and belonging to sublibrary PRD2.SQL340.

    Panel column meaning:

    Cmd
    Only V and X commands are accepted. There is no difference between V and X. If you wish to select only a few members of a sublibrary by using member-name and member-type specifications, you must enter a slash sigh (/) after the V command. For example: V / * JCL would list all members having a member type of JCL.

    Reclaim
    May be < A > for AUTOMATIC, or < I > for "Immediat". It indicates the way deleted members are reclaimed. Because library and sublibrary full-list panels are very similar, brackets are displayed in this field, just to distinguish at first glance a list of sublibraries from a list of members.

    Members
    Number of members in the sublibrary

    Used/blk
    Number of library blocks used by this sublibrary.

    Held/blk
    Number of library blocks to be reclaimed. If the reclaim attribut is Automatic, these blocks will be reclaimed when the sublibrary will be uniquely used, or following a RELEASE SPACE command, or at next IPL.

    Lock
    Number of locked members for this particular sublibrary.


    Edit VSE/ESA sublibrary directory in FILELIST format

    You may also use LIBREDIT to display directly the list of a VSE/ESA sublibrary members in FILELIST-like format without following the Library hierarchy (Library panel would be displayed first). Using PF keys or the command field, you may directly edit(update) a selected member. Please look at Figure 2 for an example.
    The invoking syntax may be one of the following:

              LIBREDIT lib.sublib.mname.mtype  (SLIB
              LIBREDIT lib.sublib mname.mtype  (SLIB
              LIBREDIT lib sublib mname mtype  (SLIB
              LIBREDIT lib.sublib              (SLIB
              LIBREDIT lib sublib              (SLIB
    

    Note: The DIR option is also accepted for compatibilty reason, but it is just a synonym of SLIB.

    For example, here are valid commands:

              LIBREDIT ijsysrs.syslib.excp.a  (slib
              LIBREDIT prd2.config *.b (slib
              LIBREDIT prd1 base  dfh* z (slib
              LIBREDIT prd2 comm  (slib
    

    Figure 2. Example of Sublibrary Directory in FILELIST mode.

    +--------------------------------------------------------------------------------+
    |                                                                                |
    | Sublibrary: PRD2.STN                                                           |
    | Cmd Membname Membtype Format  Lrecl Records  Blocks Lock-Id    Last Update     |
    |                                                                                |
    |     CMSTEST  ASSEMBLE F          80     127       4 CHARLES. 94-04-12 12:44.50 |
    |     FRANCEOP C        F          80      37       1 DICK.... 93-10-20 17:13.32 |
    |     GMCICSE  C        F          80      41       2 DICK.... 93-10-20 17:17.22 |
    |     GMCICSF  C        F          80      41       2 GEGE.... 93-10-20 17:18.12 |
    |     GMCICSM  C        F          80      41       2 ........ 93-10-20 17:18.59 |
    | v / (lock V  C        F          80      41       2 ........ 93-10-20 17:19.45 |
    |     GMCICSX  C        F          80      29       1 ........ 93-10-20 17:46.58 |
    |     GMCICS2  C        F          80      41       2 GEGE.... 93-10-20 17:22.02 |
    |     GMCICS4  C        F          80      41       2 ........ 93-10-20 17:36.30 |
    |     GMCICS6  C        F          80      41       2 ........ 93-10-20 17:23.14 |
    |     MAPINFO  C        F          80     102       3 ........ 93-10-20 15:50.16 |
    |     MAPSET   C        F          80      16       1 ........ 93-10-22 15:57.34 |
    |     MAPTDKF  C        F          80      74       3 ........ 93-10-20 15:51.32 |
    |     MAPTEL   C        F          80     205       6 ........ 93-10-20 18:33.54 |
    |     MAPTELM  C        F          80     390      15 ........ 93-10-20 15:52.53 |
    |     CMS      PERFCOB  F          80      80       3 ........ 94-04-15 11:31.15 |
    |     APCCVM1  PHASE    S        1800       1       2 ........ 94-03-03 19:17.06 |
    |     COBOL2   PHASE    S        2248       1       3 ........ 93-10-25 18:01.38 |
    |     COPTDKF  PHASE    S       13840       1      15 ........ 93-10-20 17:44.48 |
    |     DFH$AALL PHASE    S        2904       1       3 ........ 93-09-03 10:17.52 |
    |     DFHEAP1$ PHASE    S      104432       1     106 ........ 93-09-02 16:49.43 |
    |     DFHFCTV3 PHASE    S       26280       1      27 ........ 94-02-02 18:34.36 |
    |     DFHJCTTP PHASE    S        1736       1       2 ........ 94-02-04 09:35.04 |
    |     DFHMCTXX PHASE    S         888       1       1 ........ 94-02-04 09:34.55 |
    |     GEGEX    PHASE    S        2904       1       3 ........ 93-09-03 10:50.17 |
    |                                                                                |
    |1= Top     2= Refresh  3= Quit      4= Sort(Type)  5= Sort(Date)  6= Sort(Size) |
    |7=Backward 8= Forward  9= X-Update 10= Sort(Name) 11= Xedit      12= Cursor     |
    |                                                                                |
    +--------------------------------------------------------------------------------+

    Notes:

    1. lib and sublib may NOT be generic

    2. mname and mtype may be generic. If not specified, all members are listed.

    3. From the cmd field, only the following commands are accepted:

      • X just edits the selected member (equivalent of pressing PF11).

      • V / (option The "/" sign is mandatory. The option may be one of the following:

         V /  or V / (READ    ---> Equivalent of pressing PF11 or X
         V / (UPDATE          ---> Equivalent of pressing PF09
         V / (LOCK
         V / (UNLOCK
         V / (WRITE           ---> Only if you have locked this member
         V / (WRITEDAT        ---> Only if you have locked this member and
                                   to set the DATA=YES attribute.
        

        The WRITE/WRITEDAT options are useful, when you issued a V / (UPDATE command, and if you intended to update this member later. In such a case, the member was only locked. When you have completed your changes, you may use the WRITE/WRITEDAT option to copy the member from your work disk (mandatory) to the VSE/ESA sublibrary.

      • = repeats the last entered command with the same option. Please note that there is a small difference with standard CMS lists (eg. FILELIST, RDRLIST, DIRLIST, ...) about the "=" signs: they are executed only one by one. This means that you cannot process multiple files by just pressing only once the ENTER key.


    Messages.

    STN001I Invalid Parameter List.

    Explanation: This message is issued by the LIBRCMS module. It means that you have not specified all mandatory parameters. Please refer to "Executing LIBRCMS." for detailed information.

    STN002I FSOPEN Error RC= xx

    Explanation: The module LIBRCMS tried to open this CMS file. Please refer to the CMS documentation for Return code explanation.

    STN003I FSWRITE Error RC=..

    Explanation: When you get a file from a VSE library, LIBRCMS tries to copy it on your work disk. Usually, this message indicates a "no more room" condition. Please refer also to the CMS documentation for return code explanation.

    STN004I FSREAD Error RC=..

    Explanation: CMS is unable to read your input file. Please refer also to the CMS documentation for return code explanation.

    STN005I The current format of your file is: F/V

    Explanation: Message issued against a CMS input file. It is associated with STN007I.

    STN006I Record length is: nnnn

    Explanation: Message issued against a CMS input file. It is associated with STN007I.

    STN007I Your CMS file must have RECFM=F and LRECL=80

    Explanation: You get this message after one of the 2 prior messages. It means that you want to write a CMS file to a VSE/ESA sublibrary but your input file does not have the correct format. To convert your file to the right format you may issue the following CMS command: COPYFILE fn ft fm (LRECL 80 RECFM F

    Note: If the current line size is larger than 80, truncation will occur.

    STN008E The VSE/ESA Librarian Server is not active

    Communication with the VSE Librarian Server failure. This might be due to the following reasons :

    • The Librarian Server is not started in VSE
    • The librarian server name is invalid
    • Omitted or invalid IUCV options in VM Directory

    Explanation: After 10 seconds, the LIBRCMS module haven't received any CONNECT request from the VSE Librarian Server. It was likely not started in a VSE partition, or the APPC path, has been broken for any reason.

    STN009E APPC/IUCV Error. Reason Code=nn.

    Explanation: Program LIBRCMS failed establishing a communication with its partner. The reason code may be one of the following:

    01 HNDFAIL
    The program failed when setting an external interrupt routine. Try to define more storage for your virtual machine, re-IPL and restart LIBRCMS. If this error persists, contact your systems programmer.

    02 CONFAIL
    The program LIBRCMS failed to connect to the *IDENT CP service. It may come to bad definitions in your CP directory entry. Contact your systems programmer.

    03 IDNTFAIL
    The program failed to identify itself as a server. This is certainly because another user is running LIBRCMS. Wait for a few seconds and try again.

    04 REVOKE
    For an unknown reason, you have lost the ownership of the resource. This should never happen. Restart LIBRCMS, if this error persists, contact your systems programmer.

    05 SEVFAIL
    An error has occurred when trying to SEVER (terminate) the connection This should never happen, but it's not a big deal.

    06 RECFAIL
    APPC error when trying to receive data from the APPC partner. Restart LIBRCMS. If this error persists, contact your systems programmer.

    07 SENDFAIL
    APPC error when trying to send data to the APPC partner. Start again LIBRCMS. If this error persists, contact your systems programmer.

    STN010E LIBRCMSV Return code = xx for XPCC Function yyyyyyy

    Explanation: This message is issued by the LIBRCMSV VSE phase when a XPCC/APCC function failed. The function is identified by yyyyyyy. This may especially happen if you have omitted to define VSE real storage thru a // SETPFIX command.

    STN011E Server name not specified via SETPARM.

    Explanation: This message is issued by the LIBRCMSV VSE phase when you have omitted to specify your Librarian server name in the starter job stream thru a "// SETPARM SRVNAME=" JCL command.

    STN012I The VSE/ESA Librarian Server Version v.l.m is running

    Explanation: This message is issued by the LIBRCMSV VSE phase. It indicates that the Librarian Server is ready to accept client requests.

    STN013I The VSE/ESA Librarian Server terminated.

    Explanation: Self explanatory

    STN014E Version mismatch with the VSE/ESA Librarian Server

    Explanation: The CMS file LIBRCMS MODULE and the VSE/ESA phase LIBRCMSV are not at the same level. Certainly you are running back level from VM or VSE side.

    STN020E OPEN member error. Return code=xx Reason code=yy

    Explanation: This message is displayed in one of the following occurrences:

    1. The specified member has not been found when OPENed in input mode

    2. The specified sublibrary does not exist when OPENed in output mode
    Refer to the VSE documentation for reason code meaning.

    STN021E GET member error Return code=xx Reason code=yy

    Explanation: This likely indicates an I/O error. Normally it should never happen Refer to the VSE documentation for reason code meaning.

    STN022E Invalid request

    Explanation: Only LISTLIB, LISTDIR, READ, READUPDT, LOCK, UNLOCK, and WRITE are valid function requests

    STN023E The member must be fully qualified

    Explanation: Fully qualified means that you MUST explicitly specify the library and sublibrary names (* are not accepted)

    STN024E Invalid Lock/Unlock request. Return code=xx Reason code=yy

    Explanation: This message may come after LOCK, UNLOCK, or WRITE requests.

    A LOCK request is rejected for 1 of the following reason:

    1. the member is currently locked (even by the same user)

    2. the member was not found in this (sub)library.
    Refer to the VSE documentation for reason code meaning.

    An UNLOCK request is rejected because the member was not previously locked, or because it was lock under a different lockid. In such a case, you'd better look into the directory entry for this member by either using LIBREDIT with the DIR option, or if you prefer an old method (eg. if you don't trust LIBREDIT) by submitting the following VSE JOB:

        // JOB LIBR LIST DIRECTORY
        // EXEC LIBR
         ACCESS S=lib.sublib
         LD mname.mtype O=FULL
       /*
       /&
    

    STN025I Lock/Unlock request was successfully completed.

    Explanation: Self explanatory

    STN026E Put member error. Return code=xx Reason code=yy

    Explanation: Likely due to a library full condition.

    STN027I Member successfully written

    Explanation: The WRITE function completed successfully.

    STN028E Terminate requested by the CMS Client

    Explanation: This happens when the CMS LIBRCMS has detected an error while opening or reading the CMS file (ie. I/O error). All changes already done by the VSE/ESA LIBRARIAN Server are not committed. Therefore, a complete integrity is fulfilled.

    STN029E Sublibrary invalid or member(s) not found

    Explanation: You asked for retrieving sublibrary directory information, but either this sublibrary does not exist, or you specified generic names which are not accepted for a sublibrary identification.

    STN030E The specified Library or sublibrary does not exist. Return code=xx Reason code=yy

    Explanation: Refer to the VSE documentation. The reason code will tell you whether it's a sublibrary or a library name error.

    STN040E Invalid Library Member specification

    Explanation: Your member specification is invalid. It must be under one of the formats:

    • lib.sublib.mname.mtype (fully qualified)
    • lib sublib mname mtype (fully qualified)
    • lib (with the LIB option)
    • lib sublib (with the LIB option)
    • lib.sublib (with the LIB option)
    • lib sublib (with the SLIB option)
    • lib.sublib (with the SLIB option)
    • name mtype (when using LIBDEF chain)
    • name.mtype (when using LIBDEF chain)

    STN041E You have omitted to specify the server name in LIBREDIT $PROFILE"

    Explanation: Self explanatory. Add a SRVNAME= line.

    STN042E LIBREDIT $PROFILE not found

    Explanation: Self explanatory.

    STN043E File mname mtype mmode already exists. Erase/Rename it first

    Explanation: To avoid this message, use REPLACE=YES in the LIBREDIT profile.

    STN044E Invalid LIBREDIT function

    Explanation: Only the following options are valid:

    • DIR
    • LOCK
    • READ
    • UNLOCK
    • UPDATE

    STN045E Impossible to put the VSE Directory in FILELIST format

    Explanation: Usually this is due to a lack of space on your work disk.

    STN046E Invalid directory data

    Explanation: This is an internal LIBRCMS error. Contact your IBM representative.

    STN047E Reason Code =rc. File not re-written to the VSE/ESA Sublibrary.

    Explanation: You get this message when running the LIBREDIT procedure and you issued the command VSEFILE. This message means that a problem occurred when VSE/ESA tried to write the new or updated member to the VSE/ESA sublibrary. If the Reason Code value is 3, then, another user was already in session with the librarian server. In such a case, a new attempt a short while later would likely resolve this problem. For other reason code meanings, please refer to message STN009E.

    STN048E xxxxxx is an invalid LIBREDIT command.

    Explanation: You typed a bad LIBREDIT command when displaying a directory list. The only valid commands are V or X. Please refer to "Edit VSE/ESA sublibrary directory in FILELIST format" for more details.

    STN049E xxxxxx is an invalid LIBREDIT option.

    Explanation: The option you specified with the V command is invalid. Please refer to "Edit VSE/ESA sublibrary directory in FILELIST format" for more details.

    STN050E Members with type PHASE or DUMP may not be edited.

    Explanation: LIBRCMS can get only members catalogued with fixed size records of 80 characters. These kind of members don't have these characteristics.

    STN051E File "file-id" not found on your work disk "x".

    Explanation: You tried to write a member to the VSE/ESA library, but the source CMS file has not been found from your work disk. Check your LIBREDIT profile to insure you have correctly specified the work disk access.

    STN052E Repository message file LIBUME TXTAMENG not found.

    Explanation: LIBRCMS needs the message repository file to be present. This file is also shipped with the product, and must be on an accessed CMS minidisk. If you are using your own national language, the system is looking for LIBUME TXTxxxxx, where xxxxx is the suffix of your language. For example for France, it would be TXTFRANC.

    STN053E Invalid LIBREDIT command string.

    Explanation: This message is issued when you are displaying a library directory with LIBREDIT LIB option. It means that the command you entered was not correct. The only strings which may be entered in front of a sublibrary specification are:

    1. V -----> equivalent to LIBREDIT lib.sublib (SLIB

    2. V / mn -----> equivalent to LIBREDIT lib.sublib.mn.* (SLIB

    3. V / mn.mt -----> equivalent to LIBREDIT lib.sublib.mn.mt (SLIB "mn" et "mt" may be generic.

    Note: X may be entered instead of V (they are synonymous)