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
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
- VSE/ESA 1.3.0 and up
- VM/ESA (any release)
- 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.
- 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: |
---|
|
Installation steps:
- Send the LIBRCMSI JCL job to the VSE/ESA machine. This job catalogs the unique LIBRCMSV phase to PRD2.COMM.
- Catalog files into a CMS minidisk
accessible from all authorized users (eg. 19E).
- LIBRCMS MODULE
- LIBREDIT EXEC
- LIBREDIT $PROFILE
- LIBUMEA REPOS
- LIBUME TXTAMENG
- That's all. Isn't it tough?
Executing LIBRCMS.
- 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
- 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.
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:
- One can retrieve any member with any member-type (even PROC, TEXT... etc)
- Both temporary and permanent chains are used
- Of course, the disk specified by "fmode" should have a R/W access mode, and be large enough to contain the output file.
- 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.
- "func" is the function that you are requesting for
the specified member to be applied by the VSE/ESA LIBRARIAN Server. It may be:
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-idLIBRCMS 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
- WRITEDAT always forces the DATA=YES attribute either for new or old members.
- 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:- To edit a VSE/ESA library member from a specified sublibrary
- To edit a VSE/ESA library member from a sublibrary specified thru a LIBDEF command when starting the VSE/ESA librarian server.
- To edit, modify and copy the modified member to the VSE/ESA sublibrary.
- To add a new member to a VSE/ESA sublibrary
- To display in FILELIST format the caracteristics of all or selected sublibraries of a particular library.
- 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.
- Lock or unlock a particular member from a specified sublibrary
LIBREDIT member-id (optionWhere:
- 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:
- If EDITOR is not specified, XEDIT is assumed.
- LOCKID will be used for READUPDT, WRITE, LOCK and UNLOCK functions. if not specified, the CMS Virtual machine name will be used.
- 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.
- 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).
- WORKDISK refers to the disk into which the file has to be filed. If not specified, A is assumed.
- 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:
- 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.
- 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:
- 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:
- lib and sublib may NOT be generic
- mname and mtype may be generic. If not specified, all members are listed.
- 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 :
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:
- The specified member has not been found when OPENed in input mode
- The specified sublibrary does not exist when OPENed in output mode
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:
- the member is currently locked (even by the same user)
- the member was not found in this (sub)library.
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:
- V -----> equivalent to LIBREDIT lib.sublib (SLIB
- V / mn -----> equivalent to LIBREDIT lib.sublib.mn.* (SLIB
- 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)