IMS 15.2 System Programming APIs
IMS 15.2 System Programming APIs
IMS 15.2 System Programming APIs
Version 15.2.0
IBM
Note
Before you use this information and the product it supports, read the information in “Notices” on page
533.
2021-01-14 edition.
This edition applies to IMS 15 (program number 5635-A06), IMS Database Value Unit Edition, V15.02.00 (program
number 5655-DS5), IMS Transaction Manager Value Unit Edition, V15.02.00 (program number 5655-TM4), and to all
subsequent releases and modifications until otherwise indicated in new editions.
© Copyright International Business Machines Corporation 1974, 2020.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
Contents
iii
Requests common to all CSL components........................................................................................102
CSLZQRY: query request.............................................................................................................. 102
CSLZSHUT: shutdown request..................................................................................................... 104
iv
CSLSCMSG: send message request............................................................................................. 212
CSLSCQRY: query request............................................................................................................ 218
CSLSCQSC: quiesce request.........................................................................................................221
CSLSCRDY: ready request............................................................................................................ 222
CSLSCREG: registration request...................................................................................................224
CSLSCRQR request return request...............................................................................................231
CSLSCRQS: send request............................................................................................................. 233
v
Chapter 15. Thread concepts.................................................................................................................. 293
Processing threads.............................................................................................................................293
Processing multiple threads.............................................................................................................. 294
CCTL multithread example................................................................................................................ 294
vi
The DBRC API token..................................................................................................................... 348
Macro forms of the DSPAPI macro...............................................................................................348
Query output block header...........................................................................................................351
Runtime considerations for the DBRC API........................................................................................ 351
DSPAPI macro access...................................................................................................................351
RECON data set access................................................................................................................ 351
RECON access authority...............................................................................................................352
Time stamp format for DBRC requests........................................................................................ 352
How DBRC uses the output data set............................................................................................ 353
Wildcard support for name parameters for Query requests....................................................... 353
Chapter 37. Structure of applications that access the IMS catalog API................................................461
vii
Chapter 38. DSECT mapping request (DSECT) for the IMS catalog API ............................................... 463
Chapter 39. HLQ request (HLQ) for the IMS catalog API .......................................................................465
Chapter 40. Open request (OPEN) for the IMS catalog API................................................................... 469
Chapter 41. Get request (GET) for the IMS catalog API ........................................................................ 475
Chapter 42. List request (LIST) for the IMS catalog API ....................................................................... 481
Chapter 43. Close request (CLOSE) for the IMS catalog API.................................................................485
Chapter 44. CALL request (CALL) for the IMS installed level API.......................................................... 489
Chapter 45. REL request (REL) for the IMS installed level API.............................................................. 493
Notices..............................................................................................................533
Programming interface information........................................................................................................ 534
Trademarks.............................................................................................................................................. 534
Terms and conditions for product documentation................................................................................. 535
IBM Online Privacy Statement................................................................................................................ 535
Bibliography...................................................................................................... 537
viii
Index................................................................................................................ 539
ix
x
About this information
These topics provide reference information for IMS system application programming interface (API) calls
for IMS Common Queue Server (CQS); IMS Common Service Layer (CSL); IMS data propagation with IMS
DataPropagator for z/OS®; IMS Database Resource Adapter (DRA); IMS Database Recovery Control (DBRC)
API; IMS catalog API; IMS Repository Server (FRPBATCH); and VTAM® and SNA.
This information is available in IBM® Knowledge Center.
Prerequisite knowledge
Before using this information, you should have knowledge of either IMS Database Manager (DB) or IMS
Transaction Manager (TM). You should also understand basic z/OS and IMS concepts, your installation's
IMS system, and have general knowledge of the tasks involved in project planning.
You can learn more about z/OS by visiting the "z/OS basic skills" topics in IBM Knowledge Center.
You can gain an understanding of basic IMS concepts by reading An Introduction to IMS, an IBM Press
publication.
IBM offers a wide variety of classroom and self-study courses to help you learn IMS. For a complete list of
courses available, go to the IBM Skills Gateway and search for IMS.
If an optional item appears above the main path, that item has no effect on the execution of the syntax
element and is used only for readability.
optional_item
required_item
• If you can choose from two or more items, they appear vertically, in a stack.
If you must choose one of the items, one item of the stack appears on the main path.
required_item required_choice1
required_choice2
If choosing one of the items is optional, the entire stack appears below the main path.
required_item
optional_choice1
optional_choice2
If one of the items is the default, it appears above the main path, and the remaining choices are shown
below.
default_choice
required_item
optional_choice
optional_choice
• An arrow returning to the left, above the main line, indicates an item that can be repeated.
required_item repeatable_item
If the repeat arrow contains a comma, you must separate repeated items with a comma.
,
required_item repeatable_item
A repeat arrow above a stack indicates that you can repeat the items in the stack.
• Sometimes a diagram must be split into fragments. The syntax fragment is shown separately from the
main syntax diagram, but the contents of the fragment should be read as if they are on the main path of
the diagram.
required_item fragment-name
fragment-name
required_item
optional_item
Accessibility features
The following list includes the major accessibility features in z/OS products, including IMS 15.2. These
features support:
• Keyboard-only operation.
• Interfaces that are commonly used by screen readers and screen magnifiers.
• Customization of display attributes such as color, contrast, and font size.
Keyboard navigation
You can access IMS 15.2 ISPF panel functions by using a keyboard or keyboard shortcut keys.
For information about navigating the IMS 15.2 ISPF panels using TSO/E or ISPF, refer to the z/OS TSO/E
Primer, the z/OS TSO/E User's Guide, and the z/OS ISPF User's Guide Volume 1. These guides describe how
to navigate each interface, including the use of keyboard shortcuts or function keys (PF keys). Each guide
includes the default settings for the PF keys and explains how to modify their functions.
Note:
1. A client can issue the CQSRECVR and CQSINFRM requests in any order and at any time following the
CQSRSYNC request. The client should, however, issue both of these requests before starting any real
work with CQS.
LA 5,TOKEN
CQSREAD FUNC=READ,CQSTOKEN=(5),…
⋮
TOKEN DS XL16
L 4,MYBUFLEN
CQSREAD FUNC=READ,BUFSIZE=(4),…
⋮
MYBUFLEN DC F'00000024'
2. Use a symbol
CQSREAD FUNC=READ,CQSTOKEN=TOKENADR,…
⋮ TOKENADR DC A(TOKEN) TOKEN DS XL16
CQSREAD FUNC=READ,BUFSIZE=MYBUFLEN,…
⋮ MYBUFLEN DC F'00000024'
CQSREAD FUNC=READ,CQSTOKEN=@(TOKEN),…
⋮ TOKEN DC XL16'0000A765B55CFF00'
CQSREAD FUNC=READ,BUFSIZE=@(MYBUFLEN),…
⋮ MYBUFLEN EQU 24
L R2,=A(CQSREAD_QPOSF+CQSREAD_LCLY+CQSREAD_PRTLY)
CQSREAD FUNC=READ,...,OPTWORD1=(R2),...
.
.
.
.
CQSREAD FUNC=DSECT GENERATE CQSREAD EQUs
STEPLIB DD DSN=MYPROGS.SDFSRESL,DISP=SHR
DSN=IMS.SDFSRESL,DISP=SHR
Related concepts
“CQS client requests” on page 13
CQS clients communicate with the CQS address space using a general-use interface consisting of a
number of assembler macros, called CQS requests. CQS clients use these requests to communicate with
the CQS and manipulate client data on shared coupling facility structures. You can use these requests to
write or maintain a CQS client.
Related reference
z/OS: Initializing extended ECBs and ECB extensions
Table 2. Environment for CQS requests (excluding CQSREG and CQSDEREG) using the authorized interface
Environment State
Authorization Supervisor state and PSW key 0-7 (PSW key must
match the PSW key when the CQSREG request was
issued)
Dispatchable unit mode Task
The following table shows the environment for clients using the non-authorized CQS interface:
Table 3. Environment for CQS requests (excluding CQSREG and CQSDEREG) using the non-authorized
interface
Environment aspect State
Authorization Problem state or PSW key 8 (PSW key must match
the PSW key when the CQSREG request was
issued)
Dispatchable unit mode Task
Cross memory mode None (PASN=SASN=HASN)
AMODE 31
ASC Mode Primary
Home address space Address space in which CQSREG was issued
Locks No locks held
Interrupt status Enabled for interrupts
Control parameters In primary address space
The environmental requirements for the CQS register and deregister requests (CQSREG and CQSDEREG)
are different from all of the other CQS requests. Authorized clients must issue CQSREG and CQSDEREG
requests in the environment shown in the following table.
Table 4. Environment for CQSREG and CQSDEREG requests using the authorized interface
Environment aspect State
Authorization Supervisor state and PSW key 0-7
Dispatchable unit mode Task
Cross memory mode None (PASN=SASN=HASN)
AMODE 31
ASC Mode Primary
Locks No locks held
Non-authorized clients must issue CQSREG and CQSDEREG requests in the environment shown in the
following table.
Table 5. Environment for CQSREG and CQSDEREG requests using the non-authorized interface
Environment aspect State
Authorization Problem state or PSW key 8
Dispatchable unit mode Task
Cross memory mode None (PASN=SASN=HASN)
AMODE 31
ASC Mode Primary
Locks No locks held
Interrupt status Enabled for interrupts
Control parameters In primary address space
Table 6. Return and reason codes for errors detected by the CQS interface
Return code Reason code Meaning
X'00000008' X'00000210' The cqstoken is invalid.
X'00000008' X'00000214' The connecttoken is invalid.
X'00000010' X'00000430' The CQS address space is not available.
X'00000014' X'00000600' The CQS interface is unable to access internal blocks.
X'00000014' X'00000604' The client is running in problem state or is using an incorrect
PSW key.
X'00000014' X'00000608' The client passed an invalid function code to the CQS
interface.
X'00000014' X'0000060C' The client specified an invalid CQS request type.
X'00000014' X'00000610' CQS was unable to allocate storage to copy the request
parameters.
X'00000014' X'00000614' The total length of all request parameters passed was less
than the sum of all parameter lengths.
X'00000014' X'00000618' The value passed to the interface for the total length of all
parameters was either zero or negative.
X'00000014' X'0000061C' The value passed to the interface for the total parameter
count was either zero or negative.
X'00000014' X'00000620' The length of one of the request's parameters was negative.
X'00000014' X'00000624' The length passed for the structure-call parameter list was
invalid.
X'00000014' X'00000628' Invalid request function code.
X'00000014' X'0000062C' Invalid request parameter list version number.
X'00000014' X'00000630' An incorrect number of parameters was passed for the
requested function.
X'00000014' X'00000634' A parameter was passed with an incorrect length.
X'00000014' X'00000638' A parameter was passed by value instead of by address.
X'00000014' X'0000063C' A parameter was passed by address instead of by value.
X'00000014' X'00000640' The CQS request abended before being sent to the CQS.
All CQS requests have a DSECT function that you can use to include equate statements in your program
for all the return and reason codes for the request.
Recommendation: Write a program that specifies FUNC=DSECT for all CQS requests so you can
determine symbolic variable names to use for the return and reason code values.
CQSQUERY FUNC=QTYPE,QTYPENM=COLDQ
***********************************************************************
* FUNCTION: USE CQSREAD REQUEST TO RETRIEVE A MESSAGE FROM SHARED *
* QUEUES. *
* *
* THE CALLER OF THIS MODULE PASSES THE ADDRESS AND SIZE OF *
* A BUFFER. IF THIS MODULE ENDS WITH RC=0, THAT BUFFER *
* HOLDS THE DATA OBJECT OR PARTIAL DATA. IF THIS MODULE *
* ENDS WITH A NON-ZERO RC, THE BUFFER'S CONTENTS ARE *
* UNPREDICTABLE. *
* *
* REGISTERS ON ENTRY: *
* *
* R2 - READ OBJECT BUFFER ADDRESS (BUFFER TO READ OBJECT INTO) *
* R3 - SIZE OF READ OBJECT BUFFER *
* R4 - CQS REGISTRATION TOKEN ADDRESS *
* R5 - CQS CONNECT TOKEN ADDRESS *
* R9 - ECB ADDRESS *
* R13 - SAVE AREA ADDRESS *
* R14 - RETURN ADDRESS *
* R15 - GETDOBJ ENTRY POINT ADDRESS *
* *
* REGISTERS DURING EXECUTION: *
* *
* R0 - WORK REGISTER *
* R1 - WORK REGISTER *
* R2 - CQSREAD PARMLIST AREA ADDRESS *
* R3 - WORK REGISTER *
* R4 - WORK REGISTER *
* R5 - WORK REGISTER *
* R6 - WORK REGISTER *
* R7 - WORK REGISTER *
* R8 - WORK REGISTER *
* R9 - ECB ADDRESS *
* R10 - WORK REGISTER *
* R11 - WORK REGISTER *
* R12 - BASE REGISTER *
* R13 - SAVE AREA ADDRESS *
* R14 - WORK REGISTER *
* R15 - WORK REGISTER *
* *
* MACROS REFERENCED: *
* WAIT *
* CQSREAD *
* *
* RETURN CODES: *
* R15 - RETURN CODE *
* X'00' CQSREAD SUCCESSFUL/PARTIAL DATA RETURNED *
* X'08' INTERFACE PROBLEM *
* X'0C' NO MESSAGE FOR QNAME *
* X'10' REQUEST IS UNSUCCESSFUL, UNEXPECTED RETURN OR REASON *
* CODE *
* *
***********************************************************************
STM R14,R12,12(R13) SAVE THE REGS
LR R12,R15 R12 = PROGRAM BASE REGISTER
USING GETDOBJ,R12 GETDOBJ CSECT
LA R14,SAVEAREA CHAIN SAVE AREAS
ST R13,4(,R14) THIS SAVEAREA BACKWARD PTR
ST R14,8(,R13) LAST SAVEAREA FORWARD PTR
****
* RETRIEVE RECORD FROM IMS SHARED QUEUES
****
CQSREAD FUNC=READ, X
CQSTOKEN=@(RDRRQTK), A(REGISTRATION TOKEN) X
PARM=(R2), A(CQSREAD PARMLIST AREA) X
CONTOKEN=@(RDRCONTK), A(CONNECT TOKEN) X
ECB=RDRECBA, A(ECB) X
LCKTOKEN=@(RDRLCKTK), A(LOCK TOKEN) - RETURNED X
UOW=@(RDRUOW), A(UOW) - RETURNED X
LOCAL=NO, READ OBJECT FROM SHARED QUEUE X
QNAME=@(RDRQNAME), A(QUEUE NAME) X
QPOS=FIRST, READ FIRST OBJECT ON QUEUE X
OBJSIZE=@(RDROBJSZ), A(DATA OBJECT SIZE) - RETURNED X
RSNCODE=@(RDRRSN), A(REASON CODE) - RETURNED X
RETCODE=@(RDRRC), A(RETURN CODE) - RETURNED X
BUFFER=RDRBUFA, A(CLIENT'S READ BUFFER) X
BUFSIZE=@(RDRBUFSZ) CLIENT'S READ BUFFER SIZE
****
* CHECK CQSREAD RETURN CODE
****
CHECKRC DS 0H
WAIT ECB=(R9) WAIT FOR CQSREAD TO COMPLETE
****
* CHECK PARTIAL DATA RETURNED
* PARTIAL DATA RETURNED - RETURN DATA OBJECT - RETURN CODE 0
****
PARTIAL DS 0H
CLC RDRRSN,=AL4(RRDPARTL) PARTIAL DATA RETURNED?
BNE UNEXPECT NO - SET RC AND RETURN TO CALLER
LA R15,RC00 SET RETURN CODE
B GOEXIT RETURN TO CALLER
****
* UNEXPECTED RETURN OR REASON CODE
****
UNEXPECT DS 0H
LA R15,RC10 UNEXPECTED RETURN OR REASON CODE
B GOEXIT RETURN TO CALLER
***********************************************************************
* STANDARD EXIT *
***********************************************************************
GOEXIT DS 0H
L 13,4(,13) GET PREVIOUS SAVE LEVEL
L 14,12(13) A(RETURN-TO-CALLER)
LM 0,12,20(13) RESTORE REGS
OI 15(13),X'01' SET RETURN FLAG IN CALLER SAVE AREA
BR 14 RETURN TO CALLER
***********************************************************************
* CONSTANTS *
***********************************************************************
*
* GETDOBJ RETURN CODES
*
RC00 EQU 0 CQSREAD SUCCESSFUL -
RC08 EQU 8 INTERFACE PROBLEM
RC0C EQU 12 NO MESSAGE FOR QNAME
RC10 EQU 16 UNEXPECTED RETURN CODE*
* REGISTER EQUATES
*
R0 EQU 0
R1 EQU 1
R2 EQU 2
R3 EQU 3
R4 EQU 4
R5 EQU 5
R6 EQU 6
R7 EQU 7
R8 EQU 8
R9 EQU 9
R10 EQU 10
R11 EQU 11
R12 EQU 12
LTORG
CQSREAD FUNC=DSECT CQSREAD DSECTS & EQUATES
END GETDOBJ
Related concepts
“Writing a CQS client” on page 3
Your CQS client communicates with CQS through requests. You must write one or more CQS clients in
order to use CQS to manage resource and queue structures for your product or service.
CQSBRWSE request
The CQSBRWSE request retrieves information from a specified queue or resource structure.
Format
BROWSE function
Use the BROWSE function of a CQSBRWSE request to retrieve a copy of a data object from a specific
queue.
UOW= uowaddress
TIMESTAMP= timestampaddress
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
A
QTYPE=COLD CLDTOKEN= coldqueuetokenaddress
LISTVER= 1
COUNT= resourcelistcount BUFFER= bufferaddress
LISTVER= listversion
COMPLETE function
Use the COMPLETE function of a CQSBRWSE request to indicate to CQS that a CQSBRWSE request
associated with a particular browse token is complete.
BRWTOKEN= browsetokenaddress
ECB= ecbaddress
OBJSIZE= dataobjectsizeaddress
ECB= ecbaddress
DSECT function
Use the DSECT function of a CQSBRWSE request to include equate (EQU) statements in your program for
the CQSBRWSE parameter list length and CQSBRWSE return and reason codes.
CQSBRWSE FUNC=DSECT
CQSCHKPT request
Use the CQSCHKPT request to initiate either a CQS system checkpoint or a structure checkpoint.
LISTVER= 1
LISTVER= listversion
LISTVER= 1
LISTVER= listversion
CQSCHKPT FUNC=DSECT
Usage of CQSCHKPT
For a structure checkpoint, CQS dumps the queues to DASD for each structure specified in the checkpoint
list. If the structure is currently in overflow mode, the overflow structure is also dumped to DASD.
For a system checkpoint, CQS logs the internal tables for each structure specified in the checkpoint list. If
the structure is currently in overflow mode, CQS also logs the internal tables for the overflow structure.
Parameter descriptions
COUNT=count
4-byte input parameter that specifies the number of entries in the checkpoint list.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
4-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise it is
processed synchronously.
LIST=listaddress
4-byte input parameter that specifies the address of the checkpoint list. The checkpoint list should
contain an entry for each of the structures for which the client requests a checkpoint.
The CQSCHKPL list entry DSECT maps the list entries and can be used by the client. Multiple list
entries must reside in contiguous storage.
Each list entry contains the following parameters:
connecttoken
16-byte input parameter that specifies the connect token returned by the CQSCONN request. The
connect token uniquely identifies the client's connection to a particular coupling facility structure
managed by this CQS. This parameter is required.
Related concepts
Using CQS system checkpoint (System Administration)
CQSCONN request
The CQSCONN request connects a client to one or more coupling facility structures.
LISTVER= 1
RSNCODE= reasoncodeaddress
LISTVER= listversion
CQSCONN FUNC=DSECT
Usage of CQSCONN
The CQSCONN request connects a client to one or more coupling facility structures. The client specifies a
connect list containing one or more list entries, for which each entry is a separate connect request. If the
connection to a structure is successful, a connect token is returned to the client, representing the
connection to the structure. The client must specify this token on all subsequent CQS requests for that
CQSDEL request
A CQSDEL request deletes one or more data objects from a queue structure or a resource structure.
CONTOKEN= connecttokenaddress
RETCODE= returncodeaddress
ECB= ecbaddress
LISTVER= 1
RSNCODE= reasoncodeaddress
LISTVER= listversion
CQSDEL FUNC=DSECT
Usage of CQSDEL
A CQSDEL request deletes one or more data objects from a queue structure or a resource structure. The
client specifies a delete list that contains one or more list entries, for which each list entry is a separate
delete request (either by lock token, by queue name, by queue name and UOW, by resource ID, or by
resource type and owner). Each list entry is processed separately and receives its own completion code.
Parameter description:
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of the 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
COUNT=count
A 4-byte input parameter that specifies the number of list entries in the delete list.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
A 4-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise, it is
processed synchronously.
FEEDBACK=feedbackaddress
A 4-byte input parameter that specifies the address of a feedback area to receive structure utilization
feedback about the CQS structure. This information includes the number of entries and elements that
are allocated in the structure and the number currently in use. If the structure is in overflow mode,
information about both the primary and overflow structure is returned. This parameter is optional for
FUNC=DELETE; it is invalid for other CQSDEL functions. FEEDBACK= is required when FEEDBACKLEN=
is specified.
The utilization data returned is guaranteed only to be current for the structures from which the data
objects that were specified in the list entries by the LIST= parameter were actually deleted. Data for
structures (overflow or primary) that were not accessed is as of the last time CQS put or deleted an
Related concepts
Monitoring shared message queue usage with the Queue Space Notification exit routine (DFSQSSP0)
(System Administration)
Related reference
Queue Space Notification exit routine (DFSQSPC0/DFSQSSP0) (Exit Routines)
CQSDEREG request
The CQSDEREG request deregisters a client from CQS and invalidates the CQSTOKEN.
RSNCODE= reasoncodeaddress
CQSDEREG FUNC=DSECT
Usage of CQSDEREG
The CQSDEREG request deregister a client from CQS and invalidates the CQSTOKEN. Prior to issuing this
request, the client should issue the CQSDISC request to disconnect from all structures to which the client
has a connection. When this request is successfully completed, no subsequent requests can be made to
CQS until a CQSREG request has been made to get a new CQSTOKEN.
Parameter Description:
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
PARM=parmaddress
Four-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSDEREG_PARM_LEN (defined using the FUNC=DSECT request).
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSDEREG return code.
The CQSDEREG return code is returned both in this field and in register 15.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSDEREG reason code.
The CQSDEREG reason code is returned both in this field and in register 0.
CQSDISC request
The CQSDISC request allows a client to disconnect from one or more coupling facility structures.
LISTVER= 1
A
CQSSHUT=YES
CQSSHUT=NO
A
COUNT= count LIST= listaddress
OPTWORD1= optionwordvalue
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
LISTVER= 1
A
CQSSHUT=YES
CQSSHUT=NO
CQSDISC FUNC=DSECT
Usage of CQSDISC
Restriction: The CQSDISC request does not support structure attributes for resource structures.
The CQSDISC request allows a client to disconnect from one or more coupling facility structures. CQS
disconnects client resources associated with the structures. The client needs to issue a CQSDEREG
request to completely disconnect from CQS.
A CQSDISC FUNC=DISCABND request, used when the client is terminating abnormally, terminates client
connections to all coupling facility structures.
A CQSDISC FUNC=DISCNORM, used when the client is terminating normally, terminates client
connections to one or more coupling facility structures. The client specifies a disconnect list containing
one or more list entries, for which each entry is a separate disconnect request. As each structure
disconnect is completed, the connect token for that structure is invalidated and can no longer be used by
the client.
Parameter Description:
COUNT=count
Four-byte input parameter that specifies the number of list entries in the disconnect list.
CQSSHUT=YES | NO
Input parameter that indicates whether or not the CQS address space should be shut down after all
clients have disconnected.
If CQSSHUT=YES is specified, new clients continue to be allowed to issue CQSCONN requests. The
CQSSHUT FUNC=QUIESCE request can be used to prevent new clients from issuing CQSCONN
requests.
CQSDISC_SHUTYEQX CQSSHUT=YES
CQSDISC_SHUTNEQX CQSSHUT=NO
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
Four-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise the
request is processed synchronously.
LIST=listaddress
Four-byte input parameter that specifies the address of a disconnect list containing one or more
entries. Each entry is a separate request to disconnect a client from a coupling facility structure. Some
fields in each entry must be initialized by the client prior to the CQSDISC request. Other fields are
returned by CQS upon completion of the CQSDISC request.
The CQSDISCL list entry DSECT maps the list entries and can be used by the client. Multiple list
entries must reside in contiguous storage.
Each list entry contains the following:
connecttoken
Sixteen-byte input parameter that specifies the connect token that uniquely identifies the client's
connection to a particular coupling facility structure managed by this CQS. The connect token is
returned by the CQSCONN request. This parameter is required.
structureattributes
Four-byte input parameter field that contains the structure attributes.
+0
Flag byte 1, with the following bits defined:
X'80'
When set to 0, indicates that CQS should not perform a structure checkpoint for the
structure.
When set to 1, indicates that CQS should perform a structure checkpoint for the structure.
X'40'
When set to 0, indicates that CQS should not perform disconnect processing for the
structure if there is any inflight work (locked objects) on the structure. If inflight work is
found, CQS will set completion code X'00000008' in the compcode field, and will return a
return code of X'0000000C', and a reason code of either X'00000300' or X'00000304' for
the request.
When set to 1, indicates that CQS should disconnect from the structure, even if there is
inflight work (locked objects) on the structure. If inflight work is found, CQS will set
completion code X'00000008' in the compcode field, and will return a return code of
X'00000004', and a reason code of X'00000140' for the request, if no other errors in
disconnect processing occur. Note that the return and reason code is a warning only; the
disconnect processing is still performed.
The remaining bits in this byte are not used, and must be set to zero.
+1
The next 3 bytes are not used, and must be set to zero.
compcode
Four-byte output field to receive the completion code from the request. Possible completion
codes are:
CQSINFRM request
The CQSINFRM request registers or deregisters interest for one or more queues on a specific coupling
facility structure.
CQSINFRM FUNC=DSECT
LISTVER= 1
LISTVER= listversion
LISTVER= 1
LISTVER= listversion
Usage of CQSINFRM
A client uses a CQSINFRM request to register or deregister interest for one or more queues on a specific
coupling facility structure. When a queue goes from empty to non-empty, CQS notifies all clients that
registered interest for the queue of the change in status by scheduling the Structure Inform Client exit
routine.
Restriction: The CQSINFRM request is not supported for resource structures.
The client can issue CQSREAD or CQSBRWSE requests to retrieve data from a queue. A client can make
data objects available on a queue using CQSPUT, CQSMOVE, or CQSUNLCK requests.
A client that has registered interest in a queue is only notified when the queue goes from empty to non-
empty, or if a data object is available on the queue when the CQSINFRM request is issued. The client does
not receive notification when additional data objects are placed on a non-empty queue.
After a client deregisters interest in a queue, it is no longer notified when one of the queues goes from
empty to non-empty. Because client notifications occur asynchronously with CQSINFRM requests, the
client should expect to be notified about new data objects that arrive between the time the client issues
the CQSINFRM FUNC=UNINFORM request and the time CQS processes the request.
Parameter Description:
COUNT=count
Four-byte input parameter that specifies the number of structure list entries in the structure list.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
Four-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise it is
processed synchronously.
LIST=listaddress
Four-byte input parameter that specifies the address of the structure list. The structure list is built in
contiguous storage, and the size of the list must be specified using the LISTSIZE parameter. The
structure list should contain an entry for each coupling facility structure for which the client will
register or deregister interest. Each structure list entry must contain a list of the queues for which the
client will register or deregister interest.
Each connect token in a structure list entry and queue name in the queue list entry must be initialized
prior to the request. Upon completion of the request, CQS returns the structure completion code for
the structure list and the queue completion code for the queue list.
The CQSINFL list entry DSECT maps the queue and structure list entries and can be used by the client.
Multiple list entries must reside in contiguous storage.
Each structure list entry contains the following parameters:
Related reference
CQS Client Structure Inform exit routine (Exit Routines)
CQSMOVE request
A CQSMOVE request moves one or all client data objects from one queue to another. Data objects can be
moved from the first or last position of the old queue to the first or last position on the new queue.
CQSMOVE FUNC=DSECT
OLDQPOS=FIRST
OLDQ= oldqueuenameaddress A
OLDQPOS=LAST
LCKTOKEN= locktokenaddress
NEWQPOS=LAST
NEWQ= newqueuenameaddress
NEWQPOS=FIRST
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
A
COUNT=ONE
COUNT=ALL
MVCNT= movecountaddress
You can use the OPTWORD1 parameter to code a single invocation of the macro and set the options at
runtime. However, you cannot use the COUNT, NEWQPOS, and OLDQPOS parameters if you use the
OPTWORD1 parameter.
OLDQ= oldqueuenameaddress
MVCNT= movecountaddress
LCKTOKEN= locktokenaddress
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
Usage of CQSMOVE
Restriction: The CQSMOVE request is not supported for resource structures.
A CQSMOVE request moves one or all client data objects from one queue to another. Data objects can be
moved from the first or last position of the old queue to the first or last position on the new queue. The
client identifies the data objects to be moved either by the old queue name and queue position, or by the
CQSMOVE_CNT1EQUX COUNT=ONE
CQSMOVE_CNT1EQUX COUNT=ALL
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
Four-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise it is
processed synchronously.
LCKTOKEN=locktokenaddress
Input parameter that specifies the address of the 16-byte lock token for the locked data object to be
moved. The lock token uniquely identifies a data object locked by a CQSREAD request.
MVCNT=movecountaddress
Output parameter that specifies the address of a 4-byte field to receive the number of data objects
that were moved. Even when the return or reason code is non-zero, it is possible that CQS moved
some data objects.
NEWQ=newqueuenameaddress
Input parameter that specifies the address of the 16-byte name of the new queue to which the data
object is to be moved.
NEWQPOS=FIRST | LAST
Input parameter that specifies the position on the new queue to which data objects are moved, either
first or last.
The NEWQPOS parameter cannot be used when the OPTWORD1 parameter is specified. If the
OPTWORD1 parameter is specified instead of NEWQPOS, you can use the following equate (EQU)
statements to generate the value for the OPTWORD1 parameter:
CQSMOVE_NEWQFEQUX NEWQPOS=FIRST
CQSMOVE_NEWQLEQUX NEWQPOS=LAST
OLDQ=oldqueuenameaddress
Input parameter that specifies the address of the 16-byte name of the old queue from which the data
object is to be moved.
OLDQPOS=FIRST | LAST
Input parameter that specifies the position on the old queue from which data objects are to be moved,
either first or last.
CQSMOVE_OLDQFEQUX OLDQPOS=FIRST
CQSMOVE_OLDQLEQUX OLDQPOS=LAST
OPTWORD1=optionwordvalue
Four-byte input parameter that specifies the literals for this request. This parameter can be used
instead of COUNT, NEWQPOS, and OLDQPOS. Equate (EQU) statements for the literal values are listed
under the COUNT, NEWQPOS, and OLDQPOS parameter descriptions. Equate statements can also be
generated by using the DSECT function. The OPTWORD1 parameter cannot be used if COUNT,
NEWQPOS, or OLDQPOS is specified.
Requirement: If you code the OPTWORD1 parameter, you must pass a value that is composed of one
equate value for each literal value supported by this macro.
PARM=parmaddress
Four-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSMOVE_PARM_LEN (defined using the FUNC=DSECT request).
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSMOVE return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSMOVE reason code.
CQSPUT request
A CQSPUT request allows a client to place a data object on a queue. The data object can be either the only
one for a unit of work, or it can be one in a series for a unit of work.
PUTTOKEN= puttokenaddress
ECB= ecbaddress
CQSPUT FUNC=DSECT
CONTOKEN= connecttokenaddress
A
QNAME= queuenameaddress
OPTWORD1= optionwordvalue
A
QPOS=LAST
B
QPOS=FIRST
B
RECOVERABLE=YES C
RECOVERABLE=NO
C
COMMIT=YES D
COMMIT=NO
D
LOCAL=NO
LOCAL=YES
Usage of CQSPUT
Restriction: The CQSPUT request is not supported for resource structures.
A CQSPUT request allows a client to place a data object on a queue. The data object can be either the only
one for a unit of work, or it can be one in a series for a unit of work. The data object can be added to the
beginning or to the end of the queue. After the data object is on the queue, it is available to any client that
has access to that queue.
You can put multiple objects on the same queue for unit of work. Do not move these objects (CQSMOVE
request) or allow these objects to be moved to the overflow structure (CQSCONN request); otherwise,
CQS cannot recover the objects.
If a unit of work consists of multiple data objects, and they are all on the same queue, then when CQS
places the first data object on the queue, it notifies other clients that have registered interest in the
Table 15. Actions taken for data objects as a result of failures or structure activity
Nonrecoverable Recoverable and uncommitted Recoverable and committed
Client Failure All data objects on the All data objects on the queues All data objects on the
queues for nonrecoverable that belong to uncommitted queues for the unit of work
units of work are left on the units of work are deleted when remain on the queues.
queues. the client terminates.
CQS Failure Any data objects for All data objects on the queues All data objects on the
nonrecoverable units of work that belong to uncommitted queues that belong to
that were placed on the units of work are deleted when committed units of work
queues successfully are left CQS restarts. remain on the queues. If CQS
on the queues. If CQS was in was in the process of placing
the process of placing a data the final data object for the
object on a queue when the unit of work on the queues
failure occurred, that data when the failure occurred,
object is not recovered when CQS restart ensures the data
CQS restarts. object is on the queues.
Structure Data objects for All data objects for recoverable All data objects for
Copy nonrecoverable units of work units of work are copied to the recoverable units of work are
are copied to the new new structure whether the unit copied to the new structure.
structure. of work is committed or not.
Structure Data objects placed on the All data objects that were All data objects that were
Recovery queues for nonrecoverable placed on the queues for placed on the queues for
units of work are not recoverable units of work are recoverable units of work are
recovered to the new recovered to the new structure recovered to the new
structure. whether or not the unit of work structure.
was committed.
A CQSPUT FUNC=FORGET request terminates any CQSPUT FUNC=PUT requests, and causes CQS to
discard internal information CQS has about the unit of work. The unit of work is identified by the put
token. The client should make this request after receiving a response from the final CQSPUT FUNC=PUT
request issued for the unit of work. The CQSPUT FUNC=FORGET request is rejected if the unit of work is
recoverable but not committed.
A CQSPUT FUNC=ABORT request removes from the queues all uncommitted data objects associated with
a recoverable unit of work. The unit of work is identified by the put token. The request is rejected if the
unit of work is nonrecoverable or if the unit of work is recoverable, but already committed.
CQSPUT FUNC=PUT,COMMIT=YES,...
⋮
CQSPUT FUNC=FORGET,...
To put multiple objects for a unit of work on the queues, issue the following requests:
CQSPUT FUNC=PUT,COMMIT=NO,...
⋮
CQSPUT FUNC=PUT,COMMIT=NO,...
⋮
CQSPUT FUNC=PUT,COMMIT=YES,...
⋮
CQSPUT FUNC=FORGET,...
Parameter description:
COMMIT=YES | NO
Input parameter that indicates whether to commit a recoverable unit of work. One or more data
objects can be placed on the queues for a recoverable unit of work.
The COMMIT= parameter applies only to recoverable units of work and is only valid if
RECOVERABLE=YES is specified. The parameter is ignored if RECOVERABLE=NO is specified.
COMMIT=YES must be specified (either by itself or as part of OPTWORD1) for the final (or only)
CQSPUT FUNC=PUT request issued for a unit of work. If more than one data object is placed on the
queues for a unit of work, COMMIT=NO must be specified on all except the final CQSPUT FUNC=PUT
request of the series. COMMIT=YES must be specified on the final CQSPUT FUNC=PUT request.
The COMMIT parameter cannot be used if the OPTWORD1 parameter is specified. If the OPTWORD1
parameter is used instead of COMMIT, you can use the following equate (EQU) statements to generate
the value for the OPTWORD1 parameter:
CQSPUT_CMTYEQUX COMMIT=YES
CQSPUT_CMTNEQUX COMMIT=NO
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of the 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
DATAOBJ=dataobjectaddress
A 4-byte input parameter that specifies the address of the client data object to be placed on the
specified queue.
ECB=ecbaddress
A 4-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise, it is
processed synchronously.
FEEDBACK=feedbackaddress
A 4-byte input parameter that specifies the address of a feedback area to receive structure utilization
feedback about the CQS structure. This information includes the number of entries and elements that
are allocated in the structure and the number currently in use. If the structure is in overflow mode,
information about both the primary and overflow structure is returned. This parameter is optional for
FUNC=PUT; it is invalid for other CQSPUT functions. FEEDBACK= is required when FEEDBACKLEN= is
specified.
The utilization data returned is guaranteed only to be current for the structures to which the data
object passed on the DATAOBJ= parameter was actually written. Data for the structures (overflow or
primary) that were not accessed is as of the last time CQS put or deleted an object to that other
CQSPUT_LCLYEQUX LOCAL=YES
CQSPUT_LCLNEQUX LOCAL=NO
OBJSIZE=dataobjectsizeaddress
Input parameter that specifies the address of a 4-byte area to hold the size of the client data object to
be placed on the queue. The maximum size that can be specified is 61312 bytes (X'EF80').
OPTWORD1=optionwordvalue
A 4-byte input parameter that specifies the literals for this request. This parameter can be used
instead of COMMIT, LOCAL, QPOS, and RECOVERABLE. Equate (EQU) statements for the literal values
are listed under the descriptions of the COMMIT, LOCAL, QPOS, and RECOVERABLE parameters.
Equate statements can be also generated by using the DSECT function. The OPTWORD1 parameter
cannot be used if COMMIT, LOCAL, QPOS, or RECOVERABLE is specified.
Requirement: If you code the OPTWORD1 parameter, you must pass a value that is composed of one
equate value for each literal value supported by this macro.
PARM=parmaddress
A 4-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSPUT_PARM_LEN (defined using the FUNC=DSECT request).
PUTTOKEN=puttokenaddress
A 4-byte input and output parameter that specifies the address of a 16-byte token to be used by CQS
to relate a series of CQSPUT requests for a unit of work. The token must be zero for the initial CQSPUT
request of a series. An updated token is returned by CQS for each CQSPUT request. The updated
token must be returned to CQS on the next CQSPUT request for the unit of work. The puttoken must
also be returned to CQS for any CQSPUT FUNC=FORGET or CQSPUT FUNC=ABORT requests.
QNAME=queuenameaddress
Input parameter that specifies the address of the 16-byte name of the queue on which the data object
is to be placed. The first byte of the queue name cannot be zero because it is used to determine the
queue type. If the value in the first byte is greater than the maximum number of queue types defined
by CQS, it is folded into one of the existing queue types. If the last data object for a unit of work is
being put on the structure, the data object must be put on a different queue than any of the previous
data objects for that unit of work.
QPOS=LAST | FIRST
Input parameter that specifies the position on the queue at which to place the client data object.
FIRST
The data object is added to the beginning of the queue.
LAST
The data object is added to the end of the queue.
The QPOS parameter cannot be used if the OPTWORD1 parameter is specified. If the OPTWORD1
parameter is specified instead of QPOS, you can use the following equate (EQU) statements to
generate the value for the OPTWORD1 parameter:
CQSPUT_QPOSFEQUX QPOS=FIRST
CQSPUT_QPOSLEQUX QPOS=LAST
RECOVERABLE=YES | NO
Input parameter that specifies whether the unit of work is recoverable by CQS. RECOVERABLE=NO
indicates that the unit of work is nonrecoverable. Only one data object can be placed on the queues
for a nonrecoverable unit of work. RECOVERABLE=YES indicates that the unit of work is recoverable.
One or more data objects can be placed on the queues for a recoverable unit of work.
CQSPUT_RECVYEQUX RECOVERABLE=YES
CQSPUT_RECVNEQUX RECOVERABLE=NO
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSPUT return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSPUT reason code.
TIMESTAMP=timestampaddress
A 4-byte input parameter that specifies the address of an 8-byte STCK value that is stored with the
data object as the time the data object was placed on the queue. If the TIMESTAMP parameter is
omitted, the current time is stored with the data object.
UOW=uowaddress
Input parameter that specifies the address of a 32-byte area to hold the unit of work. This parameter
is required for the initial (or only) CQSPUT FUNC=PUT request issued for a unit of work. It is ignored
for all subsequent CQSPUT FUNC=PUT requests issued for that unit of work.
When a value is specified for the UOW= parameter, PUTTOKEN=0 must also be specified. The value
specified for the UOW= parameter cannot be all zeroes, and must be unique within the shared queues.
The client is responsible for ensuring that the value is unique.
Related concepts
Monitoring shared message queue usage with the Queue Space Notification exit routine (DFSQSSP0)
(System Administration)
Related reference
Queue Space Notification exit routine (DFSQSPC0/DFSQSSP0) (Exit Routines)
CQSQUERY request
The CQSQUERY request retrieves information or status about one or more of the structures managed by
CQS.
CQSQUERY FUNC=DSECT
RSNCODE= reasoncodeaddress
LISTVER= 1
QDATASZ= querydatasizeaddress
ECB= ecbaddress
LISTVER= 1
LISTVER= listversion
QTYPENM=COLDQ
QDATASZ= querydatasizeaddress
QAGE= queueagevalue
RETCODE= returncodeaddress
ECB= ecbaddress
LISTVER= 1
RSNCODE= reasoncodeaddress
LISTVER= listversion
STATSZAR= statisticssizeaddress
ECB= ecbaddress
LISTVER= 1
LISTVER= listversion
LISTVER= 1
LISTVER= listversion
CQSREAD request
The CQSREAD request retrieves a copy of the client data object from a specific queue.
OBJSIZE= dataobjectsizeaddress
ECB= ecbaddress
CQSREAD FUNC=DSECT
A
BUFFER= bufferaddress
OPTWORD1= optionwordvalue
A
QPOS=FIRST PARTIAL=YES LOCAL=NO
QPOST=LAST PARTIAL=NO
LOCAL=YES
OBJSIZE= dataobjectsizeaddress
ECB= ecbaddress
Usage of CQSREAD
A CQSREAD request retrieves a copy of the client data object from a specific queue. The data object is not
deleted from the queue, but for a CQSREAD FUNC=READ request it is locked, preventing the data object
from being accessed by subsequent CQS requests (except ones using the proper lock token). The data
object can be retrieved from the beginning or from the end of the queue. The data object is returned in the
client buffer provided for the CQSREAD request.
Restriction: The CQSREAD request is not supported for resource structures.
A lock token is returned to the client and identifies the data object. This token must be passed to CQS for
any requests that act on the locked data object (for example, CQSDEL, CQSMOVE, CQSREAD, or
CQSUNLCK).
If the size of the data object retrieved is greater than the size of the client buffer and PARTIAL=YES is
specified, the amount of data that fits in the client buffer is returned to the client. A return or reason code
is also returned, indicating a partial data object is returned, as is the actual data object size.
If the size of the data object retrieved is greater than the size of the client buffer and PARTIAL=NO is
specified, no data object is returned. A return and reason code is returned, indicating that no data object
is returned because the client buffer size is too small. The actual data object size is also returned to the
client.
If the size of the data object retrieved is the same size as or smaller than the client buffer, the complete
data object is moved into the buffer, and the rest of the buffer is not changed. The data object size is also
returned to the client.
A CQSREAD FUNC=CONTINUE request retrieves the rest of the data object when partial data is returned
on a prior CQSREAD request.
Attention: This request could result in an error after a CQS restart because the current position
might be lost across CQS restart.
A CQSREAD FUNC=REREAD request re-reads a locked data object that was previously read and locked (a
prior CQSREAD FUNC=READ request). The data object remains locked.
Related reading: See the following example of how to use a CQSREAD request for a CQS client.
Parameter Description:
BUFFER=bufferaddress
Four-byte input parameter that specifies the address of the client buffer that will hold the data object
retrieved from the queue.
BUFSIZE=buffersize
Four-byte input parameter that specifies the size of the client buffer.
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of the 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
CQSREAD_LCLYEQUX LOCAL=YES
CQSREAD_LCLNEQUX LOCAL=NO
OBJSIZE=dataobjectsizeaddress
Output parameter to receive the address of a 4-byte field that holds the size of the data object. If the
data object size is greater than the client buffer size, this field contains the actual data object size. If
partial data is returned, the size of the data object returned is the size of the client buffer specified.
OPTWORD1=optionwordvalue
Four-byte input parameter that specifies the literals for this request. This parameter can be used
instead of LOCAL, PARTIAL, and QPOS. Equate (EQU) statements for the literal values are listed in the
descriptions for the LOCAL, PARTIAL, and QPOS parameters. Equate statements can also be
generated by using the DSECT function. The OPTWORD1 parameter cannot be used if LOCAL,
PARTIAL, or QPOS is specified.
Requirement: If you code the OPTWORD1 parameter, you must pass a value that is composed of one
equate value for each literal value supported by this macro.
CQSREAD_PRTLNEQUX PARTIAL=NO
CQSREAD_PRTLYEQUX PARTIAL=YES
QNAME=queuenameaddress
Input parameter that specifies the address of the 16-byte queue name from which the data object is
to be retrieved. The first byte of the queue name identifies the queue type.
QPOS=FIRST | LAST
Input parameter that specifies the position on the queue from which the data object is to be retrieved.
FIRST
The data object is retrieved from the beginning of the queue.
LAST
The data object is retrieved from the end of the queue.
The QPOS parameter cannot be used when the OPTWORD1 parameter is specified. If the OPTWORD1
parameter is specified instead of QPOS, you can use the following equate (EQU) statements to
generate the value for the OPTWORD1 parameter:
CQSREAD_QPOSLEQUX QPOS=LAST
CQSREAD_QPOSFEQUX QPOS=FIRST
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSREAD return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSREAD reason code.
TIMESTAMP=timestampaddress
Four-byte output parameter that specifies the address of an eight-byte field to contain the time stamp
of when the data object was placed on the queues.
Attention: If LOCAL=YES is specified, CQS does not read the data object from the structure,
and the time stamp cannot be obtained.
UOW=uowaddress
Output parameter that specifies the address of a 32-byte area to hold the unit of work (UOW) of the
data object retrieved from the queue. The UOW was generated by the client that put the data object
on the queue using a CQSPUT request.
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
CQSRECVR FUNC=DSECT
A
QPOS=SYSTEM
QPOS=FIRST
QPOS=LAST
Usage of CQSRECVR
Restriction: The CQSRECVR request is not supported for resource structures.
A CQSRECVR FUNC=DELETE request deletes a data object associated with a UOW from the cold queue.
Only one data object is deleted.
A CQSRECVR FUNC=RETRIEVE request retrieves a copy of the data object associated with a UOW from
the cold queue. The data object remains on the cold queue, and is available for other CQSRECVR requests.
The data object is returned in the client buffer specified for the CQSRECVR FUNC=RETRIEVE request.
If the data object is the same size as or smaller than the client buffer provided, the data object is returned
in the buffer, and the rest of the buffer is not changed. The size of the data object is returned to the client.
If the size of the data object is greater than the size of the client buffer, the data object is not returned.
The size of the data object is returned to the client.
A CQSRECVR FUNC=UNLOCK request unlocks a data object associated with a UOW on the cold queue.
The data object is moved from the cold queue to the original client queue, and is available for other CQS
requests. The position to which the data object should be moved can be specified by the client.
Parameter Description:
BUFFER=bufferaddress
Four-byte input parameter that specifies the address of the client buffer that will hold the data object
retrieved from the queue.
BUFSIZE=buffersize
Four-byte input parameter that specifies the size of the client buffer.
CLDTOKEN=coldqueuetokenaddress
Input parameter that specifies the address of a 16-byte cold-queue token, which along with the UOW
identifies the data object that is to be recovered from the CQS cold queue (COLDQ).
The cold-queue token is passed to the client in the SEVX_RETOKEN field of the Resync entry in the
CQS Structure Event exit routine. This exit routine is called for a CQS-initiated resynchronization when
the UOW status is COLD.
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of a 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
CQSRECVR_QPOSSEQUX QPOS=SYSTEM
CQSRECVR_QPOSFEQUX QPOS=FIRST
CQSRECVR_QPOSLEQUX QPOS=LAST
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSRECVR return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSRECVR reason code.
UOW=uowaddress
Input parameter that specifies the address of a 32-byte area to hold the unit of work (UOW) of a data
object. The UOW, together with the coldqueuetoken, identifies the data object to be recovered from
the cold queue.
CQSREG request
The CQSREG request registers a client to CQS.
CQSREG FUNC=DSECT
EVENT= cqseventexit
EVENTPARM= eventparmaddress
Usage of CQSREG
A CQSREG request registers a client to CQS. If the registration is successful, a CQS token is returned. This
token represents the client's registration with CQS and must be used with all subsequent CQS requests to
identify the client.
A CQSREG FUNC=REGISTER request must be the first CQS request a client makes. Also, after a CQS
abnormal termination and restart, a CQSREG FUNC=REGISTER request is required before the client can
resume issuing CQS requests.
CLIENT=clientnameaddress
Input parameter that specifies the address of the 8-byte name of the client registering to CQS. The
client name must be unique among all clients that are registered to the same CQS and to all the CQSs
that are sharing the same queues.
CQSTOKEN=cqstokenaddress
Output parameter that specifies the address of a 16-byte area to receive the CQS registration token
that uniquely identifies the client's connection to CQS. The registration token is returned by a
successful CQSREG request.
CQSSSN=cqssubsystemnameaddress
Input parameter that specifies the address of the 4-byte subsystem name of the CQS to which the
client would like to connect. This parameter should match the SSN= parameter of the CQSIPxxx
PROCLIB member for the CQS to which the client would like to connect.
EVENT=cqseventexit
Four-byte input parameter that specifies the CQS Event exit routine address.
EVENTPARM=eventparmaddress
Input parameter that specifies the address of a 4-byte area that contains client data that CQS passes
to the CQS Event exit routine every time the exit is called.
PARM=parmaddress
Four-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSREG_PARM_LEN (defined using the FUNC=DSECT request).
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSREG return code. The
CQSREG return code is returned both in this field and in register 15.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSREG reason code. The
CQSREG reason code is returned both in this field and in register 0.
VERSION=cqsversionaddress
Output parameter that specifies the address of a 4-byte area to receive the CQS version number. The
version number has the following format: 00vvrrmm.
CQSRSYNC request
A CQSRSYNC request allows a client to resynchronize indoubt data for one structure with CQS. This
request must be the first request the client issues following a CQSCONN request.
CQSRSYNC FUNC=DSECT
RETCODE= returncodeaddress
ECB= ecbaddress
LISTVER= 1
RSNCODE= reasoncodeaddress
LISTVER= listversion
LISTVER= 1
RSNCODE= reasoncodeaddress
LISTVER= listversion
Usage of CQSRSYNC
A CQSRSYNC request allows a client to resynchronize indoubt data for one structure with CQS. This
request must be the first request the client issues following a CQSCONN request.
Restriction: The CQSRSYNC request is not supported for resource structures.
A CQSRSYNC request is required even if the client does not have any indoubt units of work (UOWs) to
resolve, for example when the client performs a cold start or a warm start after a normal termination. This
request is required because CQS might have information about a connection and have unresolved UOWs
to process.
If there are unresolved UOWs, CQS calls the client's Structure Event exit routine as part of
resynchronization. CQS calls the routine to inform the client of UOWs that CQS knows about and that the
client did not pass on the CQSRSYNC request. This process is referred to as CQS-initiated
resynchronization.
The exit routine is called during client cold start or restart only if CQS has unresolved UOWs. The Structure
Event exit routine can be called more than once for CQS-initiated resynchronization. For each UOW
passed to the exit routine, the client is responsible for taking the correct action to resolve the UOW based
on the status returned by CQS.
If CQS cold started, CQS has no knowledge of client UOWs. In this case, the resynchronization list is not
processed. CQS looks for CQSREAD requests that were incomplete at the time CQS terminated. If there is
incomplete work, the data objects are moved to the cold queue and the Structure Event exit routine is
called to inform the client of the unresolved UOWs for the data objects.
After the CQSRSYNC request completes, some UOWs might have a deferred resynchronization status.
This status indicates that CQS is still resynchronizing the UOW. When CQS completes resynchronization,
the Structure Event exit routine is called to indicate the state of the UOW. Deferred resynchronization only
applies to UOWs that CQS cannot resynchronize during the CQSRSYNC request, and does not occur for a
client cold start. The exit routine is called once for each deferred UOW, and so the exit routine can be
called multiple times for deferred resynchronization.
Parameter Description:
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of the 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
COUNT=count
Four-byte input parameter that specifies the number of entries in the resync list.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
X'0020' Read
The data object for the UOW is assumed to be locked on the coupling facility.
X'0030' Unlock
A CQSUNLCK request with lock token was issued for the UOW. The data object is
assumed to have been unlocked and made available on the work queue on the
coupling facility.
X'0040' Move
A CQSMOVE request with lock token was issued for the UOW. The data object is
assumed to have been moved to a new queue on the coupling facility.
X'0050' Delete
A CQSDEL request with lock token was issued for the UOW. The data object is
assumed to have been deleted from the coupling facility.
cqsstate
Two-byte output parameter to receive the resulting state of the UOW from CQS. This parameter is
returned by CQS as a result of the CQSRSYNC request.
Possible values for the status are shown in the following table.
X'00F1' Locked
One of the following conditions exists:
• Client status is Delete. CQS status is Locked. CQS found the UOW to be locked, but
could not delete the data object from the structure. The data object remains
locked. A lock token is returned for the UOW. The client should use this lock token
and reissue the CQSDEL request.
• Client status is Move. CQS status is Locked. CQS found the data object for UOW in
Locked state. The CQSMOVE could not be completed because the new queue
name is not available. A lock token is returned for the UOW. The client should use
this lock token and reissue the CQSMOVE request.
• Client status is Unlock. CQS status is Locked. CQS found the UOW to be locked,
but could not unlock the data object. The data object remains locked. A lock token
is returned for the UOW. The client should use this lock token and reissue the
CQSUNLCK request.
resynctoken
Sixteen-byte output parameter to receive a token that the client uses to complete processing for
the UOW. When the state is Put Insync, this field contains the put token. When the state is Locked,
this field contains the lock token. This field is returned by CQS as a result of the CQSRSYNC
request.
compcode
Four-byte output field to receive the completion code from the request. Possible completion
codes are:
X'00000000'
CQS successfully processed this UOW. Client and CQS are in sync for this UOW. An Insync
state is returned for this UOW.
X'00000004'
CQS successfully processed this UOW. Client and CQS are not in sync for this UOW. CQS
returns its known state for this UOW.
X'00000008'
clientstatus is invalid. CQS could not resynchronize this UOW. The cqsstate is not returned.
X'0000000C'
uow is invalid. CQS could not resynchronize this UOW. The cqsstate is not returned.
X'00000010'
CQS internal error. CQS could not resynchronize this UOW. The cqsstate is not returned.
LISTVER=1 | listversion
Input parameter that specifies an equate for the list version. Use the DSECT function of a CQSRSYNC
request to include equate (EQU) statements in your program for the CQSRSYNC list versions.
PARM=parmaddress
Four-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSRSYNC_PARM_LEN (defined using the FUNC=DSECT request).
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSRSYNC return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSRSYNC reason code.
CQSSHUT request
A CQSSHUT request notifies CQS to terminate after all clients have disconnected.
CQSSHUT FUNC=DSECT
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
Usage of CQSSHUT
A CQSSHUT request notifies CQS to terminate after all clients have disconnected. After the CQSSHUT
request is issued, CQS stops accepting CQSCONN requests. CQS continues to accept input or output
requests, so that clients can complete work in progress. In order to complete the shutdown process,
clients must stop working and issue CQSDISC requests to disconnect from CQS. After all clients have
disconnected, CQS terminates all tasks and returns control to z/OS.
Parameter Description:
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
Four-byte input parameter that specifies the address of the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise, it is
processed synchronously.
PARM=parmaddress
Four-byte input parameter that specifies the address of a parameter list used by the request to pass
parameters to CQS. The length of the storage area must be at least equal to the EQU value
CQSSHUT_PARM_LEN (defined using the FUNC=DSECT request).
RETCODE=returncodeaddress
Output parameter that specifies the address of a 4-byte field to contain the CQSSHUT return code.
If the return code in register 15 is nonzero, the values in the return and reason code fields are invalid,
because the CQS interface detected an error and was unable to send the request to CQS.
RSNCODE=reasoncodeaddress
Four-byte output parameter that specifies the address of a field to contain the CQSSHUT reason code.
CQSUNLCK request
A CQSUNLCK request unlocks one or more data objects and moves them into the first or last position on
the queue. You can also force an unlock by specifying FUNC=FORCE.
CQSUNLCK FUNC=DSECT
LISTVER= 1
LIST= listaddress
LISTVER= listversion ECB= ecbaddress
RETCODE= returncodeaddress
ECB= ecbaddress
RSNCODE= reasoncodeaddress
Usage of CQSUNLCK
Restriction: The CQSUNLCK request is not supported for resource structures.
A CQSUNLCK FUNC=UNLOCK request unlocks one or more data objects and moves them into the first or
last position on the queue. The client passes an unlock list that contains one or more list entries, where
each entry is a separate unlock request. A successful CQSUNLCK request invalidates the lock token and
makes the data object available to any client for a CQSBRWSE, CQSDEL, CQSMOVE, or CQSREAD request.
The CQSUNLCK FUNC=FORCE request enables a CQS client to forcibly unlock data objects read from the
specified queue type by the specified failed CQS client, so that the data objects do not remain on the
LOCKQ until the failed CQS client restarts. Force unlock also removes the CQS's knowledge of locked data
objects, if this CQS processed the CQSREAD requests that locked the data objects.
When a CQS client fails, its locked data objects remain on the LOCKQ until the CQS client restarts, resyncs
with CQS, and decides what to do with the locked data objects, or until a CQS client forcibly unlocks the
data objects. Locked data objects are not accessible by other CQS clients.
Attention: CQS clients should use the CQSUNLCK FUNC=FORCE request with caution. The CQS
clients in an IMSplex must apply the following force unlock rules consistently. If not used
consistently, the CQSRSYNC request might fail, data objects might remain on the lock queue, read
tables might remain in CQS, or data objects might be moved to the COLDQ. When using CQSUNLCK
FUNC=FORCE, apply the following rules:
• Define IMSplex with CSL.
The IMSplex must be defined with a Common Service Layer, so that CQS clients are notified when a CQS
client fails.
• Select queue type candidates.
Select one or more queue types whose data objects are candidates to be forcibly unlocked. All of the
data objects with the specified queue type are candidates. There is no way to select specific data
objects of a queue type to be forcibly unlocked.
• Forcibly unlock another CQS client's data objects when CQS client fails.
When a CQS client fails, it may leave locked data objects on the LOCKQ. Another CQS client should issue
the CQSUNLCK FUNC=FORCE request, so that data objects do not remain on the LOCKQ until the failed
CQS client restarts.
Issue a CQSUNLCK FUNC=FORCE request only to forcibly unlock data objects of a CQS client that is
currently not active. It is up to the CQS client issuing the CQSUNLCK FUNC=FORCE request to ensure
that the target CQS client is not active.
It is up to the CQS clients in the IMSplex to ensure that only one CQS client issues the CQSUNLCK
FUNC=FORCE request. All members in an IMSplex defined with a CSL are notified when a member fails.
Multiple CQSUNLCK FUNC=FORCE requests may have the following undesirable results:
– Unnecessary CF accesses.
CLIENT=clientnameaddress
Eight-byte input field that specifies the CQS client for which to forcibly unlock data objects. The client
name is the same name specified on the CQSREG request when the client registered to CQS. A CQS
client can forcibly unlock its own locked data objects before issuing the CQSRSYNC request. A CQS
client can forcibly unlock another CQS client's locked data objects after issuing the CQSRSYNC
request.
CONTOKEN=connecttokenaddress
Input parameter that specifies the address of the 16-byte connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by this CQS. The connect token
is returned by the CQSCONN request.
COUNT=count
Four-byte input parameter that specifies the number of list entries in the unlock list or four-byte
output parameter to receive the count of data objects that were forcibly unlocked.
CQSTOKEN=cqstokenaddress
Input parameter that specifies the address of the 16-byte CQS registration token that uniquely
identifies the client's connection to CQS. The registration token is returned by the CQSREG request.
CQSUPD FUNC=DSECT
LISTVER= 1
LIST= resourcelistaddress LISTSIZE= listsize
COUNT= resourcelistcount
ECB= ecbaddress
Usage of CQSUPD
A CQSUPD creates or updates one or more uniquely named resources on a resource structure. CQSUPD
creates a resource if it does not exist, or updates a resource if it does exist. A resource can be created or
updated with or without client data. Examples of resources include transactions and control blocks.
Parameter Description:
CONTOKEN=connecttokenaddress
Address of a 16-byte input parameter that specifies the connect token that uniquely identifies the
client's connection to a particular coupling facility structure managed by CQS. The connect token is
returned by the CQSCONN request.
COUNT=resourcelistcount
Four-byte input parameter that specifies the number of entries in the list.
CQSTOKEN=cqstokenaddress
Address of a 16-byte input parameter that specifies the CQS registration token that uniquely identifies
the client's connection to CQS. The registration token is returned by the CQSREG request.
ECB=ecbaddress
Address of a 4-byte input parameter that specifies the z/OS event control block (ECB) used for
asynchronous requests. If ECB is specified, the request is processed asynchronously; otherwise, it is
processed synchronously.
LISTSIZE=resourcelistsize
Four-byte input parameter that specifies the size of the resource list. The list size must be specified
because each entry in the list might have a variable length.
Table 27. Environment for SCI requests that use the authorized SCI interface
Environmental characteristic Requirement
Authorization Supervisor state (PSW key must match the PSW
key when the CSLSCREG request was issued)
Dispatchable unit mode Task
Cross memory mode Any, however, PASN must equal the primary
address space where the CSLSCREG request was
issued
AMODE 31
ASC Mode Primary
Home address space Any
Locks No locks held
Interrupt status Enabled for interrupts
Control parameters In primary address space
The following table describes the environment for non-authorized SCI requests.
Table 28. Environment for SCI requests using the non-authorized interface
Environmental characteristic Requirement
Authorization Problem state (PSW key must match the PSW key
when the CSLSCREG request was issued)
Dispatchable unit mode Task
The environmental requirements for the SCI register and deregister requests (CSLSCREG and CSLSCDRG)
are different from all of the other SCI requests. Authorized clients must issue CSLSCREG and CSLSCDRG
requests in the environment shown in the following table:
Table 29. Environment for CSLSCREG and CSLSCDRG requests using the authorized interface
Environmental Characteristic Requirement
Authorization Supervisor state
Dispatchable unit mode Task
Cross memory mode None (PASN=SASN=HASN)
AMODE 31
ASC Mode Primary
Locks No locks held
Interrupt status Enabled for interrupts
Control parameters In primary address space
Non-authorized clients must issue CSLSCREG and CSLSCDRG requests in the environment described in
the following table:
Table 30. Environment for CSLSCREG and CSLSCDRG requests using the non-authorized interface
Environmental Characteristic Requirement
Authorization Problem state
Dispatchable unit mode Task
Cross memory mode None (PASN=SASN=HASN)
AMODE 31
ASC Mode Primary
Locks No locks held
Interrupt status Enabled for interrupts
Control parameters In primary address space
SCI registration
You must register to SCI in order to uniquely identify an IMSplex member's connection to SCI that is used
on all subsequent requests.
When you register to SCI, you identify:
• The name of the IMSplex.
• Your client name, which must be unique if it is an authorized client.
• Exit routines, if you elect to use them.
• Your type of address space.
Use a type of AOP or OTHER for the address space. Defining your address space by a type that is not
AOP or OTHER could interfere with IMS address spaces. You can further identify your client by using
the SUBTYPE parameter.
After you register to SCI, an SCI token is returned. The token uniquely identifies an IMSplex member's
connection to SCI and is used on all subsequent requests. Save the token for future ODBM, OM, RM, and
SCI requests.
Registering an RM client
Register RM clients to manage resources and access IMSplex-wide processes.
The following steps describe how to register an RM client first with the IMSPlex Structured Call Interface
(SCI), and then with the RMs active in the IMSPlex.
1. Identify the exit routines that are needed to drive interactions between the CSL SCI and the client.
The SCI handles communications between all CSL managers in the IMSplex and their client
applications.
a) Identify the SCI Notify exit for the client.
A database connection can be routed through any active RM in the IMSplex, so an RM client must
registered to all RMs. A SCI Notify exit is driven when a new RM becomes active in the IMSplex and
notifies the client with information about the new RM. The client can then register to the new RM.
The SCI Notify exit is identified with the NOTIFYEXIT parameter of the CSLSCREG request.
b) Identify the SCI Input exit for the client with the INPUTEXIT parameter of the CSLSCREG request.
An RM client must be able to receive RM directives sent from any RM in the IMSplex. The SCI Input
exit is driven when there is a message or request for the client, so that the client can receive and
process it.
2. Issue the CSLSCREG request to SCI with the information gathered in step 1.
A client must register to the CSL SCI in the IMSplex before it can register with a CSL manager such as
RM.
3. Issue the CSLSCQRY request to SCI to determine which instances of RM are active in the IMSplex.
Before registering with the RMs for the first time, the client must manually identify all active RMs with
this request. Once registered, the SCI Notify exit automatically informs the client when new RMs
become active.
4. Issue the CSLRMREG request to all RMs in the IMSplex that are reachable and ready to accept
registration requests.
To manage global resources, register the resource type and associated name type.
CSLZQRY syntax
CSLZQRY DSECT syntax
Use FUNC=DSECT to include equate (EQU) statements in your program for the CSLZQRY parameter list
length and the CSLZQRY return and reason codes.
CSLZQRY FUNC=DSECT
CSLZQRY FUNC=STATS A
A
MBRNAME= mbrname OUTPUT= outputbuffer OUTLEN= outputbufferlen
SCITOKEN= scitoken
CSLZQRY parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies a z/OS event control block (ECB) used for asynchronous requests. When the
request is complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until
the request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLZQRY and before using or examining any data returned by
this request (including the RETCODE and RSNCODE fields).
MBRNAME=symbol
MBRNAME=(r2-r12)
(Required) - A 4-byte input parameter that specifies the address of the 8-byte CSL member name to
which to send the query.
Related concepts
“How to interpret CSL request return and reason codes” on page 97
CSLZSHUT syntax
Use FUNC=DSECT to include equate (EQU) statements in your program for the CSLZSHUT parameter list
length and the CSLZSHUT return and reason codes.
CSLZSHUT FUNC=DSECT
CSLZSHUT FUNC=QUIESCE A
SCOPE=CSLLOCAL
OSNAME= osnameaddress
SCOPE=CSLPLEX
RSNCODE= reasoncodeaddress
If the component that is being shut down is an SCI, the IMSplex members that are currently registered
with that SCI are not deregistered before SCI terminates. This can impact event notification. These
IMSplex members cannot communicate with other IMSplex members because their SCI is shut down. If
one or more of the "orphaned" members is shut down or fails, the other IMSplex members are not notified
of the shutdown or failure event until SCI comes back online.
Notification of the shutdown or failure depends on the authorization level of the members. If the
terminating member is non-authorized, other members are notified when SCI restarts. If the terminating
member is authorized, other authorized members, including orphaned authorized members, are notified
before SCI restarts.
CSLZSHUT parameters
MBRNAME=symbol MBRNAME=(r2-r12)
(Required if SCOPE=CSLMEMBER) - Specifies the 8-byte CSL member name to which to send the
shutdown request.
OSNAME=symbol
OSNAME=(r2-r12)
(Optional if SCOPE=CSLLOCAL) - Specifies the 8-byte name of the CSL, running on the z/OS image,
that is to be shut down. If the OSNAME parameter is specified and the SCI is not active on the z/OS
image specified, the command will not be processed.
PARM=symbol
PARM=(r1-r12)
(Required) - Specifies the CSLZSHUT parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by ZSHUT_PARMLN.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. SCI return codes are defined
in CSLSRR. Possible return codes are described in the following table.
RSNCODE=symbol
RSNCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. SCI reason codes are
defined in CSLSRR. Possible return codes are described in the following table.
SCITOKEN=symbol
SCITOKEN=(r2-r12)
(Required) - Specifies a 16-byte field containing the SCI token. This token uniquely identifies this
connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.
SCOPE=CSLMEMBER | CSLLOCAL | CSLPLEX
(Required) - Specifies the scope of the CSL termination. Valid values for the SCOPE parameter are:
CSLMEMBER
This requests the CSL component receiving the request to shut itself down. CSLMEMBER can be
processed by any CSL component.
Related concepts
“How to interpret CSL request return and reason codes” on page 97
Common Service Layer (CSL) return and reason codes indicate the success or failure of sending the
request to the CSL address space and reflect the success or failure of the particular CSL request that is
being made.
CSLOMCMD syntax
The syntax for CSLOMCMD can vary depending on what the automated operator client intends to perform.
DSECT syntax
Use the DSECT function of a CSLOMCMD request to include equate (EQU) statements in your program for
the CSLOMCMD parameter list length and return and reason codes.
CSLOMCMD FUNC=DSECT
OUTLEN= outputlen
ROUTE= routelist ROUTELEN= routelistlen
TIMEOUT= 300
PROTOCOL=RQST
PARM= parm
USERID= userid
SCITOKEN= scitoken
RETTOKEN= returntoken
The response is passed back to the client after the request is completed.
Message protocol syntax
For automation clients that want to receive command output through their user exit, use this syntax.
TIMEOUT= 300
RSNCODE= reasoncode
RETNAME= returnname
SCITOKEN= scitoken
RETTOKEN= returntoken
The response is passed back to the client using the SCI Input exit. The client must have specified an SCI
Input exit (INPUTEXIT=) on the SCI registration request (CSLSCREG) to receive a response.
X'00001004' The INPUT exit rejected the command specified in the CMD
field. The command was not processed.
X'00001008' The client (specified in the corresponding XML <mbr></mbr>
tags in the <cmderr> section) was specified in the ROUTE list for
the command specified in the CMD field. The command was not
routed to the command processing client because the client is
not the master.
x'00001014' Command completed with warnings. Check return codes. At
least one client member returned return code 4 to the
Operations Manager. All other clients returned a return code not
greater than 4. Refer to the completion codes returned on the
request for further information.
If the command was successfully processed by one command
processing client as designed, but all other command
processing clients to which the command was routed either
explicitly (in other words, the user specified a route list) or
implicitly (in other words, the user did not specify a route list so
the command was routed to ALL) received reason code
x'00001000' (IRSN_NOTMSTR) for return code x'00000004',
then the overall OM return/reason codes will be WARNING
(02000004) / WARNING (00001014)
Related reference
“CSLSCREG: registration request” on page 224
The Structured Call Interface (SCI) registration request is used to create a connection between an
IMSplex member and SCI. Before SCI can be used for communication within the IMSplex, an IMSplex
CSLOMI syntax
The syntax for CSLOMI can vary, depending on how the automated operator client wants to receive the
command response. If the client does not have an input exit and wants to receive the command output as
a response, use the request syntax. If the client does have an input exit and wants to receive the
command output as a message, use the message syntax.
CSLOMI request protocol syntax
For automated clients that want to wait for output from the OM request, use this syntax.
PROTOCOL=RQST
PARM= parm
RQSTTKN1= requesttoken1
SCITOKEN= scitoken
RETTOKEN= returntoken
After control is returned to the client (if ECB is not specified), or the ECB is posted (if an ECB is specified),
the response is available to the client.
SCITOKEN= scitoken
RETTOKEN= returntoken
The response is passed back to the client using the SCI Input exit. The client must have specified an SCI
Input exit (INPUTEXIT=) on the SCI registration request (CSLSCREG) to receive a response.
CSLOMI Input= parameter syntax
For other applications or workstations that do not communicate directly with OM, use this syntax.
B RQSTTKN2( requesttoken2 )
A
CMD( command )
OPTION(AOPOUTPUT)
( * )
ROUTE ( client )
,
( client )
( 300 )
TIMEOUT ( timeoutvalue )
B
QUERY(CMDCLIENTS)
C
QUERY(CMDSYNTAX)
CMDLANG( cmdlang )
This syntax is used for the INPUT= parameter. The application builds the command or query, and passes it
to a z/OS address space that communicates with OM directly.
CSLOMI FUNC=OMAPI,INPUT=MYINPUT,INLEN=INPUTLEN
INPUTLEN DC A(MYINPUTL)
MYINPUT DC C'CMD (QRY TRAN SHOW(ALL) TIMEOUT(360) ROUTE(IMSA)'
MYINPUTL EQU *-MYINPUT
OUTLEN=symbol
OUTLEN=(r2-r12)
(Required for RQST) - Specifies a 4-byte field to receive the length of the output returned by the
CSLOMI request. OUTLEN contains the length of the output pointed to by the OUTPUT= parameter.
The output length is zero if no output is built, for example, if an error is detected before any output can
be built.
OUTPUT=symbol
OUTPUT=(r2-r12)
(Required) - Specifies a field to receive the variable length output returned by the CSLOMI request.
The output contains the command response output. The output length is returned in the OUTLEN=
field.
The output address is zero if no output was built, for example, if an error was detected before any
output could be built.
The output buffer is not preallocated by the caller. After the request returns it, this word contains the
address of a buffer containing the update output. It is the caller's responsibility to release this storage
by issuing the CSLSCBFR FUNC=RELEASE request when it is finished with the storage. The length of
the output is returned in the OUTLEN= field.
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLOMI parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by OI_PARMLN.
PROTOCOL=RQST
PROTOCOL=MSG
(Optional) - Specifies the SCI protocol for sending the request to OM.
• RQST - Send command to OM using the SCI request protocol.
• MSG - Send command to OM using the SCI message protocol.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. OM return codes are defined
in the CSLORR. SCI return codes are defined in CSLSRR.
X'02000008' Any code This return code represents a parameter error. The request was
not processed due to the error.
X'00002000' The command specified in the CMD field is invalid.
X'00002004' The primary keyword specified in the CMD field is invalid with
the command specified.
X'00002028' An invalid keyword was specified in the CMD field.
X'0000202C' BPE detected an unknown positional parameter in the
command in the CMD field.
X'00002030' A keyword was specified with an equal sign (KEYWORD=) when
a sublist was expected (KEYWORD()) in the command in the
CMD field.
X'00002034' An incomplete keyword or keyword parameter was specified in
the command in the CMD field.
X'00002038' A keyword is missing from the command in the CMD field.
X'0000203C' The value of a keyword parameter specified in the command
was invalid.
X'00002040' A duplicate keyword was specified in the command in the CMD
field.
X'00002044' Text containing the syntax error is returned in the XML
<message></message> tags.
X'00002048' More than one filter was specified.
X'00002050' The caller of the service attempted to pass an invalid parameter
list. The request is rejected.
X'0200000C' Any code This return code represents a list error. The request might or
might not have been processed due to the error. Refer to the
XML tag <cmderr> section and the completion codes for each
command processing client listed in the XML tag <cmdrspdata>
section.
Related reference
“CSLSCREG: registration request” on page 224
The Structured Call Interface (SCI) registration request is used to create a connection between an
IMSplex member and SCI. Before SCI can be used for communication within the IMSplex, an IMSplex
member must issue the CSLSCREG request and receive an SCI token when the request completes in order
to be recognized by SCI.
“CSL Operations Manager XML output” on page 241
Command responses that are returned through the OM API are embedded in XML tags using codepage
037. XML output is generated for responses to the CSLOMI, CSLOMCMD, and CSLOMQRY requests.
“CSL OM directives” on page 164
An OM directive is a function that OM defines that can be sent as a message to OM clients to inform the
OM clients of work to be processed. Any command processing client that has registered commands to OM
can be selected to perform an OM directive.
CSLOMQRY syntax
The syntax for CSLOMQRY can vary depending on what the automated operator client intends to perform.
Parameter descriptions for each syntax example are provided in the following section.
DSECT syntax
Use the DSECT function of a CSLOMQRY request to include equate (EQU) statements in your program for
the CSLOMQRY parameter list length and return and reason codes.
CSLOMQRY FUNC=DSECT
CMDSYNTAX
CMDLANG= cmdlang
PROTOCOL=RQST
RETCODE= returncode RSNCODE= reasoncode
SCITOKEN= scitoken
The response is passed back to the client after the request is completed.
Message protocol syntax
For automation clients that want to send a message to OM to process an OM request, use this syntax.
CSLOMQRY FUNC=QUERY
RQSTTKN1= requesttoken1
CMDSYNTAX
CMDLANG= cmdlang
SCITOKEN= scitoken
The response is passed back to the client using the SCI Input exit. The client must have specified an SCI
Input exit (INPUTEXIT=) on the SCI registration request (CSLSCREG) to receive a response.
CSLOMQRY parameters
CMDLANG=cmdlang
(Optional) - The language to be used for IMS command text that is returned on the request. This value
defaults to the default established for the OM system specified on the OM startup parameter
CMDLANG=. Currently the only accepted value is ENU for US English. If an invalid language is
specified in OM, the default language is returned.
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS event control block (ECB) used for asynchronous requests.
When the request is complete, the ECB specified is posted. If an ECB is not specified, the task is
suspended until the request is complete. If an ECB is specified, the invoker of the macro must issue a
WAIT (or equivalent) after receiving control from CSLOMQRY before using or examining any data
returned by this macro (including the RETCODE and RSNCODE fields).
Related reference
“CSLSCREG: registration request” on page 224
The Structured Call Interface (SCI) registration request is used to create a connection between an
IMSplex member and SCI. Before SCI can be used for communication within the IMSplex, an IMSplex
member must issue the CSLSCREG request and receive an SCI token when the request completes in order
to be recognized by SCI.
“CSL Operations Manager XML output” on page 241
Command responses that are returned through the OM API are embedded in XML tags using codepage
037. XML output is generated for responses to the CSLOMI, CSLOMCMD, and CSLOMQRY requests.
“CSL OM directives” on page 164
An OM directive is a function that OM defines that can be sent as a message to OM clients to inform the
OM clients of work to be processed. Any command processing client that has registered commands to OM
can be selected to perform an OM directive.
“CSLOMQRY output” on page 245
Each of the command syntax examples contain a sample of CSLOMQRY XML output. The examples
present different scenarios that generate XML output based on the commands that are used in the
example.
How AOP clients that run on the host communicate with the CSL OM
Automated operator program (AOP) clients that run on the host can communicate directly with Operations
Manager (OM). After a z/OS AOP is registered with SCI, it can issue an OM command (CSLOMCMD) or
query (CSLOMQRY) requests. When the z/OS AOP is ready to terminate, it must deregister with SCI using
the CSLSCDRG macro. Each of the requests can be sent directly to OM or SCI.
The following table lists the sequence of requests that are issued from an AOP that is running on the host.
The request is listed with its purpose.
Table 36. Sequence of requests for an AOP OM client running on the host
Request Purpose
CSLSCREG Registers to SCI, which enables the client to send OM requests to OM through SCI.
CSLSCRDY Readies the OM client to SCI, which routes messages to the client by client type.
CSLOMxxx Issues OM requests (CSLOMCMD, CSLOMQRY) to send commands to OM.
CSLSCBFR Releases the output buffer returned by the request, if any.
CSLSCQSC Quiesces with SCI.
CSLSCDRG Deregisters from SCI.
Note: Although not required for an AOP executing on the host, CSLSCRDY and CSLSCQSC are
recommended for clients that want to receive messages routed by TYPE.
An OM client uses OM requests to access and use OM services and resources. Some SCI and OM requests
must be issued by the client to request OM services. Some of those requests must be issued in a
particular sequence, as shown in Table 36 on page 130. Other requests can be issued multiple times, in
any order, based on the processing requirements of the client.
The z/OS address space would then use CSLOMI to send the string to OM for command processing. The
z/OS address space should pass the user ID associated with the workstation application to ensure correct
authorization processing by OM.
The following table illustrates the sequence of requests issued by a proxy AOP client, executing on z/OS,
that is communicating with OM on behalf of a workstation AOP. The request is listed with its purpose.
Note: Although not required for an AOP executing on the workstation, CSLSCRDY and CSLSCQSC are
recommended for clients that want to receive messages routed by TYPE.
Related tasks
“Registering an ODBM client” on page 99
To register with ODBM, a client must first register with the CSL SCI and then with all active ODBMs in the
IMSplex.
Related reference
“CSLDMREG: ODBM client registration request” on page 145
The CSLDMREG request registers an ODBM client with ODBM.
SCITOKEN= scitoken
RQST
RQSTTKN1= request_token
PROTOCOL=
MSG
RQST
RQSTTKN1= request_token
PROTOCOL=
MSG
DLIFUNC= dli_call
CTXTOKEN= CTX_private_context_token
ECB= ecb
ODBMNAME= odbm_name
IOAREA= io_area IOAREALEN= io_area_length
PARM= parm
PCB= pcb PCBLEN= pcb_length
RQST
RQSTTKN1= request_token
PROTOCOL=
MSG
URTOKEN= RRS_UR_token
RQST
RQSTTKN1= request_token
PROTOCOL=
MSG
Related reference
Specifying the AIB mask for ODBA applications (Application Programming)
Database management (Application Programming APIs)
Database management call summary (Application Programming APIs)
Use the DSECT function of a CSLDMREG request to include equate (EQU) statements in your program for
the CSLDMREG parameter list length and return and reason codes.
CSLDMREG FUNC=DSECT
CSLDMREG parameters
The CSLDMREG parameters specify the ODBM values required for registration with ODBM.
The addresses can be specified as either a symbol or a register from 2 to 12.
The CSLDMREG command includes the following parameters:
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS event control block (ECB) used for asynchronous requests.
When the request is complete, the ECB specified is posted. If an ECB is not specified, the task is
suspended until the request is complete. If an ECB is specified, the invoker of the macro must issue a
WAIT (or equivalent) after receiving control from CSLDMREG before using or examining any data
returned by this macro (including the RETCODE and RSNCODE fields).
If the value of ECB is specified as a symbol, the symbol must denote the start of the ECB storage. If
the value of ECB is specified as a register, the register must contain the address of the ECB.
ODBMNAME=symbol
ODBMNAME=(r2-r12)
(Optional) - Specifies the 8-byte ODBM name to which to send the command registration request.
Either the ODBMNAME parameter or the RETNAME parameter, but not both, must be specified on a
CSLDMREG request.
Use the ODBMNAME parameter to connect the ODBM client to a specific, known instance of ODBM.
If the value of ODBMNAME is specified as a symbol, the symbol must be the label of the ODBM field. If
the value of ODBMNAME is specified as a register, the register must contain the address of the ODBM
name field.
OUTLEN=symbol
OUTLEN=(r2-r12)
(Required) - Specifies a 4-byte field to receive the length of the output returned by the CSLDMREG
request. OUTLEN contains the length of the output pointed to by the OUTPUT= parameter.
If no output is built, the output length is zero, as is the case when an error is detected before building
the output.
The return and reason codes in the following table can be returned on a CSLDMREG macro request. The
hexadecimal value 04 represents the SCI member type for ODBM.
Related concepts
“Sequence of ODBM client requests” on page 133
Some requests to Open Database Manager (ODBM) from an ODBM client must be issued in a particular
sequence, such as when enabling or disabling communication with ODBM.
Related tasks
“Registering an ODBM client” on page 99
To register with ODBM, a client must first register with the CSL SCI and then with all active ODBMs in the
IMSplex.
CSLOMBLD syntax
CSLOMBLD BEGIN
Use the BEGIN function statement to identify the beginning of the set of command statements.
CSLOMBLD FUNC=BEGIN
CSLOMBLD DEFVRB
Use the DEFVRB function statement to identify a command that the OM client or IMS system will support.
You can specify a short form of the command verb.
CSLOMBLD DEFKEY
Use the DEFKEY function statement to identify a keyword that is valid for the previously defined
command. You can also specify command routing and required RACF authorization with this statement.
SEC=READ|UPDATE
CSLOMBLD FUNC=DEFGMR
CSLOMBLD ENDGMR
Use the ENDGMR function statement to designate the end of the statements that describe the output
parsing grammar.
Note: This function is for internal IBM use only.
CSLOMBLD FUNC=ENDGMR
CSLOMBLD END
Use the END function statement to designate the end of the list of command statements.
CSLOMBLD FUNC=END
CSLOMBLD parameters
KEYW=keyword
Specifies a valid keyword for the command verb that immediately precedes this parameter. For a null
keyword, use blanks; for example, 'KEYW= '. This parameter is required for FUNC=DEFKEY.
NORM=shortverbname
Specifies the short form of the command being defined. This parameter is required for
FUNC=DEFVRB.
ROUTE=ANY | ALL
Specifies the override routing for the command being defined. This parameter is required for
FUNC=DEFKEY.
SEC=READ | UPDATE
Specifies the required RACF authorization for KEYW. This parameter is required for FUNC=DEFKEY.
VERB=verbname
Specifies the long form of the command being defined. This parameter is required for FUNC=DEFVRB.
CSLOMBLD example
The following shows an example of a set of CSLOMBLD statements.
Figure 7. CSLOMBLD example statements
CSLOMBLD FUNC=BEGIN
CSLOMBLD FUNC=DEFVRB,VERB=ACTIVATE,NORM=ACT
CSLOMBLD FUNC=DEFKEY,KEYW=LINK,SEC=UPDATE
CSLOMBLD FUNC=DEFKEY,KEYW=NODE,SEC=UPDATE
CSLOMBLD FUNC=END
CSLOMDRG syntax
DSECT syntax
Use the DSECT function of a CSLOMDRG request to include equate (EQU) statements in your program for
the CSLOMDRG parameter list length and return and reason codes.
CSLOMDRG FUNC=DSECT
CSLOMDRG parameters
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLOMDRG parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by ODRG_PARMLN.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. Possible return codes are
described in the following table.
The return code can be from OM (CSLOMDRG) or SCI (CSLSCMSG or CSLSCRQS). If ECB is specified,
the RETCODE is not valid until the ECB is posted. The value of the high-order byte in the return code
identifies whether SCI (X'01') or OM (X'02') provided the return code. OM return codes are defined in
the CSLORR. SCI return codes are defined in CSLSRR.
CSLOMOUT syntax
DSECT syntax
Use the DSECT function of a CSLOMOUT request to include equate (EQU) statements in your program for
the CSLOMOUT parameter list length and return and reason codes.
CSLOMOUT FUNC=DSECT
CSLOMOUT FUNC=MESSAGE
CMD= cmdinput CMDLEN= cmdinputlen
CSLOMOUT parameters
CMD=symbol
CMD=(r2-r12)
(Optional) - Specifies the command input buffer. This can be any IMS command that can be specified
through the OM API. This parameter represents the original command input.
CSLOMRDY syntax
CSLOMRDY DSECT syntax
Use the DSECT function of a CSLOMRDY request to include equate (EQU) statements in your program for
the CSLOMRDY parameter list length and return and reason codes.
CSLOMRDY FUNC=DSECT
CSLOMRDY FUNC=READY
OMNAME= omname MASTER=NO|YES
SCITOKEN= scitoken
CSLOMRDY parameters
MASTER=NO
MASTER=YES
(Optional) - Specifies whether or not the client should be chosen as the command master. If a client
specifies MASTER=YES, OM can select that client to be the command master. If the client specifies
MASTER=NO, OM selects it to be the command master only if no other client has specified
MASTER=YES.
OMNAME=symbol
OMNAME=(r2-r12)
(Optional) - Specifies the 8-byte OM name to which to send the command ready request. If an OM
name is not specified, the ready request is sent to all OM address spaces registered in the IMSplex.
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLOMRDY parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by ORDY_PARMLN.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. Possible return codes are
described in the following table.
The return code can be from OM (CSLOMRDY) or SCI (CSLSCMSG or CSLSCRQS). If ECB is specified,
the RETCODE is not valid until the ECB is posted. The value of the high-order byte in the return code
identifies whether SCI (X'01') or OM (X'02') provided the return code. OM return codes are defined in
the CSLORR. SCI return codes are defined in CSLSRR.
RSNCODE=symbol
RSNCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. OM reason codes are
defined in the CSLORR. SCI reason codes are defined in CSLSRR. Possible reason codes are described
in the following table.
Related concepts
CSL OM command routing (System Administration)
CSLOMREG syntax
CSLOMREG DSECT syntax
Use the DSECT function of a CSLOMREG request to include equate (EQU) statements in your program for
the CSLOMREG parameter list length and return and reason codes.
CSLOMREG FUNC=DSECT
OMNAME= omnameaddr
ECB= ecbaddress
PARM= parmaddr
OUTPUT= outputaddr OUTLEN= outputlen
CSLOMREG parameters
CMDLIST=symbol
CMDLIST=(r2-r12)
(Required) - Specifies the command definition list.
The completion codes in the following table can be returned on a CSLOMREG request. They are returned
in the ORGE_CC field of the CSLOREGO macro, which maps the OUTPUT= area if an error occurred during
command registration.
Related reference
“CSLOMBLD: command registration build” on page 149
With the CSLOMBLD request, you can build the command registration list that is passed to OM on the
CSLOMREG request.
CSLOMRSP syntax
CSLOMRSP DSECT syntax
Use the DSECT function of a CSLOMRSP request to include equate (EQU) statements in your program for
the CSLOMRSP parameter list length and return and reason codes.
CSLOMRSP FUNC=DSECT
CSLOMRSP FUNC=RESPOND
CMD= cmdinput CMDLEN= cmdinputlen
CMDTOKEN= cmdtoken
PARM= parm
MSGDATA= msgdata MSGDATALEN= msgdatalen
SCITOKEN= scitoken
CSLOMRSP parameters
CMD=symbol
CMD=(r2-r12)
(Optional) - Specifies the command input buffer. This can be any IMS command that can be specified
through the OM API.
This parameter is optional; what you provide here will be included in the input tags that are returned
as XML output.
CMDDATA=symbol
CMDDATA=(r2-r12)
(Optional) - Specifies the command response data buffer.
CMDDATALEN=symbol
CMDDATALEN=(r2-r12)
(Optional) - Specifies the length of the command response data buffer.
CMDHDR=symbol
CMDHDR=(r2-r12)
(Optional) - Specifies the command response header buffer.
CMDHDRLEN=symbol
CMDHDRLEN=(r2-r12)
(Optional) - Specifies the length of the command response header buffer.
Related reference
“CSL Operations Manager XML output” on page 241
Command responses that are returned through the OM API are embedded in XML tags using codepage
037. XML output is generated for responses to the CSLOMI, CSLOMCMD, and CSLOMQRY requests.
SCITOKEN= scitoken
Usage notes
If a SPOC subscribes to OM to receive unsolicited output messages, the default is to send all messages to
that subscriber. You can prevent IMS, CQS, and CSL messages from being sent as unsolicited output by
populating and maintaining a table of messages by using the following macros.
Macro
Description
CSLZUMT
Use this macro to populate table CSLZUMTU with CSL messages that should not be routed to
subscribers as unsolicited messages.
CQSUOMT
Use this macro to populate table CQSUOMTU with CQS messages that should not be routed to
subscribers as unsolicited messages.
CSLZUMT MESSAGE=CSL2020I
CSLZUMT MESSAGE=CSL2021E
You can also specify MESSAGE=SUPPRESS in the CQSUOMTU, CSLZUMTU, and DFSUOMTU tables. For
example, if the you code the following in message table DFSUOMTU, messages DFSxxxxx and DFSyyyyy
will be sent to OM, message DFSzzzzz will not be sent to OM, and any other messages will not be sent to
OM because of the MESSAGE=SUPPRESS statement:
DFSUOMT MESSAGE=DFSxxxxx,SEND=YES
DFSUOMT MESSAGE=DFSyyyyy,SEND=YES
DFSUOMT MESSAGE=DFSzzzzz,SEND=NO
DFSUOMT MESSAGE=SUPPRESS
Another way to control which unsolicited output messages are sent to OM from IMS is to use the new
UOM=MTO | NONE | ALL parameter for the DFSDFxxx and DFSCGxxx IMS PROCLIB members.
• With UOM=MTO specified, messages that are destined for the MTO only or system console (or both) only
will be sent to OM. Messages being sent to other destinations, such as end user terminals, will not be
sent to OM.
• With UOM=NONE specified, no messages will be sent to OM.
• With UOM=ALL specified, all messages will be sent to OM.
CSLOMUSB syntax
CSLOMUSB FUNC-DSECT syntax
Use the DSECT function of the CSLOMUSB request to include equate (EQU) statements in your logic for
the CSLOMUSB parameter list length and return and reason codes.
CSLOMUSB FUNC=DSECT
CSL OM directives
An OM directive is a function that OM defines that can be sent as a message to OM clients to inform the
OM clients of work to be processed. Any command processing client that has registered commands to OM
can be selected to perform an OM directive.
OM directives are always issued in message protocol (PROTOCOL=MSG), that is, asynchronously; OM
therefore expects no response from the OM client, and it continues processing without waiting for a
response. The OM client is responsible for determining whether or not to take any action in response to
the directive.
When a client issues PROTOCOL=MSG, SCI sends the XML output from OM to the client's SCI Input exit.
The SCI Input exit routine's INXP_MBRPLPTR field points to the CSLOMDIR parameter list.
When a client issues CSLOMI PROTOCOL=RQST, the XML output stream from OM is sent directly to the
client in the OUTPUT= parameter.
The SCI Input exit routine is responsible for notifying the client of the directive. The client should code
their SCI Input exit routine to support OM directives. The client is responsible for determining where the
function and function code are to be defined. After the client is finished using the CSLOMDIR parameter
list, it must release the storage by issuing CSLSCBFR.
OM directives are defined in the CSLOMDIR macro, which includes:
• Command directive (ODIR_CMDD)
• CSLOMI response directive (ODIR_OMIRESPD)
• Command response directive (ODIR_CMDRESPD)
• Query response directive (ODIR_QRYRESPD)
The following table lists the sequence of requests issued by an RM client that is participating in IMSplex-
wide processes. The request is listed with its purpose.
Related reference
“CSLRMREG: register clients” on page 193
You use the CSLRMREG request to register a client to RM and, optionally, to register the client's resource
types and associated name types. The client being registered to RM must be authorized to issue a
CSLRMREG request. However, you cannot register a client if an IMSplex-wide process is in progress.
CSLRMDEL syntax
CSLRMDEL DSECT syntax
Use the DSECT function of a CSLRMDEL request to include the following resources in your program:
• Equate (EQU) statement for the CSLRMDEL parameter list length
• The CSLRMDEL return codes, reason codes, and completion codes
• The CSLRDELL DSECT to map the input delete list
• The CSLRDELO DSECT to map the delete output
CSLRMDEL FUNC=DSECT
CSLRMDEL parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLRMDEL before using or examining any data returned by
this request (including the RETCODE and RSNCODE fields).
LIST=symbol
LIST=(r2-r12)
(Required) - Specifies the delete resource list built by the caller. Each list entry is a separate delete
request. The list length can vary, depending on the number of list entries.
CSLRDELL maps the delete resource list entry. The list contains a header and one or more list entries.
The list entries must reside in contiguous storage. Each delete list entry contains information about
what to delete.
For delete by resource name, to delete a uniquely named resource:
• Resource name - the client-defined name of the resource.
CSLRMDRG syntax
CSLRMDRG DSECT syntax
CSLRMDRG deregister syntax
Use the DEREGISTER function of a CSLRMDRG request to deregister from RM.
RETCODE= returncode
OPTWORD1= deregisteroptions
CSLRMDRG parameters
OPTWORD1=symbol
OPTWORD1=(r2-r12)
(Optional) - Specifies a 4-byte field containing deregistration options. CSLRMDRG FUNC=DSECT
generates the equates for deregistration options.
X'80000000'
Remove client from IMSplex. Delete all knowledge of the client.
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLRMDRG parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by RDRG_PARMLN.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. RM return codes are defined
in CSLRRR. RM does not return a response to the CSLRMDRG request.
RSNCODE=symbol
RSNCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. SCI reason codes are
defined in CSLSRR. RM does not return a response to the CSLRMDRG request.
SCITOKEN=symbol
SCITOKEN=(r2-r12)
(Required) - Specifies a 16-byte field containing the SCI token. This token uniquely identifies this
connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.
CSLRMPRI syntax
CSLRMPRI DSECT syntax
Use the DSECT function of a CSLRMPRI request to include equate (EQU) statements in your program for
the length of the CSLRMPRI parameter list.
CSLRMPRI FUNC=DSECT
UOWTOKEN= uowtoken
CSLRMPRI parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLRMPRI before using or examining any data returned by this
request (including the RETCODE and RSNCODE fields).
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLRMPRI parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by RPRI_PARMLN.
PRCNAME=symbol
PRCNAME=(r2-r12)
(Required) - Specifies an 8-byte field containing the process name. The process name is client defined
and has no meaning to RM. RM uses the process name and the process type to ensure that only one
instance of a process of a particular process type is in progress at one time.
Related concepts
“Issue CSL RM requests to manage global resources” on page 170
Before a client can access or change global resource information, it must register to SCI using the
CSLSCREG request. After the client registers to SCI, it must register to RM using the CSLRMREG request.
The client must issue an SCI registration request for every IMSplex with which it intends to communicate.
“Issue CSL RM requests to coordinate IMSplex-wide processes” on page 171
You can use RM-supplied requests to coordinate IMSplex-wide processes. All clients that are to
participate in the process register to RM using the RM client registration request (CSLRMREG). After the
clients are registered, several different requests can be utilized to coordinate processes.
CSLRMPRR syntax
CSLRMPRR DSECT syntax
Use the DSECT function of a CSLRMPRR request to include equate (EQU) statements in your program for
the length of the CSLRMPRR parameter list.
CSLRMPRR FUNC=DSECT
RMNAME= rmname
OUTPUT= output OUTLEN= outputlength
CSLRMPRR parameters
OUTLEN=symbol
OUTLEN=(r2-r12)
(Required) - Specifies a 4-byte input field that contains the length of the process step output buffer.
OUTLEN= contains the length of the output pointed to by the OUTPUT= parameter.
OUTPUT=output
OUTPUT=(r2-r12)
(Required) - Specifies a 4-byte field that contains the address of the output buffer built by the caller.
The output is client-defined and contains the results from this client's processing of the step. The
output length is returned in the OUTLEN= field.
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLRMPRR parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by RPRR_PARMLN.
PRCTOKEN=symbol
PRCTOKEN=(r2-r12)
(Required) - Specifies a 16-byte field that contains the process token that uniquely identifies the
process. This token was returned on a successful CSLRMPRI FUNC=INITIATE request.
If the IMSplex is defined with a resource structure, the process token is zero.
RETCODE=symbol
RETCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. SCI return codes are defined
in CSLSRR. RM does not return a response to CSLRMPRR.
RMNAME=symbol
RMNAME=(r2-r12)
(Required) - Specifies an 8-byte field containing the RM name to which to send the process step
response. This is the RM that originated the process step.
RQSTRC=symbol
RQSTRC=(r2-r12)
(Required) - Specifies a 4-byte field that contains the return code to be passed to the originator of the
process step on output. The return code is defined by the process step originating client and indicates
the result of the process step.
RQSTRSN=symbol
RQSTRSN=(r2-r12)
(Required) - Specifies a 4-byte field that contains the reason code to be passed to the originator of the
process step on output. The reason code is defined by the process step originating client and
indicates the result of the process step.
RSNCODE=symbol
RSNCODE=(r2-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. RM reason codes are
defined in CSLRRR. RM does not return a response to CSLRMPRR.
CSLRMPRS syntax
CSLRMPRS DSECT syntax
Use the DSECT function of a CSLRMPRS request to include equate (EQU) statements in your program for
the length of the CSLRMPRS parameter list and the process step request options.
CSLRMPRS FUNC=DSECT
OUTPUT= outputaddress
CDATA= clientdata CDATALEN= clientdatalength
TIMEOUT= 300
OUTLEN= outputlength UOWTOKEN= uowtoken
TIMEOUT= timeoutvalue
RETCODE= returncode
RETTOKEN= returntoken ECB= ecb
CSLRMPRS parameters
CDATA=symbol
CDATA=(r2-r12)
(Optional) - Specifies a variable length area that contains client data to send to clients participating in
the IMSplex-wide process step. The client data has meaning to clients, not to RM.
CDATALEN=symbol
CDATALEN=(r2-r12)
(Optional) - Specifies a 4-byte input field that contains the client data length. If this parameter is
specified, CDATA= must also be specified.
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLRM PRS before using or examining any data returned by
this request (including the RETCODE and RSNCODE fields).
LIST=symbol
LIST=(r2-r12)
(Required) - Specifies the variable length input list that contains the list of clients to which to send the
process step.
The process step list contains a list header and one or more list entries. The list header contains the
list header length, the parameter list version, the list entry length, the list entry count, and a user data
area. The list header user data area is passed back to the requestor in the list header of the process
step output. Each list entry contains the client name and an optional user data area. The user data
area is passed back to the requestor in a list entry in the process step output. The list entries must
reside in contiguous storage.
The CSLRPRSL macro maps the process step list.
LISTLEN=symbol
LISTLEN=(r2-r12)
(Required) - Specifies a 4-byte input field that contains the process step list length.
Related concepts
“Issue CSL RM requests to manage global resources” on page 170
Before a client can access or change global resource information, it must register to SCI using the
CSLSCREG request. After the client registers to SCI, it must register to RM using the CSLRMREG request.
The client must issue an SCI registration request for every IMSplex with which it intends to communicate.
“Issue CSL RM requests to coordinate IMSplex-wide processes” on page 171
CSLRMPRT syntax
The syntax for the CSLRMPRT request follows.
DSECT syntax
Use the DSECT function of a CSLRMPRT request to include equate (EQU) statements in your program for
the length of the CSLRMPRT parameter list.
CSLRMPRT FUNC=DSECT
TERMINATE syntax
Use the TERMINATE function of a CSLRMPRT request to terminate an IMSplex-wide process.
CSLRMPRT FUNC=TERMINATE
OPTWORD1= processtermoptions
SCITOKEN= scitoken
CSLRMPRT parameters
OPTWORD1=symbol
OPTWORD1=(r2-r12)
(Optional) - Specifies a 4-byte field containing the process terminate options. CSLRMPRT
FUNC=DSECT maps the process terminate options. OPTWORD1 can have a value of X'80000000'.
PARM=symbol
PARM=(r2-r12)
(Required) - Specifies the CSLRMPRT parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by RPRT_PARMLN.
PRCNAME=symbol
PRCNAME=(r2-r12)
(Required) - Specifies an 8-byte field containing the process name. The process name is client defined
and has no meaning to RM. RM uses the process name and the process type to ensure that only one
instance of a process of a particular process type is in progress at one time.
CSLRMQRY syntax
CSLRMQRY DSECT syntax
Use the DSECT function of a CSLRMQRY request to include the following inputs and outputs in your
program:
• Equate (EQU) statements for the length of the CSLRMQRY parameter list
• The CSLRMQRY return codes, reason codes, and completion codes
• The CSLRQRYL DSECT to map the input query list
• The CSLRQRYO DSECT to map the query output
CSLRMQRY FUNC=DSECT
LISTLEN= querylistlength
RETNAME= returnname
PROTOCOL= RQST
RETCODE= returncode
ECB= ecb
CSLRMQRY parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLRM QRY before using or examining any data returned by
this request (including the RETCODE and RSNCODE fields).
LIST=symbol
LIST=(r2-r12)
(Required) - Specifies the query resource list built by the caller. Each list entry is a separate query
request. The list length can vary, depending upon the number of list entries.
Related concepts
“Issue CSL RM requests to manage global resources” on page 170
Before a client can access or change global resource information, it must register to SCI using the
CSLSCREG request. After the client registers to SCI, it must register to RM using the CSLRMREG request.
The client must issue an SCI registration request for every IMSplex with which it intends to communicate.
CSLRMREG FUNC=DSECT
OUTPUT= output
LIST= reglist LISTLEN= reglistlength ECB= ecb
SCITOKEN= scitoken
CSLRMREG parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the request must issue a WAIT (or
equivalent) after receiving control from CSLRMREG before using or examining any data returned by
this request (including the RETCODE and RSNCODE fields).
LIST=symbol
LIST=(r2-r12)
(Optional) - Specifies the registration list built by the caller. Each list entry is a separate resource type
registration. If a registration list is specified when no resource structure is defined, it is ignored.
The CSLRREGL macro maps the registration list entry. The list contains a header and one or more list
entries. The list entries must reside in contiguous storage. Each registration list entry contains the
following:
• Resource type
• Name type
LISTLEN=symbol
LISTLEN=(r2-r12)
(Optional) - Specifies the 4-byte registration list length. LISTLEN is required if LIST is specified.
OUTLEN=symbol
OUTLEN=(r2-r12)
(Required) - Specifies a 4-byte field to receive the length of the output returned by the CSLRMREG
request. OUTLEN contains the length of the output pointed to by the OUTPUT= parameter.
Related concepts
“Sequence of RM client requests” on page 169
If you want to use RM to manage global resources in an IMSplex for your own product or service, you have
to write one or more RM clients. An RM client uses RM requests issued in a particular sequence to
communicate with RM.
“Issue CSL RM requests to manage global resources” on page 170
Before a client can access or change global resource information, it must register to SCI using the
CSLSCREG request. After the client registers to SCI, it must register to RM using the CSLRMREG request.
The client must issue an SCI registration request for every IMSplex with which it intends to communicate.
CSLRMUPD syntax
CSLRMUPD DSECT syntax
Use the DSECT function of a CSLRMUPD request to include the following inputs and outputs in your
program:
• Equate (EQU) statements for the length of the CSLRMUPD parameter list
• The CSLRMUPD return codes, reason codes, and completion codes
• The CSLRUPDL DSECT to map the input update list
• The CSLRUPDO DSECT to map the update output
CSLRMUPD FUNC=DSECT
CSLRMUPD parameters
ECB=symbol
ECB=(r2-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
X'00005204' The CQS request failed because RM incorrectly built the request
input.
Related concepts
“Issue CSL RM requests to manage global resources” on page 170
CSL RM directives
An RM directive is a function that RM defines that can be sent as a message to RM clients, informing the
RM clients of work to be processed. After a resource processing client is registered to RM, RM can direct
that client to perform RM functions, or directives, by issuing the CSLSCMSG request. A resource
processing client is any system that manages resources and uses RM to manage global information about
those resources.
RM directives are always issued in message protocol (PROTOCOL=MSG), that is, asynchronously; RM
therefore expects no response from the RM client, and it continues processing without waiting for a
response. The RM client is responsible for determining whether or not to take any action in response to
the directive. If the client does not respond, the directive times out.
The CSLRMDIR macro maps the RM directives. The SCI Input exit routine's INXP_MBRPLPTR field points
to the CSLRMDIR parameter list.
The following RM directives are defined in the CSLRMDIR macro:
• Repopulate structure (RDIR_STRPOPD)
• Structure failed (RDIR_STRFAILD)
• Process step (RDIR_PRSTEPD)
• Process step response (RDIR_PRRESPD)
Related reference
CSL SCI Input exit routine (Exit Routines)
Syntax
DSECT syntax
Use the DSECT function of a CSLSCBFR request to include equate (EQU) statements in your program for
the CSLSCBFR parameter list length and the CSLSCBFR request return and reason codes.
RELEASE syntax
Use the RELEASE function of the CSLSCBFR request to release an SCI message buffer or SCI data type
buffer. The SCI data type buffer is used for selected output parameters of the CSLSCRQS request for
which SCI allocates storage.
BUFFERPTR= buffer
For messages generated from a CSLSCMSG request, the buffer address is the address of the member
parameter list that is specified to the member input exit in the INXP_MBRPLPTR field in the input exit
parameter list.
For a response generated from a CSLSCRQS request that uses an SCI data type buffer, the storage is
allocated when the request is returned to the IMSplex member that initiated the original request. The
buffer address is the address of this storage, which is returned in the field specified by the member on the
request.
After the CSLSCBFR request is complete, the storage contained in the message buffer or request
response is no longer accessible by the IMSplex member.
For non-authorized members, the storage must be released from a TCB that is under the JOBSTEP TCB
from which the SCI registration call was made. The release fails if it is done from a TCB that is not under
the registered JOBSTEP TCB.
Parameters
BUFFER=symbol
BUFFER=(r1-r12)
4-byte parameter that contains the address of a buffer that is to be released.
Either BUFFER or BUFFERPTR is required.
BUFFERPTR=symbol
BUFFERPTR=(r1-r12)
4-byte parameter that contains the address of a word in storage that contains the address of the
buffer that is to be released.
Either BUFFER or BUFFERPTR is required.
PARM=symbol
PARM=(r1-r12)
Specifies the CSLSCBFR parameter list. The length of the parameter list must be equal to the
parameter list length EQU value defined by SBFR_PARMLN.
RETCODE=symbol
RETCODE=(r1-r12)
Specifies a 4-byte field to receive the return code on output. The SCI return codes are defined in
CSLSRR. Possible return codes for CSLSCBFR are described in the following table.
RSNCODE=symbol
RSNCODE=(r1-r12)
Specifies a 4-byte field to receive the reason code on output. The SCI reason codes are defined in
CSLSRR. Possible reason codes for CSLSCBFR are described in the following table.
CSLSCDRG syntax
CSLSCDRG DSECT syntax
Use the DSECT function of a CSLSCDRG request to include equate (EQU) statements in your program for
the CSLSCDRG parameter list length and the CSLSCDRG return and reason codes.
CSLSCDRG FUNC=DSECT
CSLSCMSG syntax
CSLSCMSG DSECT syntax
Use the DSECT function of a CSLSCMSG request to include equate (EQU) statements in your program for
the CSLSCMSG parameter list length, the IMSplex types, and the CSLSCMSG return and reason codes.
CSLSCMSG FUNC=DSECT
MBRFUNC= mbrfunctioncode
MBRSFUNC= mbrsubfunctioncode
FUNCTYPE=DEST
FUNCTYPE=SENDER
NAMELIST= namelist
TYPELIST= typelist B
TOKEN= scitoken
NAME= membername
RSNCODE= reasoncode
RETNAME= returnname
RETTOKEN= returntoken
TYPE= 'AOP'
TYPE= 'BATCH'
TYPE= 'CQS'
TYPE= 'DBRC'
TYPE= 'IMS'
TYPE= 'IMSCON'
TYPE= 'ODBM'
TYPE= 'OM'
TYPE= 'OTHER'
TYPE= 'RM'
TYPE= 'SCI'
B
ROUTE= ANY
ROUTE= ALL
ROUTE= LOCAL
CSLSCMSG parameters
FUNCTYPE=SENDER
FUNCTYPE=DEST
(Optional) - Specifies that the MBRFUNC and MBRSFUNC are defined by the DEST (destination) of this
message or the SENDER of the message. This indicator is passed to the recipient of the message in
the SCI Input exit parameter list.
LISTLEN=<numeric literal>
LISTLEN=symbol
LISTLEN=(r1-r12)
(Required if NAMELIST, TOKENLIST or TYPELIST is specified) - Specifies the length of the routing list.
The routing list consists of a header and one or more list entries, each entry describing a single
message destination (NAMELIST and TOKENLIST) or set of destinations (TYPELIST).
If LISTLEN is a numeric literal, all characters must be numbers. If any character is alphabetic, the
parameter will be considered a symbol.
MBRFUNC=symbol
MBRFUNC=(r1-r12)
(Required) - Specifies a 4-byte member function code that is passed to the destination of the message
in the SCI Input exit parameter list. This function code, along with the MBRSFUNC, identifies the
message that is being sent.
If MBRFUNC is a symbol, the symbol points to a 4-byte area of storage that contains the function
code.
MBRPARM=symbol
MBRPARM=(r1-r12)
(Required) - Specifies the address of a prebuilt parameter list. This parameter list must be built by the
messaging module and consists of sets of pairs. Each pair describes a single parameter in the member
parameter list and consists of the following:
parameter length
Four-byte parameter that specifies the length of the member parameter.
Related reference
“CSLSCMSG: send message request” on page 212
By issuing the CSLSCMSG request, you can send a message to one or more other IMSplex members. The
target members are specified by SCITOKEN, member name, or member type.
“CSLSCRDY: ready request” on page 222
The SCI ready request enables the IMSplex member to receive messages and requests that are routed by
TYPE. After the CSLSCREG request is issued and until CSLSCRDY is issued, the IMSplex member can only
receive requests that are routed directly to a single target address space. The IMSplex member can send
messages and requests that are routed by any method.
CSLSCQRY syntax
CSLSCQRY DSECT syntax
Use the DSECT function of a CSLSCQRY request to include equate (EQU) statements in your program for
the CSLSCQRY parameter list length, the IMSplex types and the CSLSCQRY return and reason codes.
CSLSCQRY FUNC=DSECT
SCOPE= IMSPLEX
OUTLEN= outputlength
ECB= ecb SCOPE= LOCAL
SCOPE= TYPE A
A
TYPE= membertypecode
TYPE= 'BATCH'
TYPE= 'CQS'
TYPE= 'DBRC'
TYPE= 'IMS'
TYPE= 'IMSCON'
TYPE= 'ODBM'
TYPE= 'OM'
TYPE= 'OTHER'
TYPE= 'RM'
TYPE= 'SCI'
CSLSCQRY parameters
ECB=symbol
ECB=(r1-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the macro must issue a WAIT (or equivalent)
after receiving control from CSLSCQRY, before using or examining any data returned by this macro
(including the RETCODE and RSNCODE fields).
OUTLEN=symbol
OUTLEN=(r1-r12)
(Required) - Specifies a 4-byte field to receive the length of the output returned by the CSLSCQRY
request. OUTLEN receives the length of the output pointed to by the OUTPUT= parameter.
The output length is zero if no output is built, for example, if an error is detected before any output can
be built.
OUTPUT=output
OUTPUT=(r1-r12)
(Required) - Specifies a field to receive a pointer to the variable length output returned by the
CSLSCQRY request. The output length is returned in the OUTLEN= field.
The output address is zero if no output was built, for example, if an error was detected before any
output could be built.
The CSLSQRYO macro maps the output that is returned. The output contains a header and one or
more list entries.
The output buffer is not preallocated by the caller. After being returned by the request, this word
contains the address of a buffer containing the query output. It is the caller's responsibility to release
this storage by issuing the CSLSCBFR FUNC=RELEASE request when it is through with the storage.
Related reference
“Writing a CSL SCI client” on page 207
You must establish a connection to SCI (Structured Call Interface) in order to write a program that
participates in an IMSplex (such as an AOP) and allows your IMSplex member to communicate with other
IMSplex members. Without a connection to SCI, a program cannot participate in an IMSplex and
communicate with other IMSplex members.
“CSLSCREG: registration request” on page 224
The Structured Call Interface (SCI) registration request is used to create a connection between an
IMSplex member and SCI. Before SCI can be used for communication within the IMSplex, an IMSplex
member must issue the CSLSCREG request and receive an SCI token when the request completes in order
to be recognized by SCI.
CSLSCQSC syntax
CSLSCQSC DSECT syntax
Use the DSECT function of a CSLSCQSC request to include equate (EQU) statements in your program for
the CSLSCQSC parameter list length and the CSLSCQSC return and reason codes.
CSLSCQSC FUNC=DSECT
CSLSCQSC parameters
PARM=symbol
PARM=(r1-r12)
(Required) - Specifies the CSLSCQSC parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by SQSC_PARMLN.
RETCODE=symbol
RETCODE=(r1-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. SCI return codes are defined
in CSLSRR. Possible return codes for CSLSCQSC are described in the following table.
RSNCODE=symbol
RSNCODE=(r1-r12)
(Required) - Specifies a 4-byte field to receive the reason code on output. SCI reason codes are
defined in CSLSRR. Possible reason codes for CSLSCQSC are described in the following table.
SCITOKEN=symbol
SCITOKEN=(r1-r12)
(Required) - Specifies a 16-byte field containing the SCI token. This token uniquely identifies this
connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.
Related reference
“CSLSCMSG: send message request” on page 212
By issuing the CSLSCMSG request, you can send a message to one or more other IMSplex members. The
target members are specified by SCITOKEN, member name, or member type.
CSLSCRDY syntax
DSECT syntax
Use the DSECT function of a CSLSCRDY request to include equate (EQU) statements in your program for
the CSLSCRDY parameter list length and the CSLSCRDY return and reason codes.
CSLSCRDY FUNC=DSECT
READY syntax
The CSLSCRDY FUNC=READY request tells SCI that the IMSplex member is now ready to receive
messages and requests that are routed by an IMSplex member type.
CSLSCRDY parameters
PARM=symbol
PARM=(r1-r12)
(Required) - Specifies the CSLSCRDY parameter list. The length of the parameter list must be equal to
the parameter list length EQU value defined by SRDY_PARMLN.
RETCODE=symbol
RETCODE=(r1-r12)
(Required) - Specifies a 4-byte field to receive the return code on output. SCI return codes are defined
in CSLSRR. Possible reason codes for CSLSCRDY are described in the following table.
RSNCODE=symbol
RSNCODE=(r1-r12)
(Required) - Specifies the address of a 4-byte field to receive the CSLSCRDY reason code. SCI reason
codes are defined in CSLSRR. Possible reason codes for CSLSCRDY are described in the following
table.
SCITOKEN=symbol
SCITOKEN=(r1-r12)
(Required) - Specifies a 16-byte field containing the SCI token. This token uniquely identifies this
connection to SCI. The SCI token was returned by a successful CSLSCREG FUNC=REGISTER request.
Related reference
“CSLSCMSG: send message request” on page 212
By issuing the CSLSCMSG request, you can send a message to one or more other IMSplex members. The
target members are specified by SCITOKEN, member name, or member type.
CSLSCREG syntax
CSLSCREG DSECT syntax
Use the DSECT function of a CSLSCREG request to include equate (EQU) statements in your program for
the CSLSCREG parameter list length, the IMSplex types and the CSLSCREG return and reason codes.
CSLSCREG FUNC=DSECT
MBRNAME= membername
MBRVSN= memberversion
TYPE= membertypecode
TYPE= 'BATCH'
TYPE= 'CQS'
TYPE= 'DBRC'
TYPE= 'IMS'
TYPE= 'IMSCON'
TYPE= 'ODBM'
TYPE= 'OM'
TYPE= 'OTHER'
TYPE= 'RM'
TYPE= 'SCI'
NOTIFYEXIT= notifyexit
NOTIFYPARM= notifyparm
SCITOKEN= scitoken
INPUTEXIT= inputexit
INPUTPARM= inputparm
ABNDSTAT= NO
TCB= CURRENT
TCB= JOBSTEP
TCB= tcb
CSLSCREG parameters
ABNDSTAT=NO
ABNDSTAT=YES
(Optional) - Indicates if SCI is to keep track of the member if the member abnormally terminates. If
ABNDSTAT=YES is specified, SCI will retain an entry for the member with a status of ABTERM. If the
member normally terminates or if the member abnormally terminates after a successful CSLSCDRG,
SCI does not keep a record of the member.
This parameter is ignored for non-authorized IMSplex members.
Related concepts
“Issue CSL RM requests to manage global resources” on page 170
Before a client can access or change global resource information, it must register to SCI using the
CSLSCREG request. After the client registers to SCI, it must register to RM using the CSLRMREG request.
The client must issue an SCI registration request for every IMSplex with which it intends to communicate.
Related tasks
“Registering an ODBM client” on page 99
To register with ODBM, a client must first register with the CSL SCI and then with all active ODBMs in the
IMSplex.
Related reference
“CSLOMCMD: command request” on page 107
By using the CSLOMCMD request, your AOP client application that is running on the host can issue
requests and send commands to OM.
“CSLOMI: API request” on page 116
With the CSLOMI request, your AOP client can communicate with a z/OS address space that acts as an OM
AOP client. You can then issue OM requests and send QUERY commands to OM.
“CSLOMQRY: query request” on page 125
CSLSCRQR syntax
CSLSCRQR DSECT syntax
Use the DSECT function of a CSLSCRQR request to include equate (EQU) statements in your program for
the CSLSCRQR parameter list length and the CSLSCRQR return and reason codes.
CSLSCRQR FUNC=DSECT
NOCPYABN=N
RQSTTKN= requesttoken
NOCPYABN=Y
CSLSCRQR parameters
PARM=symbol
PARM=(r1-r12)
(Required) - Specifies the CSLSCRQR parameter list. The length of the parameter list must be at least
equal to the basic parameter list length of SRQR_PARMLN. However, if you code certain parameters
on CSLSCRQR, you must provide a longer parameter list. Use the following table to decide if you must
provide a parameter list of a longer length. If you are using more than one parameter listed, and the
parameters have different minimum length values, always use the one that ends with the largest
numeric value.
You can also define your parameter list to have a length of SRQR_PRMLMX bytes. This EQU is set to
the length of the longest CSLSCRQR parameter list version, and the parameter list will always be long
enough for any combination of macro parameters. However, this maximum length might change
because of maintenance or across IMS releases.
NOCPYABN=N | Y
(Optional) - Specifies how SCI should handle an abend during the copy phase of the request return
process.
N
SCI will take a dump and issue a message as determined by the logic in the ARR or FRR.
NOCPYABDN=N is the default.
Y
SCI will not take a dump or issue a message if an abend is encountered while it attempts to copy
data back to the requestor. SCI will only write an entry to the LOGREC data set.
This parameter was added as part of the Version 2 parameter list. If you include this parameter, your
parameter list must be at least equal to the value specified by SQRQ_PRMLV2.
RQSTRC=symbol
RQSTRC=(r1-r12)
(Optional) - Specifies the return code that is associated with the request being returned. This return
code will be given to the requesting member in the storage pointed to by the RETCODE parameter of
the CSLSCRQS that originated this request. If this parameter is not specified, a return code of zero will
be given to the requesting member.
If specified as a symbol, the symbol references storage that contains the return code.
RQSTRSN=symbol
RQSTRSN=(r1-r12)
(Optional) - Specifies the reason code that is associated with the request being returned. This reason
code will be given to the requesting member in the storage pointed to by the RSNCODE parameter of
the CSLSCRQS that originated this request. If this parameter is not specified, a reason code of zero
will be given to the requesting member.
If specified as a symbol, the symbol references storage that contains the return code.
RQSTTKN=symbol
RQSTTKN=(r1-r12)
(Required) - Specifies the request token that is associated with the request being returned. This
request token can be obtained from the input exit parameter list (INXP_RQSTTKN) when the request
was presented to the request processing member.
If specified as a symbol, the symbol references storage that contains the return code.
RETCODE=symbol
RETCODE=(r1-r12)
(Required) - Specifies the address of a 4-byte field to receive the CSLSCRQR return code. SCI return
codes are defined in CSLSRR. Possible return codes for CSLSCRQR are described in the following
table.
RSNCODE=symbol
RSNCODE=(r1-r12)
(Required) - Specifies the address of a 4-byte field to receive the CSLSCRQR reason code. SCI reason
codes are defined in CSLSRR. Possible reason codes for CSLSCRQR are described in the following
table.
CSLSCRQS syntax
DSECT syntax
Use the DSECT function of a CSLSCRQS request to include equate (EQU) statements in your program for
the CSLSCRQS parameter list length, the IMSplex types and the CSLSCRQS return and reason codes.
CSLSCRQS FUNC=DSECT
MBRFUNC= mbrfunctioncode
MBRSFUNC= mbrsubfunctioncode
FUNCTYPE=DEST
NAME= nameaddress
RSNCODE= reasoncodeaddress
RETNAME= returnnameaddress
RETTOKEN= returntokenaddress
TYPE= 'BATCH'
TYPE= 'CQS'
TYPE= 'DBRC'
TYPE= 'IMS'
TYPE= 'IMSCON'
TYPE= 'ODBM'
TYPE= 'OM'
TYPE= 'OTHER'
TYPE= 'RM'
TYPE= 'SCI'
CSLSCRQS parameters
ECB=symbol
ECB=(r1-r12)
(Optional) - Specifies the address of a z/OS ECB used for asynchronous requests. When the request is
complete, the ECB specified is posted. If an ECB is not specified, the task is suspended until the
request is complete. If an ECB is specified, the invoker of the macro must issue a WAIT (or equivalent)
after receiving control from CSLSCRQS, before using or examining any data returned by this macro
(including the RETCODE and RSNCODE fields).
FUNCTYPE=DEST
FUNCTYPE=SENDER
(Optional) - Specifies that the MBRFUNC and MBRSFUNC are defined by the DEST (destination) of this
request or the SENDER of the request. This indicator is passed to the recipient of the request in the
SCI Input exit parameter list.
MBRFUNC= symbol
MBRFUNC= (r1-r12)
(Required) - Specifies a 4-byte member function code that is passed to the destination of the request
in the SCI Input exit parameter list. This function code, along with the MBRSFUNC, identifies the
request that is being sent.
If MBRFUNC is a symbol, the symbol points to a four-byte area of storage that contains the function
code.
MBRPARM= symbol
MBRPARM= (r1-r12)
(Required) - Specifies the address of a pre-built parameter list. This parameter list must be built by
the requesting module and consists of sets of triplets. Each triplet describes a single parameter in the
member parameter list and consists of:
parameterlength
Four-byte parameter that specifies the length of the member parameter.
parameteraddress
Four-byte parameter that specifies the address of the member parameter.
datatype
Four-byte parameter that specifies how this parameter is to be handled by SCI. Equates are
provided for each type (included with CSLSCODE). These equates can be used to set the value of
data type. Possible values are:
Related reference
“CSLSCREG: registration request” on page 224
The Structured Call Interface (SCI) registration request is used to create a connection between an
IMSplex member and SCI. Before SCI can be used for communication within the IMSplex, an IMSplex
member must issue the CSLSCREG request and receive an SCI token when the request completes in order
to be recognized by SCI.
<imsout>
<ctl>
<omname> </omname>
<omvsn> </omvsn>
<xmlvsn> </xmlvsn>
<statime> </statime>
<stotime> </stotime>
<staseq> </staseq>
<stoseq> </stoseq>
<rqsttkn1> </rqsttkn1>
<rqsttkn2> </rqsttkn2>
<rc> </rc>
<rsn> </rsn>
<rsnmsg> </rsnmsg>
</ctl>
<cmdclients>
<mbr name="membername">
<typ> </typ>
<styp> </styp>
<vsn> </vsn>
<jobname> </jobname>
</mbr>
</cmdclients>
OM API Input:
CMD(QUERY TRAN) NAME(SKS*)) ROUTE(IMSA) TIMEOUT(10) RQSTTKN2(QTRANCMD)
OM API Output:
<imsout>
<ctl>
<omname>OM1</omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1</xmlvsn>
<statime>1999.341 12:52:44.46</statime>
<stotime>1999.341 12:52:44.46</stotime>
<staseq>B342BCC72A34D206</staseq>
<stoseq>B342BCC75CD52208</stoseq>
<rqsttkn2>QTRANCMD</rqsttkn2>
<rc>0</rc> <rsn>0</rsn>
</ctl>
<cmd>
<master>IMS1</master>
<verb>QRY</verb>
<kwd>TRAN</kwd>
<input>QUERY TRAN</input>
</cmd>
<cmdrsphdr>
<hdr slbl="TRAN" llbl="TranCode" scope="LCL" sort="a" key="1" scroll="no"
len="8" dtype="CHAR" align="left" />
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="4" scroll="no"
len="8" dtype="CHAR" align="left" />
<hdr slbl="CC" llbl="CC" scope="LCL" key="0" scroll="YES" len="4" dtype="INT"
align="right" />
</cmdrsphdr>
<cmdrspdata>
<rsp> TRAN(SKS1) MBR(IMSA) CC(0) </rsp>
OM API Input:
QUERY(CMDCLIENTS) RQSTTKN2(CLIENTLIST)
OM API Output:
<imsout>
<ctl>
<omname>OM1</omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1</xmlvsn>
<statime>1999.341 12:52:44.46</statime>
<stotime>1999.341 12:52:44.46</stotime>
<staseq>B342BCC72A34D206</staseq>
<stoseq>B342BCC75CD52208</stoseq>
<rqsttkn2>CLIENTLIST</rqsttkn2>
<rc>0</rc> <rsn>0</rsn>
</ctl>
<cmdclients>
<mbr name=IMSA>
<typ>DBDC</typ>
<vsn>0800</vsn>
<jobname>IMSJOB01</jobname>
</mbr>
<mbr name=IMSB>
<typ>DBDC</typ>
<vsn>0800</vsn>
<jobname>IMSJOB02</jobname>
</mbr>
</cmdclients>
</imsout>
OM API Input:
QUERY(CMDSYNTAX) RQSTTKN2(CMDLIST)
OM API Output:
<imsout>
<ctl>
<omname>OM1</omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1</xmlvsn>
<statime>1999.341 12:52:44.46</statime>
<stotime>1999.341 12:52:44.46</stotime>
<staseq>B342BCC72A34D206</staseq>
<stoseq>B342BCC75CD52208</stoseq>
<rqsttkn2>CMDLIST</rqsttkn2>
<rc>0</rc> <rsn>0</rsn>
</ctl>
<cmdsyntax>
<root>
<resource name="TRAN">
<verb name="QUERY">
<keyword name="NAME">
<var name="tranname*"/>
</keyword>
</verb>
</resource>
</root>
</cmdsyntax>
Related reference
“XML tags returned as CSL OM responses” on page 246
Different XML tags can be returned as CSL OM responses. Each tag name is delimited by the characters <
and >. Tags can be nested within parent tags to encapsulate related information.
QUERY TRAN command (Commands)
CSLOMCMD output
The command syntax example contains a sample of CSLOMCMD XML output. The example presents a
scenario that generates XML output based on the commands that are used in the example.
<?xml version="1.0"?>
<!DOCTYPE imsout SYSTEM "imsout.dtd">
<imsout>
<ctl>
<omname> </omname>
<omvsn> </omvsn>
<xmlvsn> </xmlvsn>
<statime> </statime>
<stotime> </stotime>
<staseq> </staseq>
<stoseq> </stoseq>
<rqsttkn1> </rqsttkn1>
<rc> </rc>
<rsn> </rsn>
</ctl>
<cmderr>
<mbr name="membername">
<typ> </typ>
<styp> </styp>
<rc> </rc>
<rsn> </rsn>
</mbr>
</cmderr>
<cmdsecerr>
<exit>
<rc> </rc>
<userdata> </userdata>
</exit>
<saf>
<rc> </rc>
<racfrc> </racfrc>
<racfrsn> </racfrsn>
</saf>
</cmdsecerr>
<cmd>
<master> </master>
<userid> </userid>
<verb> </verb>
<kwd> </kwd>
<input> </input>
</cmd>
<cmdrsphdr>
<hdr ... /hdr>
</cmdrsphdr>
<cmdrspdata>
CSLOMQRY output
Each of the command syntax examples contain a sample of CSLOMQRY XML output. The examples
present different scenarios that generate XML output based on the commands that are used in the
example.
<imsout>
<ctl>
<omname> </omname>
<omvsn> </omvsn>
<xmlvsn> </xmlvsn>
<statime> </statime>
<stotime> </stotime>
<staseq> </staseq>
<stoseq> </stoseq>
<rqsttkn1> </rqsttkn1>
<rc> </rc>
<rsn> </rsn>
</ctl>
<cmdclients>
<mbr name="membername">
<typ> </typ>
<styp> </styp>
<vsn> </vsn>
<jobname> </jobname>
</mbr>
</cmdclients>
<cmdsyntax> </cmdsyntax><cmddtd>
<!ELEMENT imsout ( ctl, cmdclients?, cmdsyntax?, cmddtd?,
cmdtext?, cmderr?, cmd, cmdrsphdr, cmdrspdata?, msgdata? )>
<!ELEMENT ctl (omname?, omvsn?, xmlvsn?, stattime, stotime,
statseq, stoseq, rqsttkn1?, rqsttkn 2?, rc, rsn )>
<!ELEMENT omname (#PCDATA) >
<!ELEMENT omvsn (#PCDATA) >
<!ELEMENT xmlvsn (#PCDATA) >
<!ELEMENT statime (#PCDATA) >
<!ELEMENT stotime (#PCDATA) >
<!ELEMENT staseq (#PCDATA) >
<!ELEMENT stoseq (#PCDATA) >
<!ELEMENT rqsttkn1 (#PCDATA) >
<!ELEMENT rqsttkn2 (#PCDATA) >
<!ELEMENT rc (#PCDATA) >
<!ELEMENT rsn (#PCDATA) >
<!ELEMENT cmdclients ( mbr+ )>
<!ELEMENT cmdsyntax (#PCDATA) >
<!ELEMENT cmddtd (#PCDATA ) >
<!ELEMENT cmdtext (#PCDATA) >
<!ELEMENT cmderr ( mbr* )>
<!ELEMENT MBR ( (TYP, STYP, ((VSN, JOBNAME) | (rc, rsn))) | msg)>
Related reference
“CSLOMQRY: query request” on page 125
With the CSLOMQRY request, any AOP client that is running on the host can request OM-specific
information.
CSLOMOUT output
The command syntax example contains a sample of CSLOMOUT XML output. The example presents a
scenario that generates XML output based on the commands that are used in the example.
<imsout>
<ctl>
<omname></omname>
<omvsn></omvsn>
<xmlvsn></xmlvsn>
<statime></statime>
<staseq></staseq>
<uom>UOM</uom>
</ctl>
<msgdata>
<mbr name="membername">
<typ></typ>
<styp></styp>
<msg></msg>
</mbr>
<msgdata>
</imsout>
<hdr slbl="ss" llbl="llll" scope="c" sort="d" key="e" scroll="f" len="g" dtype="h" align="i" skipb="no"/>
slbl
Short label used to match data description with data value that is returned by the
<cmdrspdata> tag.
The short label values vary by command. Refer to the documentation for each command to
determine what values can be returned for a specific command.
<?xml version="1.0"?>
<!DOCTYPE imsout SYSTEM "imsout.dtd">
<imsout>
<ctl>
<omname>OM1OM </omname>
<omvsn>1.1.0</omvsn>
<xmlvsn>1 </xmlvsn>
<statime>2002.261 18:33:56.425140</statime>
<stotime>2002.261 18:33:56.487941</stotime>
<staseq>B8400987409B4A0E</staseq>
<stoseq>B84009874FF05409</stoseq>
<rqsttkn1>USRT002 10113356</rqsttkn1>
<rc>00000000</rc>
<rsn>00000000</rsn>
</ctl>
<cmd>
<master>IMS2 </master>
<userid>USRT002 </userid>
<verb>QRY </verb>
<kwd>TRAN </kwd>
<input>QRY TRAN NAME(ADD*) SHOW(PSB,QCNT,CLASS) </input>
</cmd>
<cmdrsphdr>
<hdr slbl="TRAN" llbl="Trancode" scope="LCL" sort="a" key="1"
scroll="no" len="8" dtype="CHAR" align="left" />
<hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a" key="4"
scroll="no" len="8" dtype="CHAR" align="left" />
<hdr slbl="CC" llbl="CC" scope="LCL" sort="n" key="0"
scroll="yes" len="4" dtype="INT" align="right" />
<hdr slbl="PSB" llbl="PSBname" scope="LCL" sort="n" key="0"
scroll="yes" len="8" dtype="CHAR" align="left" />
<hdr slbl="Q" llbl="QCnt" scope="GBL" sort="d" key="2"
scroll="yes" len="8" dtype="INT" align="right" />
<hdr slbl="LCLS" llbl="LCls" scope="LCL" sort="n" key="0"
scroll="yes" len="3" dtype="INT" align="right" />
<hdr slbl="LQ" llbl="LQCnt" scope="LCL" sort="d" key="3"
scroll="yes" len="8" dtype="INT" align="right" /></cmdrsphdr>
<cmdrspdata>
<rsp>TRAN(ADDPART ) MBR(IMS2 ) CC( 0) PSB(DFSSAM04) LCLS( 4)
LQ( 0) </rsp>
<rsp>TRAN(ADDINV ) MBR(IMS2 ) CC( 0) PSB(DFSSAM04) LCLS( 4)
LQ( 0) </rsp>
<rsp>TRAN(ADDPART ) MBR(IMS2 ) CC( 0) Q( 0) </rsp>
<rsp>TRAN(ADDINV ) MBR(IMS2 ) CC( 0) Q( 0) </rsp>
<rsp>TRAN(ADDPART ) MBR(SYS3 ) CC( 0) PSB(DFSSAM04) LCLS( 4)
LQ( 0) </rsp>
<rsp>TRAN(ADDINV ) MBR(SYS3 ) CC( 0) PSB(DFSSAM04) LCLS( 4)
LQ( 3) </rsp>
</cmdrspdata>
</imsout>
If two records have the same Trancode, they are sorted by Qcnt. If they also have the same
Qcnt, they are sorted by LQcnt. If they have the same LQcnt value, they are sorted by
MbrName, and so on, until the nth sort field is used.
The results of the XML in the previous code are displayed in the following code sample.
<cmdrsphdr>
<hdr slbl="TRAN" llbl="Trancode"... />
<hdr slbl="PSB" llbl="PSBname" ... />
</cmdrsphdr>
<cmdrspdata>
<rsp>TRAN(A ) PSB(A11 ) </rsp>
<rsp>TRAN(B ) PSB(B22 ) </rsp>
<rsp>TRAN(C ) PSB(C33 ) </rsp>
</cmdrspdata>
The <hdr> tag includes a long label value (llbl=), which can be used as column headings. This is
shown in the following output example, specifically Trancode and PSBname.
Trancode PSBname
A A11
B B22
C C33
The values included in the response data propagate the data columns of the SPOC output. Other
tags in the <hdr> tag describe formatting attributes for values in that column.
<msgdata> </msgdata>
Encapsulates pre-built IMS messages. The messages can be of any type including informational,
warning, or error messages. These tags can be returned on a command request.
<mbr name="membername"></mbr>
Indicates the name of the IMSplex member that returned the message.
<msg>message data</msg>
Contains a logical command response output for a resource in a message format. The
message starts with a message number (for example, DFSnnnnI). There is no LL field or X'15'
new line character.
<cmderr> </cmderr>
Encapsulates the return and reason code information returned by OM or a command processing
client. These tags are returned on command requests when an error specific to a command
processing client must be returned. For each IMSplex member with an error, the following information
is returned.
<mbr name="membername"></mbr>
Indicates the name of the IMSplex member for which an error was detected.
<typ>membertype</typ>
Indicates the type of IMSplex member.
<styp>membersubtype</styp>
Indicates the IMSplex member subtype. OM converts unprintable characters to periods (.) in
the output.
<rc>returncode</rc>
Indicates the return code for the IMSplex member in printable EBCDIC hexadecimal format.
<rsn>reasoncode</rsn>
Indicates the reason code for the IMSplex member in printable EBCDIC hexadecimal format.
<cmdsecerr> </cmdsecerr>
Encapsulates the return and reason code information returned by the OM security exit, SAF and RACF,
or equivalent. If the OM security exit rejected the command for any reason, the user data from the
security exit is also encapsulated here.
<exit> </exit>
Encapsulates the return code and user data from the OM security exit.
Note: Other forms of the ADDRESS command might not work in the Tivoli® NetView® for z/OS environment.
After you set the default host command to IMSSPOC, IMSSPOC executes subsequent host commands
issued by the REXX program that is running. You can switch to other host commands by using the
ADDRESS command with other hosts. For example:
ADDRESS TSO
ADDRESS MVS
ADDRESS ISPEXEC
You can then issue commands that are specific to those environments.
Note: If you issue commands other than the subcommands described here in the REXX environment, they
are sent to OM for processing.
IMS subcommand
The IMS subcommand establishes the name of the IMSplex. You must issue the IMS subcommand to
establish the IMSplex name before any other commands can be issued. A prefix of "CSL" is automatically
added to the name that you specify.
IMS IMSplex_name
ROUTE
command_processor
*
%
CART subcommand
Use the Command and Response Token (CART) subcommand to set the name of the command and
response token. This 16-character text string token is used to retrieve the command response.
You must issue the CART subcommand before you can issue any IMS commands.
CART token_name
WAIT subcommand
Use the WAIT subcommand to provide a timeout value to OM. The time value must be in the form
MMM:SS or ssss. The maximum value you can specify is 999:59. The WAIT subcommand is optional.
WAIT time_value
"DIS ACT"
tranlist = "PETER1,MATT1"
"QUERY TRAN NAME("tranlist")"
stem_name
After the CSLULGTS command completes successfully, the stem variable contains XML statements.
Each row of the stem variable contains one XML statement. If the beginning and ending XML tags are
adjacent (that is, no other XML tags exist between them), they are placed in the same row of the stem
variable. A single row of a stem variable might look like this:
token_name
The name of the command and response token (CART). It should match the name specified on the
CART subcommand.
wait_time
A timeout value for the CSLULGTS command. The CSLULGTS command waits until the command
completes, but the wait lasts only as long as the time specified. The wait time is in the format MMM:SS
or ssss. The maximum timeout value is 999:59. Enclose this value in quotes.
Note: This timeout value is not the same as the timeout value for the WAIT subcommand; however,
this wait_time should be at least as long as the value specified on the WAIT subcommand. Otherwise,
no command response are received for long running commands.
If no response is received the first time, you can issue the CSLULGTS command again.
FID
MYVAR=CSLULOPT( NOFID )
'LRECL= number ' WRAP
BYRSC
F
Specifies an output option. The possible options are:
BYCOL
Group lines by column.
BYRSC
Group lines by resource.
WRAP
Wrap individual lines (default).
FID
Specifies that the command response includes the FID. The default is FID.
LRECL
Specifies the logical record length as a numeric value.
stem_name
After the CSLULGTP request completes successfully, the REXX stem variable is populated with the
command response that is returned by OM. The REXX program can then refer to the command
response and take appropriate action.
token_name
The name of the command and response token (CART). The token name should match the name
specified on the CART subcommand.
wait_time
A timeout value for the CSLULGTP command. The CSLULGTP command waits until the command
completes, but the wait lasts only as long as the time specified. The wait time is in the format
MMMMM:SS or ssssss. Enclose this value in quotes.
The maximum timeout value is 99999:59. If you do not specify a value for this parameter, the
command times out after a very short delay of less than one tenth of a second.
IMS checks whether the command completed or timed out every 0.01 seconds if the value of
wait_time is less than ten seconds. If the value is larger than ten seconds, IMS checks every second
instead.
This timeout value is not the same as the timeout value for the WAIT subcommand; however, the
value of wait_time should be at least as long as the value specified on the WAIT subcommand.
Otherwise, no command response are received for long running commands.
If no response is received the first time, you can issue the CSLULGTP command again.
Intermittent results can occur when stem_name, token_name, and wait_time parameters are not
coded on the CSLULGTP call.
Sample code for retrieving command responses using the CSLULGTP request
The following examples provide a code sample of the CSLULGTP request.
Example #1: In the example, the IMS command QRY TRAN NAME(A) is issued, and the CSLULGTP
request is used to retrieve the command response.
Example #2: This program issues the IMS UPD PGM command and processes the command responses.
The following actions are taken based on the completion code:
/*-------------------------------------------------------------
| Establish IMS rexx environment. |
-------------------------------------------------------------*/
Address LINK 'CSLULXSB'
Address IMSSPOC
"IMS PLEX1"
"WAIT 5:00"
"CART CMDTOKEN"
/*---------------------------------------------------------------------------
| Issue an IMS command |
---------------------------------------------------------------------------*/
"UPD PGM NAME(APOL1,BMP255,PGMX,PGMY) SET(SCHDTYPE(SERIAL))"
/*---------------------------------------------------------------------------
| Get command responses |
---------------------------------------------------------------------------*/
spoc_rc = CSLULGTP('stem1.','CMDTOKEN',"59")
/*---------------------------------------------------------------------------
| Get some data for diag |
---------------------------------------------------------------------------*/
Say '*DATA: '
Say '*CMD issued = ' stem1.cmd.input
Say '*SPOC rc = ' spoc_rc
Say '*Command rc = ' stem1.ctl.rc
Say '*Command rsn= ' stem1.ctl.rsn
row = 1
if stem1.cmderr.0 > 0 then do
Say '*Num of errors =' stem1.cmderr.0
Say '*CMD error RC =' stem1.cmderr.row.rc
Say '*CMD error RSN =' stem1.cmderr.row.rsn
end /* if */
if stem1.rsp.0 > 0 then do
Say '*Num of rsp rows =' stem1.rsp.0
end /* if */
if stem1.rsp.0 > 0 then do
/* print each line of the stem.report */
Do n = 1 to stem1.report.0
Say stem1.report.n
End
end /* if */
say ' '
/*---------------------------------------------------------------------------
| Process responses |
---------------------------------------------------------------------------*/
spoc_rc = left(spoc_rc,2)
if spoc_rc >< '08' then do /* process response if GTP ran ok */
/*-------------------------------------------------------------
| Process the stem response if IMS return code is |
| X'00000000' or X'00000004' or X'0000000C'. |
------------------------------------------------------------*/
row = 1
imsrc = left(stem1.cmderr.row.rc,2)
If (imsrc = 00) | (imsrc = 04) | (ims.rc = 0C) then do
do row = 1 to stem1.RSP.0
stem_cc.row = stem1.RSP.row.cccol
stem_cctxt.row = stem1.RSP.row.cctxtcol
say '*Completion code on row 'row ': 'stem_cc.row
say '*Completion code text on row 'row ': 'stem_cctxt.row
stem_cc.row = stem1.RSP.row.cccol
stem_cctxt.row = stem1.RSP.row.cctxtcol
/*-------------------------------------------------------------
| Process case 2. |
| When completion code is X'10', resource not found, issue |
| a CREATE PGM command to create a program like the default |
| descriptor. |
------------------------------------------------------------*/
when left(stem_cc.row,2) = 10 then do
say 'Issue CREATE PGM command for' stem1.RSP.row.1
arg1 = stem1.rsp.row.1 /* extract pgmname to arg1 */
"CREATE PGM NAME("arg1")" /* issue CRE cmd with arg1 */
spoc_rc1 = CSLULGTP('stem2.','CMDTOKEN',"59")
if stem2.rsp.0 > 0 then do
/* print each line of the stem.report */
Do n = 1 to stem2.report.0
Say stem2.report.n
End
say ' '
end /* if */
end /* when */
/*-------------------------------------------------------------
| Process case 3 |
| When completion code is X'73', program scheduled, issue |
| a DISPLAY ACTIVE REGION command to see the active regions. |
| The region needs to be stopped and the UPD command retried. |
------------------------------------------------------------*/
when left(stem_cc.row,2) = 73 then do
say 'Program ' stem1.RSP.row.1 'is scheduled'
"/DISPLAY ACT REGION"
spoc_rc2 = CSLULGTP('stem3.','CMDTOKEN',"59")
/* print the response from each IMS */
if stem3.MSGDATA.MSG.1.0 > 0 then do
do x = 1 TO stem3.MSGDATA.NAME.0
SAY stem3.MSGDATA.NAME.X
do y = 1 TO stem3.MSGDATA.MSG.X.0
SAY stem3.MSGDATA.MSG.X.Y
end/*end do y loop */
end /* end do x loop */
end /* end if */
say 'Issue /STOP REGION commnd and retry UPD cmd'
say ' '
end /* when */
/*-------------------------------------------------------------
| For all other completion codes print the error compcode. |
------------------------------------------------------------*/
otherwise do
say 'Invalid CC for program' stem1.RSP.row.1
say ' '
end /* otherwise */
end /* select */
end /* do loop */
/*-------------------------------------------------------------
| Print IMS rc and rsn for all other error rc/rsn. |
------------------------------------------------------------*/
Else do
say '*IMS RC & RSN = ' stem1.ctl.rc stem1.ctl.rsn
end /* else */
/*-------------------------------------------------------------
| Exit program |
------------------------------------------------------------*/
"END" /* SPOC */
EXIT /* REXX */
</ctl> N/A
<cmderr> stem.cmderr.0
<mbr name="membername"> stem.cmderr.x.name
</mbr> N/A
</cmderr> N/A
<cmdsecerr> N/A
<exit> N/A
</exit> N/A
<saf> N/A
</saf> N/A
</cmdsecerr> N/A
<cmd> N/A
</cmd> N/A
<cmdrsphdr> N/A
<hdr></hdr>
stem.hdr.0 (number of columns)
stem.hdr.x.slbl
stem.hdr.x.llbl
stem.hdr.x.scope
stem.hdr.x.sort
stem.hdr.x.key
stem.hdr.x.scroll
stem.hdr.x.len
stem.hdr.x.dtype
stem.hdr.x.align
</cmdrsphdr> N/A
<cmdrspdata> N/A
</cmdrspdata> N/A
<msgdata> N/A
<msg> </msg>
stem.msgdata.msg.y.0 (num of msgs /sys)
stem.msgdata.msg.y.x (1 message line)
</mbr> N/A
</msgdata> N/A
</imsout> N/A
N/A
stem.report.0 (number of lines)
stem.report.x (1 line of report)
The program would have results like this, where each line of the stem has a line of a formatted report.
6
Response for: QRY TRAN SHOW(PSB,QCNT)
Trancode MbrName CC PSBname QCnt LQCnt
ADDINV IMS2 0 0
ADDINV IMS2 0 DFSSAM04 2
ADDINV SYS3 0 DFSSAM04 1
ADDPART IMS2 0 0
END
CSLULSUB request
By issuing the CSLULSUB request, you can start the subscription and monitor OM for unsolicited
messages.
CSLULUSB request
By issuing the CSLULUSB request you can end the subscription. If a subscription does not exist, OM is no
longer monitored for unsolicited messages.
CSLULGUM request
By issuing the CSLULGUM request you can copy unsolicited output messages to the REXX program
variable named stem_name. The REXX program can then examine the messages and take appropriate
action.
/* rexx */
/*-------------------------------------------------------------
| REXX SPOC API example to invoke unsolicited output message |
| functions. |
-------------------------------------------------------------*/
/*-------------------------------------------------------------
| tuning parameter: check every 10 seconds |
-------------------------------------------------------------*/
interval = 10
/*-------------------------------------------------------------
| We want to make syscalls, that is, sleep |
-------------------------------------------------------------*/
Call syscalls 'ON'
/*-------------------------------------------------------------
| Establish IMS rexx environment |
Do a = 1 To 25
/*-------------------------------------------------------------
| wait a little before checking for new messages |
-------------------------------------------------------------*/
Address syscall "sleep" interval
/*-------------------------------------------------------------
| Check if any unsolicited messages are present. |
-------------------------------------------------------------*/
results = CSLULGUM('PLEX1','xml.')
say 'a='a 'results=('results')'
End
End
/*-------------------------------------------------------------
| Unsubscribe to unsolicited messages. |
-------------------------------------------------------------*/
usbrc = CSLULUSB('PLEX1' )
/*-------------------------------------------------------------
| clean up REXX SPOC API |
-------------------------------------------------------------*/
"END"
End
Exit
"WAIT 5:00"
"CART DISTRAN"
"/DIS TRAN PART"
/*-------------------------------------------------------------
| The cslulgts function retrieves data associated with a |
| a specific token and fills in a REXX stem variable. In |
| this example, it waits 59 seconds. |
| |
| The XML statements returned are put in the stem variable |
| specified by the user. |
| |
--------------------------------------------------------------*/
spoc_rc = cslulgts('DISINFO.','DISTRAN',"59")
do z1 = 1 to DISINFO.0
/* display each line of XML information */
Say disinfo.z1
end
"END"
//REXXSPOC JOB ,
// MSGCLASS=H,NOTIFY=USRT002,USER=USRT002,TIME=(,30)
//*
//SPOC EXEC PGM=IKJEFT01,DYNAMNBR=45
//STEPLIB DD DISP=SHR,DSN=IMS.SDFSRESL
//SYSPROC DD DISP=SHR,DSN=LOCAL.IMS.CLIST
//SYSTSPRT DD SYSOUT=A
//SYSTSIN DD *
%REXXSPOC QRY TRAN NAME(V*)
/*EOF
/* rexx */
parse upper arg theIMScmd
Address LINK 'CSLULXSB'
if rc = 0 then
do
Address IMSSPOC
"IMS plex1" ; if rc > 0 then say 'rc='imsrc 'reason='imsreason
"route ims2"; if rc > 0 then say 'rc='imsrc 'reason='imsreason
cartid = "TEST13"
"cart" cartid ; if rc > 0 then say 'rc='imsrc 'reason='imsreason
"WAIT 1:00" ; if rc > 0 then say 'rc='imsrc 'reason='imsreason
theIMScmd
if rc > 0 then say 'rc='rc 'imsrc='imsrc 'reason='imsreason
do
results = cslulgts('TEMP.', cartid,"1:30")
say 'results='results ' imsrc='imsrc ' reason='imsreason
if temp.0 /= '' then
do
say 'temp.'0'=('temp.0')'
do idx = 1 to temp.0
say 'temp.'idx'= 'temp.idx
end
end
end
"END"
End
exit
Sample output
The output from the REXXSPOC sample program is shown in the following output example.
READY
%REXXSPOC QRY TRAN NAME(V*)
results=00000000X imsrc=00000000X reason=00000000X
temp.0=(30)
temp.1= <imsout>
temp.2= <ctl>
temp.3= <omname>OM1OM </omname>
temp.4= <omvsn>1.1.0</omvsn>
temp.5= <xmlvsn>1 </xmlvsn>
temp.6= <statime>2001.198 16:08:39.944953</statime>
temp.7= <stotime>2001.198 16:08:40.271944</stotime>
temp.8= <staseq>B625CACD49AF914A</staseq>
temp.9= <stoseq>B625CACD99848CC6</stoseq>
temp.10= <rqsttkn1>TEST13 </rqsttkn1>
temp.11= <rc>00000000</rc>
temp.12= <rsn>00000000</rsn>
temp.13= </ctl>
temp.14= <cmd>
temp.15= <master>IMS2 </master>
temp.16= <userid>USRT002 </userid>
temp.17= <verb>QRY </verb>
temp.18= <kwd>TRAN </kwd>
temp.19= <input>QRY TRAN NAME(V*)</input>
temp.20= </cmd>
temp.21= <cmdrsphdr>
temp.22= <hdr slbl="TRAN" llbl="Trancode" scope="LCL" sort="a"
key="1" scroll="no" len="8" dtype=" CHAR" align="left" />
temp.23= <hdr slbl="MBR" llbl="MbrName" scope="LCL" sort="a"
key="4" scroll="no" len="8" dtype="CHAR" align="left" />
temp.24= <hdr slbl="CC" llbl="CC" scope="LCL" sort="n"
key="0" scroll="yes" len="4" dtype="INT" align="right" />
temp.26= </cmdrsphdr>
temp.26= <cmdrspdata>
temp.27= <rsp>TRAN(VIDB ) MBR(IMS2 ) CC( 0) </rsp>
temp.28= <rsp>TRAN(VIDA ) MBR(IMS2 ) CC( 0) </rsp>
temp.29= </cmdrspdata>
temp.30= </imsout>
READY
END
In this example using /DISPLAY ACT, the command response includes the FIDs, because the default is
to provide the FIDs.
In the example that follows using /DISPLAY STATUS, the CSLULOPT function is invoked before the
command is issued. The CSLULOPT function specifies that FIDs are not to be included in the command
response. In the command response, no FIDs are included.
OPT_RC = CSLULOPT('NOFID')
"CART DISCART2"
"DISPLAY STATUS"
RSP_RC2= CSLULGTS('DISCART1','STAT1.')
Autonomic example 1
In the following example, a transaction is queried. If the transaction is stopped, the REXX SPOC API
attempts to start it. The REXX SPOC API examines the information returned by CSLULGTS, looking
specifically for the line that refers to the transaction of interest.
Do idx = 1 to resp.0
/* find which IMS and the status of tran */
parse var resp.idx . "TRAN(CDEBTRN3" . ,
"MBR(" imsname ")" . ,
"LSTT(" status ")" .
Autonomic example 2
In the following example, the QUERY command is used to determine the queue count (qcnt) of a
transaction. A qcnt with a value greater than 5 is considered a problem. The REXX SPOC API attempts to
resolve the problem by starting another region and changing the transaction to a different class.
Related concepts
z/OS: Data compression and expansion services
Related reference
“CAPD block format (LOGID=X'00')” on page 284
The CAPD block contains fields that describe the name of the exit routine that is to be given control, the
name of the physical database, the segment code, and other information that relates to the log record.
“CAPD_DATA format (LOGID=X'0C')” on page 287
(*): Each bit represents whether the corresponding command code number was specified. For example, if
CMD_CODE_S is X'A0', it means that S1S3 was specified on the SSA.
Related concepts
“Elements of captured data” on page 273
(*): Each bit represents whether the corresponding command code number was specified. For example, if
CMD_CODE_R is X'20', it means that R3 was specified on the SSA.
Related concepts
“Elements of captured data” on page 273
Each data element contains a 4-byte header with metadata the describes the type and length of the data
that follows the header.
Related concepts
“End of Job (EOJ) call log record” on page 277
The EOJ call log record (X'28' subcode) is written when a batch DL/I program that has written changed
data log records terminates normally. The record is written to indicate that the updates have been
committed, because a commit record is not written to the log when a batch job terminates.
Related concepts
“SETS and ROLS call log records” on page 279
The SETS (X'30' subcode) and the ROLS (X'34' subcode) call log records are written whenever an
application that might cause data to be captured issues a SETS or ROLS call using a token.
Processing threads
The way that the DRA processes a CCTL thread is different from how it processes an ODBA thread. In each
case, the CCTL or z/OS application program issues a request through the creation of a DRA thread or the
allocation of a DRA thread block, respectively.
• Scheduling is in progress.
• Scheduling is in progress.
Thread2 can resume immediately because the • The Resume exit routine sees the thread token
CCTL TCB is idle. Execution resumes directly after (PAPLTTOK) and flags CCTL thread2 as 'ready to
the point at which the thread was suspended by resume'.
the Suspend exit routine.
• The Resume exit routine returns to the DRA, and
TCB2 becomes inactive.
Thread1 must wait until the Resume exit routine is • The Resume exit routine sees the thread token
available because thread2 has just resumed. (PAPLTTOK) and flags CCTL thread1 as 'ready to
resume'.
The CCTL creates a new task to resolve this in- • The DRA passes the address of the
doubt status because there is an entry in the resynchronization list (PAPLRST) to the CCTL. The
resynchronization list for the IMS DB in-doubt UOR. list contains one entry for the IMS DB indoubt
UOR for CCTL thread2.
Time →
–––A–––B––––––C–––D–––E––––
The following table shows the system events that occur when CCTL is used for two-phase sync point
processing.
Time →
–––A–––B–––––C–––D–––E–––––––––––F–––G––––H––––––J–––K––––––––
The following figure shows the system events that occur when two-phase sync point processing is
completed using ODBA.
CCTL example
If in-doubt UORs are created because IMS DB failed, the following sequence must occur to resolve the in-
doubt UORs.
1. After restarting IMS DB, the CCTL should identify itself to IMS DB using an INIT request.
2. If identification is successful, the DRA notifies the CCTL control exit, passing to it a list of IMS DB UORs
that are in-doubt.
3. The CCTL must resolve each in-doubt by making a RESYNC call, which causes a phase 2 action,
commit or abort.
4. For CCTL to resolve a IMS DB in-doubt UOR, the CCTL must have a record of this UOR and the
appropriate phase 2 action it must take. In this example, the CCTL record of a possible IMS DB in-
doubt UOR is called a transition UOR.
5. The CCTL must define a transition UOR for the interval A-K (refer to Table 81 on page 303). Because
this interval encompasses the IMS DB in-doubt period C-H, CCTL can resolve any in-doubts.
If a CCTL defines a transition UOR as interval E-K and if IMS DB fails while a thread is between C and D,
IMS DB has an in-doubt UOR for which CCTL has no corresponding transition UOR, even though the phase
1 call failed. CCTL cannot resolve this UOR during the identify process. The only way to resolve this in-
doubt is by using the IMS DB command, /CHANGE CCTL.
For ODBA, all in-doubts are resolved through z/OS Resource Recovery Services.
DFSPZP00 CSECT
DFSPRP
DSECT=NO,FPBUF=10,FPBOF=5,CNBA=60,MINTHRD=3,MAXTHRD=6,DSNAME=IMS.SDFSRESL
END
The remainder of the DRA modules reside in a load library that is dynamically allocated by DFSAERA0.
The DDNAME and DSNAME of this load library are specified in the startup table. The default DSNAME
(IMS.SDFSRESL) contains all the DRA code.
Related reference
Database resource adapter startup table for CCTL regions (System Definition)
Table 82.
CCTL-id binary value commit_number
8 5 3
where:
CCTL-id
Is the CCTL ID (1 to 8 characters).
binary value
Is a 5-byte binary origin application value assigned by the CCTL to the application when it is
scheduled. The concatenation of CCTL and binary value (CCTL-id || binary value) is unique across the
entire Unit of Work.
commit_number
Is a 3-byte binary commit number. The commit number should be initialized to binary zeroes when
the application is scheduled and then incremented after each commit is processed for the application.
The concatenation of CCTL-id, binary value, and commit number (CCTL-id || binary value || commit
number) is unique across the Unit of Recovery.
The CCTL must ensure that the passed recovery token is unique. IMS only validates that the recovery
token is unique, it does not verify the structure of the token.
The installation uses the /DISPLAY CCTL command to determine what units of work are in INDOUBT
status in IMS. The installation can use the /CHANGE command (when necessary) to manually delete
indoubt units of work in IMS. The /CHANGE command (when necessary) to manually delete INDOUBT
units of work IMS. The /CHANGE command only affects unit of work status in IMS. There is no
communication with the CCTL.
INIT request
You can use the INIT request to initialize the DRA. The DRA startup parameter table contains all of the
required parameters that you need to define the DRA. You can use the parameters given in the default
module, DFSPZP00, or you can write your own module and bind it into the IMS.SDFSRESL data set.
The INIT PAPL also contains some parameters needed to initialize the DRA. If the same parameter
appears in both the INIT PAPL and in the DRA startup parameter table, the specification in the INIT PAPL
will override that in the startup table.
In addition to the required parameters of INIT PAPL, the optional parameters include:
Field
Contents
PAPLFUNC
PAPLINIT
PAPLSUSP
The address of the Suspend exit routine
PAPLRESM
The address of the Resume exit routine
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
PAPLCNTL
The address of the Control exit routine
INIT request to notify the DRA that CCTL is using Sync Continue behavior
This option directs IMS restart how to compare recovery tokens when there are multiple sync points in a
single PSB schedule. To request activation of the DRA Sync Continue behavior and adherence to the IMS
defined format of the recovery token, set the following fields for the INIT request:
PAPLOSCT
Set this bit (X'40') to activate the Sync Continue behavior.
Related concepts
“Enable the DRA for a CCTL” on page 309
RESYNC request
You can use the RESYNC request to tell IMS DB what to do with in-doubt UORs. Four different subfunction
values indicate possible actions for IMS DB to take for the UOR.
The following subfunction values indicate possible actions:
PAPLRCOM
Commit the in-doubt UOR.
PAPLRABT
Abort the in-doubt UOR. Changes made to any recoverable resource are backed out.
PAPLSCLD
The UOR was lost to the transaction manager due to a coldstart.
PAPLSUNK
The in-doubt UOR is unknown to the CCTL. This can occur when the CCTL's in-doubt period does not
include the start of phase 1. (See Table 81 on page 303 for an illustration of in-doubt periods.)
You must fill in the following input fields of the PAPL:
Field
Contents
PAPLCTOK
Request token
This token identifies the CCTL to the DRA. The DRA establishes the token and returns it to the CCTL in
the parameter list on the startup INIT request. The request token must be passed on to the DRA for all
RESYNC requests.
PAPLRTOK
Recovery token
This 16-byte token is associated with a UOR. The first 8 bytes must be the transaction manager
subsystem ID. The second 8 bytes must be unique for one CCTL thread. This is one of the in-doubt
recovery tokens passed to the Control exit routine.
PAPLFUNC
PAPLRSYN
PAPLSFNC
This field must contain PAPLRCOM, PAPLRABT, PAPLSCLD, or PAPLSUNK.
In addition to the required input parameters, the optional input parameters include:
Field
Contents
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
TERM request
You can use the TERM request to terminate the IMS DB/CCTL connection and a remove the DRA from the
CCTL environment. The DRA terminates after all threads have been resolved. No new DRA or thread
requests are allowed, and current requests in progress must complete.
You must fill in the following input fields in the PAPL:
SCHED request
You can use the SCHED request to schedule a PSB in IMS DB. The first SCHED request made by a CCTL
thread requires a new DRA thread. Existing DRA thread TCBs are used if they are not currently processing
a DRA thread.
If no TCBs are available, the DRA either creates a new thread TCB (until the maximum number of threads
as specified by the MAXTHRD parameter in the INIT request is reached), or makes the SCHED request
wait until a thread becomes available.
The value in the PAPLWCMD field indicates whether the thread to which the SCHED request applies is a
short or long thread. The type of thread determines the action that IMS takes when a database command
is entered for a database scheduled to the thread. The /STOP DATABASE, /DBDUMP DATABASE, or /
DBRECOVERY DATABASE command issued against a database scheduled on a short thread will wait for
the database to be unscheduled. IMS rejects these commands if they are entered for a database
scheduled on a long thread.
You must fill in the following input fields in the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN, thread function code
PAPLSFNC
PAPLSCHE, schedule request subfunction code
IMS request
You can use the IMS request to make an IMS or Fast Path database request against the currently
scheduled PSB.
You must fill in the following input fields in the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN
PAPLSFNC
PAPLDLI, DL1 request subfunction code
PAPLCTOK
DRA request token (output from an INIT request)
PAPLCTK2
Thread Token number 2. This is the DRA request token that is part of the output from a SCHED
request.
PAPLTTOK
Thread token set up by the CCTL
PAPLRTOK
RTOKEN
A 16-byte UOR token.
PAPLCLST
The address of an IMS call list.
PAPLALAN
Application language type. This must reflect how the call list is set up. If PAPLALAN=‘PLI', the DRA
expects the call list to contain pointers to the PCB's pointers. For any other programming language,
the DRA expects direct pointers.
PAPLALAN does not have to match PAPLPLAN which schedules request returns. For example, if
PAPLPLAN=PLI, the PCBLIST in UPSTOR points to an indirect list. If specified, the CCTL can use this to
create a PCBLIST that application programs use. If the application programs are written in COBOL, the
CCTL may create a new PCBLIST without pointers as long as the new list actually points to PCBs in
UPSTOR. The application program IMS call lists can specify PAPLALAN=COBOL, and the DRA will not
expect pointers in the call list.
In addition to the required input parameters, the optional input parameters include:
Field
Contents
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
The output fields returned in the PAPL to the CCTL are:
SYNTERM request
You can use the SYNTERM request to make a single-phase sync point request to commit the UOR or to
release the PSB.
You must fill in the following input fields in the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN
PAPLSFNC
PAPLSTRM, sync point commit/terminate subfunction code
PAPLCTOK
DRA request token (output from INIT request)
PAPLCTK2
The thread request token number 2. This DRA token is the output from the SCHED request.
PAPLTTOK
The thread token set up by the CCTL
PAPLRTOK
A 16-byte UOR token (RTOKEN).
You can specify the following, optional input fields:
Field
Contents
PAPLSTAT
Address of an area where transaction statistical data is returned to the CCTL.
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
The output fields returned in the PAPL to the CCTL are:
Field
Contents
PAPLRETC
Code returned
PREP request
You can use the PREP request to make a phase 1 sync-point request to ask IMS DB if it is ready to commit
this UOR.
You must fill in the following input fields of the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN
PAPLSFNC
PAPLPREP, sync-point prepare subfunction code
PAPLCTOK
DRA request token (output from an INIT request)
PAPLCTK2
Thread Token number 2. This is the DRA request token which is output from a SCHED request.
PAPLTTOK
The thread token set up by the CCTL
PAPLRTOK
A 16-byte UOR token (RTOKEN).
PAPLSDPL
A one-bit flag. Set this bit to 1 to indicate to IMS that this thread is part of a distributed unit of work.
In addition to the required input parameters, the optional input parameters include:
Field
Contents
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
The following are output fields that are returned in the PAPL to the:
Field
Contents
PAPLRETC
Code returned
PAPLSTCD
Fast Path status code
If the value in the PAPLRETC field is decimal 35, the PAPLSTCD field contains a status code that
further describes the error.
COMTERM request
You can use the COMTERM request to make a phase 2 sync-point request to commit the UOR or to release
the PSB. You must issue a PREP request prior to issuing a COMTERM request.
You must fill in the following input fields in the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN
PAPLSFNC
PAPLCTRM, sync-point commit/terminate subfunction code
PAPLCTOK
DRA request token (output from an INIT request)
PAPLCTK2
Thread Token number 2. This is the DRA request token that is output from a SCHED request.
PAPLTTOK
The thread token set up by the CCTL
PAPLRTOK
A 16-byte UOR token (RTOKEN).
Specifying the following input field is optional:
Field
Contents
PAPLSTAT
Address of an area where transaction statistical data is returned to the CCTL
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
The output fields returned in the PAPL to the CCTL are:
Field
Contents
PAPLRETC
Code returned
PAPLSTAT
The address of the transaction statistical data area. This address must be specified on the input field.
Related concepts
“Sync points” on page 301
ABTTERM request
You can use the ABTTERM request to make a phase 2 sync-point request to abort processing and release
the PSB. The ABTTERM request does not require a preceding PREP request.
You must fill in the following input fields of the PAPL:
Field
Contents
PAPLFUNC
PAPLTFUN
PAPLSFNC
PAPLATRM, sync-point abort/terminate subfunction code
PAPLCTOK
DRA request token (output from an INIT request)
PAPLCTK2
Thread Token number 2. This is the DRA request token, which is output from a SCHED request.
PAPLTTOK
The thread token set up by the CCTL
PAPLRTOK
A 16-byte UOR token (RTOKEN).
Specifying the following input field is optional:
Field
Contents
PAPLSTAT
Address of an area where transaction statistical data is returned to the CCTL.
PAPLTECB
To use the default Suspend exit routine and Resume exit routine, each DRA request must have the
field PAPLTECB set with the address of a CCTL ECB to be used if the thread is waited or posted. If your
CCTL does not provide Suspend and Resume exit routines, the DRA default exit routines will be used.
The output fields returned in the PAPL to the CCTL are:
Field
Contents
PAPLRETC
Code returned
PAPLSTAT
The address of the transaction statistical data area. This address must be specified on the input field.
Related concepts
“Sync points” on page 301
Sync point processing finalizes changes to resources. Sync point requests specify actions to take place for
the resource changed (for example, commit or abort). A sync point is when IMS DB actually processes the
request.
TERMTHRD request
You can use the TERMTHRD request to terminate the DRA thread.
You must fill in the following input fields of the PAPL:
DRA statistics
DRA statistics are contained in the returned PAPL as a result of a DRA TERM request, or in the Control exit
routine's PAPL when it is called for DRA termination. This routine is called when the DRA fails or when a
previous Control exit routine invocation resulted in return code 4.
The DRA statistics in the returned PAPL are:
1. The number of times the MAXTHRD value was reached.
2. The number of times the MINTHRD value was reached (only includes the times the value is reached
when the thread TCB number is decreasing.)
3. The largest number of thread TCBs ever reached during this DRA session. (This is the number of TCBs,
not the number of DRA threads, so it is at least the minimum thread value.)
4. The time (in seconds) during which the DRA thread TCB count was at the MAXTHRD value.
You can find the field names for the previous statistics in the PAPL extensions for the TERM PAPL and
control exit routine PAPL.
Before attempting to evaluate the statistics DRA performance, remember:
• If the DRA is using the maximum number of threads (MAXTHRD), when the DRA receives any new
SCHED requests it will make these requests wait until a thread is available.
• As active threads become available (for example, as a result of TERMTHRD call), some of the available
threads might be collapsed.
These factors can adversely affect performance, but both improve IMS DB resource availability because
fewer DRA threads require fewer IMS DB resources. The IMS DB resources (PSTs) are then available for
other BMPs or other CCTLs to use.
Statistics 1, 2, and 4 can serve as a measurement of the two factors, and will help you decide how to
balance performance and resource usage. For the sake of this discussion, these statistics are presented
solely from a performance point of view (for example, assume only 1 CCTL connected to a IMS DB).
DRA tracing
Tracing (logging) of activity does not occur in the DRA, but there is tracing in IMS DB of DL/I and Fast Path
activity. The setup and invocation of DL/I tracing for IMS DB is the same as for IMS. The output trace
records for CCTL threads contain the recovery token.
Fast Path tracing in IMS DB is different from IMS. Fast Path tracing in IMS DB is activated when a SCHED
request to the DRA has the PAPLFTRD equal to ON (Fast Path trace desired for this UOR).
When this UOR completes, a trace output file is closed and sent to SYSOUT Class A.
If a thread request fails during Fast Path processing, the DRA might return the PAPL with the PAPLFTRR
field equal to ON. This recommends to the CCTL that it request the PAPLFTRD field be equal to ON (Fast
Path trace desired) in the SCHED PAPL if this failing transaction is run again by the CCTL.
Related reference
“SCHED request” on page 323
You can use the SCHED request to schedule a PSB in IMS DB. The first SCHED request made by a CCTL
thread requires a new DRA thread. Existing DRA thread TCBs are used if they are not currently processing
a DRA thread.
Problem diagnosis
Diagnostic information is provided by the DRA in the form of an SDUMP, or a SNAP data set output. For
X'80', the SDUMP is attempted first. If it fails, SNAP is done.
Failed DRA requests have a nonzero value in the PAPLRETC field of the PAPL returned to the CCTL. The
format of PAPLRETC is:
HHSSSUUU
SDUMP
SDUMP output contains:
• The IMS control region.
• DLISAS address space.
• Key 0 and key 7 CSA.
• Selected parts of DRA private storage, including the address space control block (ASCB), task control
block (TCB), and request blocks (RBs).
You can format the IMS control blocks by using the Offline Dump Formatter (ODF).
The ODF will not format DRA storage. You can use IPCS to format the z/OS blocks in CCTL private storage.
DRA SDUMPS have their own SDUMP options. As a result, any CHNGDUMP specifications cannot cause
sections of DRA SDUMPs to be omitted. If these specifications are not in the DRA list of options, they can
have an additive effect on DRA SDUMPS.
SNAP
The SNAP dump data sets are dynamically allocated whenever a SNAP dump is needed. A parameter in
the DRA Startup Table defines the SYSOUT class.
The SNAP output contains:
• Selected parts of DRA private storage, including the ASCB, TCB, and RBs.
• IMS DB control blocks.
Related reference
Offline Dump Formatter utility (DFSOFMD0) (System Utilities)
DSPAPI FUNC=DSECT
API application
Parameters that are specified on the DSPAPI macro are either literals, addresses, or values. You can pass
an address or a parameter value by using a register, a symbol, or a literal. You can specify literal values in
mixed case.
Use a register
To use a register, you must load the address of a symbol or value into one of the general purpose
registers, and then use that register (enclosed in parentheses) for the parameter in the DSPAPI
request. Use only registers in the range 2-12. Register notation does not work with MF=L because this
form does not produce executable code.
The following example shows how to pass an address using a register:
LA 5,OUTPUTAD
DSPAPI FUNC=QUERY,OUTPUT=(5),...
.
.
.
OUTPUTAD DS A
ST 5,DSPAPI_Plist_Output
DSPAPI FUNC=QUERY,OUTPUT=OUTPUTAD,..
.
.
.
OUTPUTAD DS A
LA 0,OUTPUTAD
ST 0,DSPAPI_Plist_Output
Use a literal
You can use literals for certain parameter values, such as time stamps. To use a literal, pass the literal
as a hexadecimal string for the parameter in the DSPAPI request. Literals can also be mixed-case.
72
DSPAPI FUNC=QUERY,TYPE=LOG, C
STARTIME==XL12'1980030F191212009999028D'
LA 0,=XL12'198030F191212009999028D'
ST 0,DSPAPI_Plist_Startime
Unless specifically noted, name fields are 8 characters long, left justified, and padded with blanks.
For STARTDBRC, SSID is the optionally specified subsystem ID. For STOPDBRC, SSID is the subsystem ID
that is specified on the STARTDBRC request.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ==============
===============================
0 (0) STRUCTURE 32 DSPAPQHD
0 (0) CHARACTER 8 APQHD_EYECATCHER Output area eyecatcher
8 (8) SIGNED 4 APQHD_LENGTH Block length, hdr + data
12 (C) SIGNED 2 APQHD_BLKTYPE Block type
14 (E) UNSIGNED 2 * Reserved
15 (F) UNSIGNED 1 APQHD_SUBPOOL Subpool ID
16 (10) ADDRESS 4 APQHD_DEPPTR Ptr to block dependent
20 (14) ADDRESS 4 APQHD_NEXTPTR Ptr to next block of the same type
24 (18) UNSIGNED 4 APQHD_BLKOFFSET Offset to block data
28 (1C) SIGNED 4 APQHD_VERSION Version of output block
yyyydddFhhmmssthmijufqqs
Where:
yyyy
year (0000 to 9999)
SSID=ssid hlq.STDBRC.ssid
For STARTDBRC, ssid is the optionally
specified subsystem ID.
For STOPDBRC, ssid is the subsystem
ID specified on the STARTDBRC
request.
ACCESS=EX SUBPOOL=0
OUTPUT= output
ACCESS=RD SUBPOOL= number
ACCESS=RO
UTILITY=NONE
UTILITY=RECOV
UTILITY=REORG
MF=S
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
VERSION= number
Related reference
“APAUB_RsnCode for AUTH output block” on page 361
You can use this table to search for APAUB_RsnCode values for AUTH request return and reason codes.
Each code is accompanied by an explanation of the code.
DBRC request return codes (Messages and Codes)
Table 88. APAUB_RsnCode values for AUTH request return and reason codes
APAUB_RsnCode Meaning
X'00000000' Request completed successfully.
X'C1000100' Security error. SAF or the DBRC command authorization exit (DSPDCAX0) has
determined that the user is not authorized to perform the request for this
database or area.
================================================================================
DSPAPAUB
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===========================
0 (0) STRUCTURE 8 DSPAPAUB AUTH/UNAUTH block
0 (0) UNSIGNED 4 APAUB_OFFSET Offset to first element
4 (4) SIGNED 4 APAUB_ELCOUNT Number of elements in list
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===========================
0 (0) STRUCTURE 24 APAUB_ELEMENT
0 (0) UNSIGNED 4 APAUB_OFFNEXT Offset to next element
4 (4) SIGNED 4 APAUB_RSNCODE Reason code
8 (8) CHARACTER 8 APAUB_DBNAME Database or DEDB name
16 (10) CHARACTER 8 APAUB_AREANAME
Area name or blanks
CONSTANTS
Related reference
“Parameters for the AUTH request” on page 358
You can use this information to understand the parameters for the DBRC AUTH request. Each parameter
is explained as it relates to the AUTH request syntax diagram.
SUPPRESS=NO
TOKEN= address OUTPUT= output
SUPPRESS=YES
BUFFERLENGTH=4096 SUBPOOL=0
MF=S VERSION=2.0
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
DSPAPCMD
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===========================
0 (0) STRUCTURE 24 DSPAPCMD
0 (0) SIGNED 4 APCMD_RETCODE DBRC command return code
4 (4) SIGNED 4 * Reserved
8 (8) SIGNED 4 APCMD_CMDLEN Length of command entered
12 (C) SIGNED 4 APCMD_BUFFLEN Length of command output
16 (10) UNSIGNED 4 APCMD_CMDOFF Offset to command buffer
20 (14) UNSIGNED 4 APCMD_BUFFOFF Offset to command output
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======= ======== ========= ======== ============== ============================
0 (0) STRUCTURE * APCMD_COMMAND Command as entered
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===================
0 (0) STRUCTURE 5 APCMD_OUTPUT_LINES
0 (0) SIGNED 2 APCMD_OUTPUT_LINELEN Length of line
2 (2) SIGNED 2 * Reserved
4 (4) CHAR VARY 1 APCMD_OUTPUT_DATA Output data
CONSTANTS
Related reference
“DBDS query request (TYPE=DBDS)” on page 398
You can use the DSPAPI FUNC=QUERY TYPE=DBDS request to retrieve information from the RECON data
set for one or more DBDSs in a non-HALDB database, a HALDB partition, a DBDS group, or a CA group. You
can also request recovery related information for the data set, including allocation, image copy, recovery,
and reorganization information.
SSID=* MF=S
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
OUTPUT= output
SUBPOOL= number RETCODE= returncode
VERSION=2.0
Figure 13. Format of the output from QUERY TYPE=BACKOUT output request
DSECT of DSPAPQBO
The following example is a sample DSECT describes in detail the fields of the storage blocks and their
interrelationship.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===========================
============================================================================
The following structure maps the unit of recovery entries.
There is one such entry for each unit of recovery (that is, there
are apqbo_UORcount entries). Each unit of recovery entry
contains the offset within the backout block to the previous
and following entries. Field apqbo_PrevUOR is the offset of
the previous entry and apqbo_NextUOR is the offset of the
following entry. For the first unit of recovery (UOR) entry,
apqbo_PrevUOR will be zero. Similarly, apqbo_NextUOR will be
zero for the last entry. Addressability to the first UOR entry
is given by:
rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_FirstUOR)
Addressability to the last UOR entry is given by:
rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_LastUOR)
Addressability to the next UOR entry, if one exists (that is:
apqbo_NextUOR not equal to 0), is given by:
rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_NextUOR)
Similarly, to address the previous entry (when apqbo_PrevUOR
not equal to 0):
rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_PrevUOR)
Once addressability has been established to a UOR entry,
addressability to the ith database for this UOR is given by:
rfy apqbo_DBent
based(addr(apqbo_UORentry) + apqbo_DBoffset
+ (i-1) apqbo_DBLength)
============================================================================
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== =============================
0 (0) STRUCTURE 64 APQBO_UORENTRY Unit of Recovery entry
0 (0) CHARACTER 64 APQBO_PREFIX Prefix section
0 (0) UNSIGNED 4 APQBO_NEXTUOR Offset of next UOR entry
4 (4) UNSIGNED 4 APQBO_PREVUOR Offset of previous UOR entry
8 (8) UNSIGNED 4 APQBO_DBOFFSET Offset to DB entries
12 (C) CHARACTER 12 APQBO_UORTIME Time stamp for this UOR
24 (18) CHARACTER 8 APQBO_UORPSB PSB name
32 (20) BIT(16) 2 APQBO_UORFLAGS
1... .... APQBO_DEFBO Deferred backout - dynamic
backout failure
.1.. .... APQBO_INFLT Inflight UOR
..1. .... APQBO_INDOU Indoubt UOR
...1 .... APQBO_BMP BMP UOR
.... 1... APQBO_BOCAN BBO identified candidate
.... .1.. APQBO_COLDN Cold start ended for UOR
.... ..1. APQBO_BBOK Backed out OK by BBO
.... ...1 APQBO_CMD UOR modified by command
33 (21) 1... .... APQBO_BATCH Batch IMS UOR
34 (22) CHARACTER 6 * Reserved
40 (28) CHARACTER 16 APQBO_RTOKN Recovery token
40 (28) CHARACTER 8 APQBO_RTSSID SSID for this token
48 (30) CHARACTER 8 APQBO_UORID Unique UOR ID
56 (38) SIGNED 4 APQBO_DBCOUNT Number of DBs for this UOR
60 (3C) UNSIGNED 2 APQBO_DBLENGTH Length of each DB entry
62 (3E) CHARACTER 2 * Reserved
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 16 APQBO_DBENT Database entry
0 (0) CHARACTER 8 APQBO_DBNAME Database name
8 (8) BIT(8) 1 APQBO_DBFLAGS Flags
1... .... APQBO_DBOUT UOR backed out for this DB
.1.. .... APQBO_DBDEF Dyn backout failure this DB
9 (9) CHARACTER 7 * Reserved
CONSTANTS
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
You can use the DBRC Query request (DSPAPI FUNC=QUERY) along with the TYPE parameter to retrieve
various types of information from the RECON data set.
DDN=NULL LIST=NONE
DDN= * IC
RECOV
REORG
LIST=ALL
LOC=SPEC
DBNAME= dbname
LOC=NEXT
DBNAME= dbname*
DBLIST= namelist
LOC=FIRST
MF=S
OUTPUT= output
MF=(S, list )
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
VERSION=2.0
DSECT of DSPAPQDB
The following example describes the fields contained in the DSPAPQDB block shown in Figure 14 on page
384.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 96 DSPAPQDB
0 (0) CHARACTER 8 APQDB_DBNAME Database name
8 (8) UNSIGNED 4 APQDB_SSLIST Offset to SS list (DSPAPQSL), zero
is no SS auth'd
12 (C) SIGNED 4 *(3) Reserved
24 (18) UNSIGNED 2 APQDB_IRCNT IC receive needed counter
26 (1A) BIT(8) 1 APQDB_AUFLAG Authorization flags
1... .... APQDB_BKFLG Backout needed flag
.1.. .... APQDB_PAFLG Prohibit authorization
..1. .... APQDB_RDFLG Read only SS auth
...1 .... APQDB_NONRV nonrecoverable
.... 1... APQDB_DBREORGI Reorg intent
.... .1.. APQDB_DBQUI Quiesce in progress
.... ..1. APQDB_DBQUIH Quiesce held
27 (1B) CHARACTER 5 APQDB_IRLMAU IRLMID of auth SS
32 (20) SIGNED 2 APQDB_RCVCTR Recovery needed count
34 (22) SIGNED 2 APQDB_ICCTR IC needed count
36 (24) SIGNED 2 APQDB_ICRECCTR IC recommended counter
38 (26) UNSIGNED 1 APQDB_SHRLVL Share level of DB
39 (27) UNSIGNED 1 APQDB_HELDAU Held auth state
1... .... APQDB_HAUBIT High order bit flag
40 (28) UNSIGNED 2 APQDB_DMBNUM Global DMB number
42 (2A) SIGNED 2 APQDB_SSNUM # of SS auth DB
44 (2C) UNSIGNED 2 APQDB_SSENTLEN Length of each SS entry
46 (2E) UNSIGNED 1 APQDB_CACCSS Access state for chg auth
47 (2F) UNSIGNED 1 APQDB_CANCDD Encode state for chg auth
48 (30) UNSIGNED 1 APQDB_CAHELD Held state for chg auth
49 (31) CHARACTER 3 * Reserved
52 (34) UNSIGNED 2 APQDB_EQECNT Total EQE count
54 (36) BIT(16) 2 APQDB_RSRFLG Flags
1... .... APQDB_RCVTRK Recovery level tracking
.1.. .... APQDB_TRKSPN Tracking is suspended
..1. .... APQDB_PURBIT Suspended by time
...1 .... APQDB_ICNDIS IC needed disabled option
56 (38) CHARACTER 8 APQDB_GSGNAME Global Service Group name
64 (40) UNSIGNED 4 APQDB_USID Last alloc USID
68 (44) UNSIGNED 4 APQDB_AUSID Last authorized USID
72 (48) UNSIGNED 4 APQDB_RUSID Last received USID
76 (4C) UNSIGNED 4 APQDB_HUSID Hardened by tracker USID
80 (50) UNSIGNED 4 APQDB_RNUSID Receive needed USID
84 (54) CHARACTER 8 APQDB_RECOVGRP Recovery Group name
92 (5C) CHARACTER 4 * Reserved
CONSTANTS
DSECT of DSPAPQSL
The following example describes the fields contained in the SS data (DSPAPQSL).
DSPAPQSL
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 16 DSPAPQSL
0 (0) CHARACTER 16 APQSL_SSINFO Subsystem list entry
0 (0) CHARACTER 8 APQSL_SSNAME Subsystem ID
8 (8) UNSIGNED 1 APQSL_ACCESS Access intent
9 (9) UNSIGNED 1 APQSL_NCDDST Encoded state
10 (A) BIT(8) 1 APQSL_SSFLGS Flags
1... .... APQSL_SSROLE 0 - Active SS, 1 - Tracking SS
.1.. .... APQSL_SSXRFC 1 - XRF Capable
..1. .... APQSL_SSBAT 1 - Batch SS
...1 .... APQSL_SSIC 1 - IC SS
11 (B) BIT(8) 1 * Reserved
12 (C) CHARACTER 4 APQSL_BKINFO Backout information
12 (C) SIGNED 2 APQSL_BKCTR Backout needed count
14 (E) SIGNED 2 APQSL_BKNUM Backout done count
CONSTANTS
The area information is returned only if DDN is specified. Recovery information (RCVINFO) is only returned
if the LIST parameter is specified.
DSECT of DSPAPQFD
The following example describes the fields contained in the DSPAPQFD and DSPAPQAR blocks shown in
Figure 15 on page 386.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ============================
0 (0) STRUCTURE 38 DSPAPQFD
0 (0) CHARACTER 8 APQFD_DBNAME Database name
8 (8) SIGNED 4 *(4) Reserved
24 (18) SIGNED 2 APQFD_RCVCTR Recovery Needed Counter
26 (1A) SIGNED 2 APQFD_ICCTR IC Needed Counter
28 (1C) SIGNED 2 APQFD_ICRECCTR IC Recommended Counter
30 (1E) UNSIGNED 2 APQFD_DMBNUM Global DMB number
32 (20) UNSIGNED 2 APQFD_EQECNT Total EEQE count
34 (22) SIGNED 2 APQFD_AUTHDAREAS Number of Areas authorized
36 (24) UNSIGNED 1 APQFD_SHRLVL Share Level
37 (25) BIT(8) 1 APQFD_FLAGS Flags
1... .... APQFD_PAFLG Prohibit authorization
.1.. .... APQFD_NONRV nonrecoverable
..1. .... APQFD_ICNDIS IC needed disabled option
...1 .... APQFD_USRRV user-recoverable (VERSION=1.01)
.... 1... APQFD_FULLSEG_DEFAULT Default full segment logging
setting for areas (VERSION=4.0)
38 (26) UNSIGNED 2 APQFD_ALTER# FP DEDB alter status
(VERSION=5.0)
40 (28) CHARACTER 8 APQFD_RANDOMIZER Randomizer name
(VERSION=5.01)
CONSTANTS
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============= =============================
0 (0) STRUCTURE 196 DSPAPQAR
0 (0) CHARACTER 8 APQAR_DBNAME Database name
8 (8) CHARACTER 8 APQAR_AREANAME Area name
16 (10) UNSIGNED 4 APQAR_EEQELIST Offset to EEQE list
(DSPAPQEL), zero if no EEQEs
20 (14) UNSIGNED 4 APQAR_SSLIST Offset to SS list (DSPAPQSL),
zero if no SS auth'd
24 (18) UNSIGNED 4 APQAR_ADSLIST Offset to ADS list, zero if
none registered
28 (1C) SIGNED 4 * Reserved
32 (20) UNSIGNED 1 APQAR_SHRLVL Share level of DB
33 (21) UNSIGNED 1 APQAR_HELDAU Held auth state
1... .... APQAR_HAUBIT High order bit flag
34 (22) UNSIGNED 2 APQAR_DMBNUM Global DMB number
36 (24) SIGNED 2 APQAR_SSNUM # subsytems authd to Area
38 (26) UNSIGNED 2 APQAR_SSENTLEN Length of each SS entry
40 (28) UNSIGNED 1 APQAR_CACCSS Access state for CHG AUTH
41 (29) UNSIGNED 1 APQAR_CANCDD Encoded state for CHG AUTH
42 (2A) UNSIGNED 1 APQAR_CAHELD Held state for CHG AUTH
43 (2B) CHARACTER 5 APQAR_IRLMAU IRLMID of auth SS
48 (30) BIT(16) 2 APQAR_FLAGS
1... .... APQAR_RECYC REUSE image copies
.1.. .... APQAR_ICREC Image Copy Recommended
..1. .... APQAR_IC Image Copy Needed
...1 .... APQAR_ICNDIS IC needed disabled option 1 =
IC Needed Disabled
.... 1... APQAR_RECOV Recovery needed
.... .1.. APQAR_INPRO HSSP CIC in progress
.... ..1. APQAR_GT240 M/C FP GT240 area DEDB
.... ...1 APQAR_VSO VSO flag
49 (31) 1... .... APQAR_PREOP PREOPEN flag
.1.. .... APQAR_PRELD PRELOAD flag
..1. .... APQAR_LKASD VSO CF buffer lookaside
...1 .... APQAR_MAS VSO area resides in multi-area
CF structure
.... 1... APQAR_RRGAL REORG since last ALLOC, only
set if RSR-covered
.... .1.. APQAR_TSRAL TS recov since last ALLOC, only
set if RSR-covered
.... ..1. APQAR_FULLSEG Full segment logging in effect
(VERSION=4.0)
50 (32) BIT(8) 1 APQAR_RSRFLAGS Remote Site Recovery flags
1... .... APQAR_RCVTRK Recovery Level Tracking
.1.. .... APQAR_TRKSPN Tracking was suspended
..1. .... APQAR_PURBIT Suspended by time
...1 .... APQAR_RCVRQ Receive Required
51 (33) BIT(8) 1 APQAR_AUFLAG Authorization flags
1... .... APQAR_PAFLG Prohibit authorization
.1.. .... APQAR_NONRV nonrecoverable
..1. .... APQAR_USSRV User-recoverable (VERSION=1.01)
...1 .... APQAR_DBQUI Quiesce in progress
.... 1... APQAR_DBQUIH Quiesce held
.... .1.. APQAR_DBQUICMD HALDB/DEDB on command
.... ..1. APQAR SHADOW Shadow Area (VERSION=6.0)
52 (34) BIT(8) 1 APQAR_DSORG Data set organization
1... .... APQAR_VSAM 1 = VSAM, 0 = NON-VSAM
.1.. .... APQAR_INDEX 0 = Non-indexed (OSAM or ESDS),
1 = Indexed(ISAM or KSDS)
..11 1111 * Reserved - zeroes
The following example describes the fields contained in the DSPAPQFD and DSPAPQAR blocks shown in
Figure 15 on page 386.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============= ============================
0 (0) STRUCTURE 56 APQAR_ADSLT Area Data Set List
0 (0) CHARACTER 8 APQAR_ADSDD DDNAME of the ADS
8 (8) CHARACTER 44 APQAR_ADSDN DSN of the ADS
52 (34) BIT(8) 1 APQAR_ADSBT
1... .... APQAR_ADSAV Avail status of ADS
.1.. .... APQAR_ADSFM Format status of create util
..1. .... APQAR_ADSCP Copy status of create util
53 (35) CHARACTER 3 * Reserved
CONSTANTS
DSECT of DSPAPQEL
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 13 DSPAPQEL
0 (0) CHARACTER 13 APQEL_EEQEENTRY EEQE descriptor entry
0 (0) BIT(8) 1 APQEL_EQEFG EEQE flags
1... .... APQEL_ERTL Toleration error
.1.. .... APQEL_ERRD Read error
..1. .... APQEL_ERWT Write error
...1 .... APQEL_ERUS DBRC user modified
.... 1... APQEL_ERPM DBRC permanent error
.... .1.. APQEL_INDT Indoubt EEQE
.... ..1. APQEL_CIIND Index CI indicator
1 (1) CHARACTER 4 APQEL_EQE EEQE
5 (5) CHARACTER 8 APQEL_SSID SSID which owns the EEQE
Figure 16. Format of QUERY TYPE=DB (HALDB master and partitions) output
DSECT of DSPAPQHB
The following two examples describe the fields contained in the DSPAPQHB and DSPAPQHP blocks shown
in Figure 16 on page 389. Refer to Figure 17 on page 392 for an illustration of the fields of the DBDS
output.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 60 DSPAPQHB
0 (0) CHARACTER 8 APQHB_DBNAME HALDB name
8 (8) SIGNED 4 *(4) Reserved
24 (18) BIT(8) 1 APQHB_FLAGS Flags
1... .... APQHB_NONRV nonrecoverable
.1.. .... APQHB_ICNDIS IC needed disabled
..1. .... APQHB_OLRCAP HALDB is OLR capable
...1 .... APQHB_OSAM8G HALDB OSAM is 8GB addressability
25 (19) BIT(8) 1 APQHB_ORG DB organization
1... .... APQHB_PSINDEX PSINDEX DB
.1.. .... APQHB_PHIDAM PHIDAM DB
..1. .... APQHB_PHDAM PHDAM DB
...1 .... APQHB_OSAM OSAM DB
.... 1111 * Reserved
26 (1A) UNSIGNED 1 APQHB_SHRLVL Share level
27 (1B) UNSIGNED 1 APQHB_DSGCNT # DS Group members
28 (1C) UNSIGNED 2 APQHB_DMBNUM Global DMB number
30 (1E) UNSIGNED 2 APQHB_PARTID Current Partition ID
32 (20) SIGNED 2 APQHB_PART# Number of parts in HALDB
34 (22) UNSIGNED 2 APQHB_VERSION# Version number
36 (24) CHARACTER 8 APQHB_PSNAME Name of Part Sel Routine
44 (2C) CHARACTER 8 APQHB_GSGNAME GSG name
52 (34) CHARACTER 8 APQHB_RECOVGRP Recovery Group name
60 (3C) UNSIGNED 2 APQHB_ALTER# The total number of partitions
CONSTANTS
DSECT of DSPAPQHP
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 192 DSPAPQHP
0 (0) CHARACTER 8 APQHP_HALDBNAME HALDB name
8 (8) CHARACTER 8 APQHP_PARTNAME Partition name
16 (10) UNSIGNED 4 APQHP_SSLIST Offset to SS list (DSPAPQSL),
zero if no SS auth'd
20 (14) UNSIGNED 4 APQHP_KEYSTRING Offset to KEYSTRING
(apqhp_PString), zero is no
key/string
24 (18) UNSIGNED 4 APQHP_DSGINFOOFFSET Offset to data set group
information
32 (20) CHARACTER 44 *
32 (20) CHARACTER 37 APQHP_DSNBASE Base Partition DSN
76 (4C) CHARACTER 18 APQHP_HDAM PHDAM fields
76 (4C) CHARACTER 8 APQHP_RMNAME Randomizing module name
84 (54) SIGNED 4 APQHP_RBN Max relative block number
88 (58) SIGNED 4 APQHP_BYTES Max # of bytes
92 (5C) UNSIGNED 2 APQHP_ANCHR # of root anchor points
94 (5E) UNSIGNED 1 APQHP_FBFF Free block frequency factor
95 (5F) UNSIGNED 1 APQHP_FSPF Free space percentage factor
96 (60) UNSIGNED 2 APQHP_PARTID Partition ID
98 (62) SIGNED 2 APQHP_PSTLN Length of Part Key/String,
apqhp_PString
100 (64) UNSIGNED 2 APQHP_DSGINFOLEN
Length of each
aphp_DSGinfo entry
102 (66) UNSIGNED 1 APQHP_DSGCNT DSG count
103 (67) BIT(8) 1 APQHP_FLAGS Flags
1... .... APQHP_PINIT Partition must be initialized
.1.. .... APQHP_ORDBDS 0=A-J/1=M-V DBDS active
..1. .... APQHP_OLRON OLR active
...1 .... APQHP_DISAB Partition Disabled
.... 1... APQHP_MVDBDS 1 = M-V DBDS exist
.... .1.. APQHP_OLRCAP Partition is OLR capable
.... ..1. APQHP_OLRREL 1 = RELEASE OLR OWNER
.... ...1 APQHP_OSAM8G 8GB OSAM addressability
============================================================================
If the Partitioned DB uses high keys, that is, no Partition
Selection routine, the next two fields are used to sort the
partitions in key sequence.
============================================================================
104 (68) CHARACTER 8 APQHP_PREV DDN of previous partition
112 (70) CHARACTER 8 APQHP_NEXT DDN of next partition
120 (78) CHARACTER 8 APQHP_OLRIMS Owning IMS for OLR
128 (80) UNSIGNED 2 APQHP_IRCNT IC receive needed counter
130 (82) BIT(8) 1 APQHP_AUFLAG Authorization flags
1... .... APQHP_BKFLG Backout needed
.1.. .... APQHP_PAFLG Prohibit authorization
..1. .... APQHP_RDFLG Read only SS auth
...1 .... APQHP_NONRV nonrecoverable
.... 1... APQHP_DBREORGI Reorg intent
.... .1.. APQHP_DBQUI Quiesce in progress
.... ..1. APQHP_DBQUIH Quiesce held
.... ...1 APQAR_DBQUICMD HALDB/DEDB on command
131 (83) CHARACTER 5 APQHP_IRLMAU IRLM ID of auth SS
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 2 APQHP_DSGINFO Data set group information
0 (0) UNSIGNED 2 APQHP_BLKSZ DS block size, OSAM only
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE * APQHP_PSTRING Partition Key/String
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 2 APQHP_ALTERINFO DB Alter information
Structure present only when an
alter operation is in progress
0 (0) UNSIGNED 2 APQHP_ALTERSZ If alter changes block or CI
sizes, ALTERSZ contains the
OSAM block size or VSAM CI size
for the output data sets of an
alter operation
CONSTANTS
DSECT of DSPAPQDS
The following example and “DSECT of DSPAPQEL” on page 388 describe the fields contained in the
DSPAPQDS block shown in Figure 17 on page 392. Refer to Figure 18 on page 394 for an illustration of the
Recovery Information output fields.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 160 DSPAPQDS
0 (0) CHARACTER 8 APQDS_DBNAME Database name
8 (8) CHARACTER 8 APQDS_DDNAME DD name
16 (10) UNSIGNED 4 APQDS_EEQELIST Offset to EEQE list
(DSPAPQEL), zero if no EEQEs
20 (14) SIGNED 4 *(3) Reserved
32 (20) CHARACTER 44 APQDS_DSN Data set name
76 (4C) UNSIGNED 2 APQDS_RTPRD IC retention period
78 (4E) UNSIGNED 2 APQDS_DSID Data set ID number
80 (50) UNSIGNED 4 APQDS_DSSN Data set sequence number
84 (54) UNSIGNED 4 APQDS_RUSID Recovered-to USID(trkr)
88 (58) BIT(8) 1 APQDS_FLAGS BINARY ZEROS
1... .... APQDS_RECYC REUSE image copies
.1.. .... APQDS_ICREC Image Copy Recommended
..1. .... APQDS_RCVRQ Receive required
...1 .... APQDS_IC Image Copy Needed
.... 1... APQDS_RECOV Recovery Needed
.... .1.. APQDS_NONRV nonrecoverable
89 (59) BIT(8) 1 APQDS_DSORG Data set organization
1... .... APQDS_VSAM 1 = VSAM, 0 = NON-VSAM
.1.. .... APQDS_INDEX 0 = Non-indexed (OSAM or ESDS),
1 = Indexed(ISAM or KSDS)
..11 1111 * Reserved - zeroes
90 (5A) CHARACTER 1 APQDS_DBORG IMS DB organization
91 (5B) UNSIGNED 1 * Reserved
92 (5C) UNSIGNED 2 APQDS_GENMX Max number of ICs that may be
predefined for this area
94 (5E) UNSIGNED 2 APQDS_AVAILIC#
Number of available ICs for
this area
96 (60) UNSIGNED 2 APQDS_USEDIC# Number of ICs used
98 (62) SIGNED 2 APQDS_EEQECOUNT
EEQE count
100 (64) UNSIGNED 2 APQDS_EEQELENGTH
EEQE entry length
102 (66) BIT(8) 1 APQDS_FLG1 Flags
1... .... APQDS_RRGAL REORG since last ALLOC, only
set if RSR-covered
.1.. .... APQDS_TSRAL TS recov since last ALLOC, only
set if RSR-covered
CONSTANTS
Recovery information (RCVINFO) is returned only if the LIST parameter is specified. The pointers are zero
if either the specific information does not exist or it was not requested.
DSECT of DSPAPQRI
The following DSECT example describes the fields that are contained in the DSPAPQRI block as shown in
Figure 18 on page 394.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 32 DSPAPQRI
0 (0) CHARACTER 8 APQRI_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQRI_DDNAME DD name
CONSTANTS
DSECT of DSPAPQAL
The following DSECT example describes the fields that are contained in the DSPAPQAL block as shown in
Figure 18 on page 394.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 88 DSPAPQAL
0 (0) CHARACTER 8 APQAL_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQAL_DDNAME DD name or
8 (8) CHARACTER 8 APQAL_AREANAME Area name
16 (10) CHARACTER 12 APQAL_ALLOCTM Allocation time
28 (1C) CHARACTER 12 APQAL_DALTM Deallocation time
40 (28) CHARACTER 12 APQAL_STRTM Log start time
52 (34) UNSIGNED 4 APQAL_DSSN Field for DSSN value
56 (38) UNSIGNED 4 APQAL_USID Update set identifier
60 (3C) CHARACTER 8 APQAL_ALRID LRID of begin-upd rec
68 (44) CHARACTER 8 APQAL_DLRID LRID of end-upd rec
76 (4C) CHARACTER 8 APQAL_SLRID Last LRID applied if suspended
84 (54) BIT(8) 1 APQAL_FLAGS Flags
1... .... APQAL_TSUSP Tracking is suspended
.1.. .... APQAL_NAPPL No records applied
..1. .... APQAL_CICPT Fuzzy ic purge time
...1 .... APQAL_DBQUI Quiesce caused deallocation
85 (55) CHARACTER 3 * Reserved
CONSTANTS
DSECT of DSPAPQIC
The following DSECT example describes the fields that are contained in the DSPAPQIC block as shown in
Figure 18 on page 394.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== =============================
0 (0) STRUCTURE 64 DSPAPQIC
0 (0) CHARACTER 8 APQIC_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQIC_DDNAME DD name or
8 (8) CHARACTER 8 APQIC_AREANAME Area name
16 (10) CHARACTER 12 APQIC_STARTIME IC start time, packed decimal
28 (1C) CHARACTER 12 APQIC_STOPTIME IC stop time, packed decimal
40 (28) BIT(8) 1 APQIC_TYPE IMAGE COPY TYPE
1... .... APQIC_BATCH BATCH
.1.. .... APQIC_CIC CONCURRENT
..1. .... APQIC_USERIC USER IMAGE COPY
...1 .... APQIC_ONLINE ONLINE
.... 1... APQIC_SMSIC SMS IC w/ DB exclusive
.... .1.. APQIC_SMSCC SMS IC w/ DB shared
.... ..1. APQIC_SMSOF FastRep IC w/ DB exclusive
(VERSION=2.00)
.... ..1 APQIC_SMSON FastRep IC w/ DB shared
(VERSION=2.00)
41 (29) BIT(8) 1 APQIC_STATUS IC status flags
1... .... APQIC_AVAIL Available IC
.1.. .... APQIC_IC1 Image Copy 1 exists
..1. .... APQIC_IC2 Image Copy 2 exists
...1 .... APQIC_ERR1 Error on image 1
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ==========================
0 (0) STRUCTURE 64 APQIC_IC12 Data for image 1 or 2
0 (0) CHARACTER 44 APQIC_DSN12 Data set name
44 (2C) UNSIGNED 2 APQIC_FILE File sequence number
46 (2E) CHARACTER 8 APQIC_RUT12 Unit device type
54 (36) UNSIGNED 2 APQIC_VOLCT # of volumes predefined
56 (38) UNSIGNED 2 APQIC_VOLUS # of volumes used
58 (3A) UNSIGNED 2 APQIC_VOLLISTLEN Length of each volume list
entry in apqic_VOLS
60 (3C) UNSIGNED 4 APQIC_VOLLISTOFFSET Offset to volume list
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) CHARACTER 6 APQIC_VOLS List of VOLSERs
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 80 APQIC_USER Data for user IC
0 (0) CHARACTER 80 APQIC_UDATA User supplied data
CONSTANTS
DSECT of DSPAPQRV
The following DSECT example describes the fields that are contained in the DSPAPQRV block as shown in
Figure 18 on page 394.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ==============================
0 (0) STRUCTURE 49 DSPAPQRV
0 (0) CHARACTER 8 APQRV_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQRV_DDNAME DD name or
8 (8) CHARACTER 8 APQRV_AREANAME Area name
16 (10) CHARACTER 12 APQRV_RUNTIME The time at which the DBDS was
recovered
28 (1C) CHARACTER 12 APQRV_ENDTIME Partial recovery only, the time
to which the DBDS was restored
40 (28) UNSIGNED 4 APQRV_FUSID First undone USID
44 (2C) UNSIGNED 4 APQRV_LUSID Last undone USID
48 (30) BIT(8) 1 APQRV_FLAGS Flags
1... .... APQRV_PITR Point In Time Recovery
.1.. .... 1 APQRV_EXTCM External command (Version=4.0)
49 (31) UNSIGNED 1 * Reserved
50 (32) UNSIGNED 2 APQRV_OFFUD Offset to user data (Version=4.0)
52 (34) UNSIGNED 2 APQRV_LENUD Length of user data (Version=4.0)
54 (33) UNSIGNED 2 APQRV_PREORG Prior reorg number (Version=4.0)
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 80 APQRV_USER Data for user data
0 (0) CHARACTER 80 APQRV_UDATA User supplied data (VERSION=4.0)
CONSTANTS
DSECT of DSPAPQRR
The following DSECT example describes the fields that are contained in the DSPAPQRR block as shown in
Figure 18 on page 394.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 60 DSPAPQRR
0 (0) CHARACTER 8 APQRR_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQRR_DDNAME DD name or
8 (8) CHARACTER 8 APQRR_AREANAME Area name
16 (10) CHARACTER 12 APQRR_RUNTIME The time at which the DBDS was
reorganized
28 (1C) CHARACTER 12 APQRR_STOPTIME Stoptime of online reorg
40 (28) BIT(8) 1 APQRR_FLAGS
1... .... APQRR_ONL 1=ONLINE/0=OFFLINE reorg
.1.. .... APQRR_RECOV 1=May be used for recovery
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 80 APQRR_USER Data for user data
0 (0) CHARACTER 80 APQRR_UDATA User supplied data (VERSION=4.0)
CONSTANTS
This output block is returned when some of the databases specified in the DBLIST block could not be
found in the RECON. One block is returned for each database that could not be found. The database name
is included in the data area of this block.
DSECT of DSPAPQNF
The following example describes the fields contained in the DSPAPQNF block shown in Figure 19 on page
397.
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 8 DSPAPQNF
0 (0) CHARACTER 8 APQNF_DBNAME DB name
Related concepts
“DBRC API” on page 345
Your applications can obtain services from Database Recovery Control (DBRC) through the DBRC
application programming interface (API), a release-independent, assembler macro interface. The
application obtains these services by issuing DBRC API requests to DBRC, and DBRC returns the results to
an area in storage where the application can retrieve them.
Related reference
“DBRC query request (QUERY)” on page 371
You can use the DBRC Query request (DSPAPI FUNC=QUERY) along with the TYPE parameter to retrieve
various types of information from the RECON data set.
“DBDS query request (TYPE=DBDS)” on page 398
You can use the DSPAPI FUNC=QUERY TYPE=DBDS request to retrieve information from the RECON data
set for one or more DBDSs in a non-HALDB database, a HALDB partition, a DBDS group, or a CA group. You
can also request recovery related information for the data set, including allocation, image copy, recovery,
and reorganization information.
“HALDB partition query request (TYPE=PART)” on page 424
You can use the DSPAPI FUNC=QUERY TYPE=PART request to retrieve information for a particular HALDB
partition from the RECON data set. You can request data set information for a specific DBDS or all DBDSs
in the partition, and can optionally request recovery-related information for the data set, including
allocation, image copy, recovery, and reorganization information.
DDN=*
DBNAME= name
LOC=SPEC
DDN= ddn
LOC=NEXT
LOC=FIRST
GROUP= name
LIST=NONE
, RETCODE= returncode
LIST=( ALLOC )
IC
RECOV
REORG
LIST=(ALL
OUTPUT= output
RSNCODE= reasoncode
MF=S SUBPOOL=0
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
VERSION= number
The following block mappings relate to the TYPE=DB and TYPE=DBDS request:
• DSPAPQAR – Fast Path AREA block
• DSPAPQDS – DBDS block
• DSPAPQEL – EEQE List
• DSPAPQSL – Subsystem List (Fast Path only)
TYPE=DBGROUP
TYPE=RECOVGROUP
CAINFO=NO
TYPE=CAGROUP
CAINFO=YES
GROUP=* MF=S
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
OUTPUT= output
SUBPOOL= number RETCODE= returncode
VERSION=2.0
Table 93. Return and reason codes for TYPE=*GROUP query requests
Code type Return codes Reason codes Meaning
X'00000000' X'00000000' Request completed successfully.
Warning X'00000008' X'D8300001' No group records of the requested type exist in the
RECON data set.
Severe error X'0000000C' X'C9000001' Invalid TOKEN. The TOKEN block passed to the API is
not recognized as a TOKEN created by a
FUNC=STARTDBRC call.
X'0000000C' X'C900000A' The TCB address is not the same as the TCB address
under which the STARTDBRC service was issued.
DSECT of DSPAPQDG
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ============================
0 (0) STRUCTURE 32 DSPAPQDG
0 (0) CHARACTER 8 APQDG_GROUPNAME Group name
8 (8) UNSIGNED 4 APQDG_MEMBERINFO Offset to group member list
12 (C) UNSIGNED 2 APQDG_MEMBERLEN Length of group member entry
14 (E) SIGNED 2 APQDG_MEMBERCOUNT Number of group members
16 (10) SIGNED 4 *(3) Reserved
28 (1C) CHARACTER 4 * Reserved
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ============================
0 (0) STRUCTURE 16 APQDG_MEMBER List of group members
0 (0) CHARACTER 16 *
0 (0) CHARACTER 16 APQDG_DBDSG DBDS group
0 (0) CHARACTER 8 APQDG_DBDSG_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQDG_DBDSG_DDNAME DD name or
8 (8) CHARACTER 8 APQDG_DBDSG_AREANAME AREA name
0 (0) CHARACTER 16 APQDG_DBG DB group
0 (0) CHARACTER 8 *
0 (0) CHARACTER 8 APQDG_DBG_DBNAME Database name or
0 (0) CHARACTER 8 APQDG_DBG_AREANAME AREA name
8 (8) CHARACTER 8 * Not used
0 (0) CHARACTER 16 APQDG_RECOVG Recovery group
0 (0) CHARACTER 8 APQDG_RECOVG_DBNAME Database name
8 (8) CHARACTER 8 APQDG_RECOVG_AREANAME AREA name, null if
not Fast Path
CONSTANTS
The CA block is only returned when CAINFO=YES is specified and records of a change accumulation exist
in the RECON.
DSECT of DSPAPQCG
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 48 DSPAPQCG
0 (0) CHARACTER 8 APQCG_GROUPNAME Group name
8 (8) UNSIGNED 4 APQCG_MEMBERINFO Offset to group member list
12 (C) UNSIGNED 2 APQCG_MEMBERLEN Length of group member entry
14 (E) SIGNED 2 APQCG_MEMBERCOUNT Number of group members
16 (10) SIGNED 4 *(2) Reserved
24 (18) SIGNED 2 APQCG_GRPMAX Maximum number of CAs that may
be predefined for this CA group
26 (1A) SIGNED 2 APQCG_AVAILCA# Number of available CA data
sets for this group
28 (1C) SIGNED 2 APQCG_USEDCA# Number of used CA data sets
30 (1E) BIT(8) 1 APQCG_FLAGS Flags
1... .... APQCG_REUSE Reuse CA data sets
31 (1F) CHARACTER 1 * Reserved
32 (20) CHARACTER 8 APQCG_CAJCL GENJCL CAJCL member name
40 (28) CHARACTER 8 APQCG_DFJCL DEFLTJCL member name
48 (30) SIGNED 2 APQCG_RECOVPD Retention Period (Version=4.0)
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 16 APQCG_MEMBER List of group members
0 (0) CHARACTER 8 APQCG_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQCG_DDNAME DD name or
8 (8) CHARACTER 8 APQCG_AREANAME AREA name
CONSTANTS
DSECT of DSPAPQCA
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 96 DSPAPQCA
0 (0) CHARACTER 8 APQCA_GROUPNAME Group name
8 (8) UNSIGNED 4 APQCA_MEMBERINFO Offset to group member list
12 (C) UNSIGNED 2 APQCA_MEMBERLEN Length of each member entry
14 (E) SIGNED 2 APQCA_MEMBERCOUNT Number of group members
16 (10) UNSIGNED 4 APQCA_VOLINFO Offset to volume information
20 (14) SIGNED 4 * Reserved
24 (18) CHARACTER 44 APQCA_DSN Data set name
68 (44) CHARACTER 12 APQCA_STOPTIME Packed decimal date/time - for
predefined datasets, represents
record creation time.
Otherwise, it is the stoptime
of the last logtape volume used
as input to the Change
Accumulation utility that
produced this CA as output. If
the CA run included an
'incomplete log subset' it is
the start time of the first
truncated log volume.
80 (50) CHARACTER 12 APQCA_RUNTIME CA run time
92 (5C) BIT(8) 1 APQCA_FLAGS Flags
1... .... APQCA_ERROR Error on data set
.1.. .... APQCA_SUBSET Subset of logs used for CA
..1. .... APQCA_COMMAND SUBSET/COMP has been set or
reset with an external cmd
...1 .... APQCA_AVAIL Available CA indicator
93 (5D) CHARACTER 3 * Reserved
96 (60) UNSIGNED 4 APQCA_OFFUD Offset to user data (VERSION=4.0)
100 (64) UNSIGNED 2 APQCA_LENUD Length of user data (VERSION=4.0)
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 80 APQIC_USER Data for user IC
0 (0) CHARACTER 80 APQRV_UDATA User supplied data (VERSION=4.0)
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 56 APQCA_MEMBER List of group members
0 (0) CHARACTER 8 APQCA_MEM_DBNAME Database name
8 (8) CHARACTER 8 *
8 (8) CHARACTER 8 APQCA_MEM_DDNAME DD name or
8 (8) CHARACTER 8 APQCA_MEM_AREANAME AREA name
16 (10) UNSIGNED 4 APQCA_MEM_DSSN Data Set sequence number
20 (14) UNSIGNED 4 APQCA_MEM_USID USID of last change
accumulated
24 (18) CHARACTER 8 APQCA_MEM_LRID LRID of last change accumulated
32 (20) CHARACTER 12 APQCA_MEM_PURGETIME Purge time
44 (2C) CHARACTER 6 APQCA_MEM_LSN Lock sequence number
50 (32) BIT(8) 1 APQCA_MEM_FLAGS Member flags
1... .... APQCA_MEM_NOCHG No changes accumulated
.1.. .... APQCA_MEM_INDOUBT Indoubt EEQEs accumulated
..1. .... APQCA_MEM_INCOMP Incomplete CA
51 (33) CHARACTER 5 * Reserved
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
LOC=SPEC
STARTIME= time
LOC=PREV
FROMTIME= time
TOTIME= time SSID= subsystem_ID
TOTIME= time
SSID= subsystem_ID
OUTPUT= output
RETCODE= returncode RSNCODE= reasoncode
MF=S SUBPOOL=0
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
VERSION= number
DSECT of DSPAPQLI
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 48 DSPAPQLI
0 (0) CHARACTER 8 APQLI_SSID Log SSID
8 (8) CHARACTER 12 APQLI_STARTTIME Log start time
20 (14) ADDRESS 4 APQLI_PRILOGPTR ptr to PRILOG block
24 (18) ADDRESS 4 APQLI_LOGALLPTR ptr to LOGALL block
28 (1C) ADDRESS 4 APQLI_SECLOGPTR ptr to SECLOG block
32 (20) ADDRESS 4 APQLI_PRISLDSPTR ptr to PRISLDS block
36 (24) ADDRESS 4 APQLI_SECSLDSPTR ptr to SECSLDS block
40 (28) ADDRESS 4 APQLI_PRITSLDSPTR ptr to PRITSLDS block
44 (2C) ADDRESS 4 APQLI_SECTSLDSPTR ptr to SECTSLDS block
CONSTANTS
Figure 23. Format for QUERY TYPE=LOG output for PRILOG, SECLOG, PRISLDS, and SECSLDS
DSECT of DSPAPQLG
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 96 DSPAPQLG
0 (0) UNSIGNED 4 APQLG_FIRSTLOGDS Offset to first log DS entry
4 (4) UNSIGNED 4 APQLG_LASTLOGDS Offset to last log DS entry
8 (8) SIGNED 4 *(2) Reserved
16 (10) CHARACTER 8 APQLG_SSID Subsystem ID
24 (18) CHARACTER 12 APQLG_STARTTIME Log start time
36 (24) CHARACTER 12 APQLG_ENDTIME Log end time
48 (30) SIGNED 4 APQLG_DSNCOUNT Number of data sets
52 (34) UNSIGNED 1 APQLG_RELVL Log Release Level
1... .... APQLG_ONLINE Online log - PRILOG and SECLOG only
.1.. .... APQLG_LSTAR Last OLDS has been archived - PRILOG and
PRITSLDS only
..1. .... APQLG_LSTNA Last OLDS has not been archived - PRILOG and
PRITSLDS only
...1 .... APQLG_GAP There is a gap in this log
.... 1... APQLG_PRGAP There is a gap in a prev log
53 (34) UNSIGNED 1 APQLG_FLAGS1 Flags
1... .... APQLG_ONLINE Online log - PRILOG and SECLOG only
.1.. .... APQLG_LSTAR Last OLDS has been archived – PRILOG
and PRITSLDS only
..1. .... APQLG_LSTNA Last OLDS has not been archived –
PRILOG and PRITSLDS only
...1 .... APQLG_GAP There is a gap in this log
.... 1... APQLG_PRGAP There is a gap in a prev log
.... .1.. APQLG_BPE BPE-based subsystem (VERSION=4.0)
54 (36) BIT(8) 1 APQLG_FLAGS2 Flags
1... .... APQLG_TRKNG Tracking log data set
.1.. .... APQLG_NTERM IMS subsystem has terminated normally
..1. .... APQLG_BKLOG Batch backout log
55 (37) CHARACTER 1 * Reserved
56 (38) CHARACTER 8 APQLG_FIRSTLRID Id of first log record
64 (40) UNSIGNED 4 APQLG_PTOKEN PRILOG token
68 (44) CHARACTER 8 APQLG_GSGNAME GSG name
76 (4C) CHARACTER 12 APQLG_CHKPT0 Checkpoint 0 time
88 (58) CHARACTER 8 * Reserved OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ==============================
0 (0) STRUCTURE 120 APQLG_DS_ENTRY Data set entry
0 (0) UNSIGNED 4 APQLG_DS_NEXT Offset to next log DS entry
4 (4) UNSIGNED 4 APQLG_DS_PREV Offset to prev log DS entry
8 (8) UNSIGNED 4 APQLG_DS_VOLINFO Offset to DS volume info
12 (C) CHARACTER 44 APQLG_DS_DSNAME Data set name
56 (38) CHARACTER 12 APQLG_DS_STARTTIME DS start time
68 (44) CHARACTER 12 APQLG_DS_ENDTIME DS end time
80 (50) BIT(8) 1 APQLG_DS_FLAGS1 Flags
1... .... APQLG_DS_ERR I/O Error
.1.. .... APQLG_DS_DUMMY Log compressed, 1st DS dummy
..1. .... APQLG_DS_RSTBG Restart begin
CONSTANTS
DSECT of DSPAPQLA
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 48 DSPAPQLA
0 (0) UNSIGNED 4 APQLA_DBDSAREAINFO Offset to allocated
DBDS/Area list
4 (4) SIGNED 4 *(3) Reserved
16 (10) CHARACTER 12 APQLA_PRILOGTIME PRILOG time
28 (1C) BIT(8) 1 APQLA_FLAGS Flags
1... .... APQLA_NONREGD Non-registered DB updated
29 (1D) UNSIGNED 3 APQLA_DBDSAREACOUNT Number of DBDS/Areas
allocated on this log
32 (20) UNSIGNED 4 APQLA_DBDSAREALEN Length of DBDS/Area entry
36 (24) CHARACTER 12 APQLA_EARLIESTALLOC Earliest ALLOC time for
this log
CONSTANTS
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
SSID=* MF=S
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
OUTPUT= output
SUBPOOL= number RETCODE= returncode
VERSION=2.0
DSECT of DSPAPQOL
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 48 DSPAPQOL
0 (0) UNSIGNED 4 APQOL_OLDSINFO Offset to OLDS list
4 (4) SIGNED 4 *(3) Reserved
16 (10) CHARACTER 8 APQOL_SSID Subsystem ID
24 (18) UNSIGNED 2 APQOL_OLDSLEN Length of OLDS entry
26 (1A) SIGNED 2 APQOL_OLDSCOUNT Number of OLDS entries
28 (1C) CHARACTER 12 APQOL_CHKPT0 Checkpoint 0 time
40 (28) CHARACTER 8 * Reserved
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 128 APQOL_OLDSENTRY OLDS entry
0 (0) CHARACTER 8 APQOL_DDNAME OLDS DD name
8 (8) CHARACTER 44 APQOL_DSNAM OLDS data set name
52 (34) CHARACTER 12 APQOL_OPENTIME OLDS open time
64 (40) CHARACTER 12 APQOL_CLOSETIME Close time
76 (4C) CHARACTER 12 APQOL_PRILOGTIME Start time of associated
PRILOG
88 (58) CHARACTER 8 APQOL_FLSN LSN of first record in OLDS
96 (60) CHARACTER 8 APQOL_LLSN LSN of last record in OLDS
104 (68) BIT(8) 1 APQOL_FLAG1
1... .... APQOL_RSTBG Restart begin
.1.. .... APQOL_RSTEN Restart end
..1. .... APQOL_COLD Cold start
...1 .... APQOL_NOBMP ERE NOBMP
.... 1... APQOL_SAVER Backout UORs saved
.... .1.. APQOL_NOID Backouts not identified
.... ..1. APQOL_TRKNG OLDS created by tracking SS
105 (69) BIT(8) 1 APQOL_FLAG2 OLDS flags
1111 .... APQOL_STAT OLDS status
1... .... APQOL_INUSE OLDS is in use
.1.. .... APQOL_ARNED Archive needed
..1. .... APQOL_ARSCH Archive scheduled (GENJCL)
...1 .... APQOL_ARSTD Archive job started
.... 1... APQOL_CLERR Close error on OLDS
.... .1.. APQOL_FEOV Force EOV at archive
.... ..1. APQOL_DUMMY OLDS not used due to I/O err
.... ...1 APQOL_PRVCE Close error on previous OLDS
106 (6A) UNSIGNED 1 APQOL_RELVL Log release level
CONSTANTS
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
You can use the DBRC Query request (DSPAPI FUNC=QUERY) along with the TYPE parameter to retrieve
various types of information from the RECON data set.
LOC=ALL DDN=NULL
DBNAME= name
LOC=FIRST DDN= ddname
LOC=LAST DDN= *
LOC=SPEC
PARTNAME= name
LOC=PREV
LOC=NEXT
LIST=NONE
IC
RECOV
REORG
LIST=ALL
OUTPUT= output
RSNCODE= reasoncode
MF=S SUBPOOL=0
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
VERSION= number
Table 96. Return and reason codes for TYPE=PART query requests
Code type Return codes Reason codes Meaning
X'00000000' X'00000000' Request completed successfully.
Warning X'00000008' X'D8210002' The specified DBDS or Area is not registered in
RECON. No information blocks are returned.
X'00000008' X'D8220001' No partitions are registered in RECON for the HALDB.
No information blocks are returned.
X'00000008' X'D8220002' The specified partition is not registered in RECON. No
information blocks are returned.
X'00000008' X'D8220003' A high key partition preceding the specified partition
does not exist in RECON. No information blocks are
returned.
X'00000008' X'D8220004' A high key partition following the specified partition
does not exist in RECON. No information blocks are
returned.
MF=S
OUTPUT= output
MF=(S, list )
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
VERSION=2.0
DSECT of DSPAPQRC
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 560 DSPAPQRC
0 (0) CHARACTER 44 APQRC_DATA Initialized with "RECOVERY
CONTROL DATASET"
44 (2C) UNSIGNED 4 APQRC_RECONINFO Offset to RECON data set
info
48 (30) SIGNED 4 *(2) Reserved
56 (38) UNSIGNED 2 APQRC_RECONINFOLEN Length of each RECON dataset info element
58 (3A) UNSIGNED 1 APQRC_RECONCOUNT # of RECON dataset elements
59 (3B) CHARACTER 1 * Reserved
60 (3C) BIT(8) 1 APQRC_FLAGS Process flags...
1... .... APQRC_NOCHK 1= NOCHECK log tape dsn check
.1.. .... APQRC_CHK17 1= CHECK17 log tape dsn check
..1. .... APQRC_CHK44 1= CHECK44 log tape dsn check
...1 .... APQRC_LSTLG 1= list log DSN
.... 1... APQRC_INUPG Upgrade in progress.
.... .1.. APQRC_REORGV Reorg verification
61 (3D) BIT(8) 1 APQRC_FLAG2 More flags...
1... .... APQRC_FORCE 1 = FORCER, 0 = NOFORCER
.1.. .... APQRC_CATDS 1=CA|IC|LOGS cataloged
..1. .... APQRC_TRACE 1 = ext. GTF trace on
...1 .... APQRC_CMDSAF SAF enabled
.... 1... APQRC_CMDEXIT Cmd auth exit enabled
.... .1.. APQRC_PRA Parallel RECON Access in use (VERSION=2.0)
.... ..1. APQRC_LISTFUZZY PRA Concurrent LIST active (VERSION=2.0)
62 (3E) CHARACTER 2 * Reserved
64 (40) CHARACTER 136 APQRC_CLEAN Fields needed for cleanup
64 (40) SIGNED 4 APQRC_CSET 0 = updates not in progress,
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
SSID=* MF=S
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
SUBPOOL=0
OUTPUT= output
SUBPOOL= number RETCODE= returncode
VERSION=2.0
DSECT of DSPAPQSS
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 64 DSPAPQSS
0 (0) CHARACTER 8 APQSS_SSID Subsystem identifier
8 (8) UNSIGNED 4 APQSS_AUTHLIST Offset to authd DB/Area list
12 (C) SIGNED 4 APQSS_AUTHCOUNT Number of authorized DB/Areas
16 (10) UNSIGNED 2 APQSS_AUTHLEN Length of auth entry
18 (12) CHARACTER 6 * Reserved
24 (18) CHARACTER 12 APQSS_LOGTIME Start time of log
36 (24) UNSIGNED 1 APQSS_RELLVL Subsystem release level
'71'X=V7R1,'81'X=V8R1
'91'X=V9R1, etc.
37 (25) CHARACTER 1 APQSS_COEXLVL Coexistence level
38 (26) UNSIGNED 1 APQSS_IRLMCT IRLM status count
39 (27) CHARACTER 1 * Reserved
40 (28) CHARACTER 8 APQSS_GSGNAME Global Service Group name
48 (30) CHARACTER 5 APQSS_IRLMID IRLM ID of SS
53 (35) CHARACTER 5 APQSS_IRLMBK IRLM ID of backup SS
58 (3A) BIT(8) 1 APQSS_FLAGS Flags
1... .... APQSS_TYPE 1=Online | 0=batch
.1.. .... APQSS_ABTERM Abnormal termination
..1. .... APQSS_RCVPRC Recovery processing started
...1 .... APQSS_BKSIGN Backup SS signed on
.... 1... APQSS_IRLMFL IRLM failure
.... .1.. APQSS_COMMFL COMM failure
.... ..1. APQSS_SYSFL SYS failure
.... ...1 APQSS_ACTVST Status of active SS when backup exists, 1=abterm
59 (3B) BIT(8) 1 APQSS_FLAGS2 FLAGS 2
1... .... APQSS_SHRING Sharing covered DBs
.1.. .... APQSS_TRKER Subsystem is a Tracker
..1. .... APQSS_TRKTRM TRACKER has terminated
...1 .... APQSS_TRCKED SSID is tracked
.... 1... APQSS_FRSTSO 1ST signon after RSR takeover is in progress
.... .1.. APQSS_XRFCAP SS is XRF capable
.... ..1. APQSS_DBRCAPI SS is a DBRC application
(VERSION=2.0)
.... ...1 APQSS_BPE BPE-based subsystem (VERSION=4.0)
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===============================
0 (0) STRUCTURE 32 APQSS_AUTHNAME Names of authd DB/Areas
0 (0) CHARACTER 8 APQSS_DBNAME DB name
8 (8) CHARACTER 8 APQSS_AREANM If FP, Area name
16 (10) UNSIGNED 1 APQSS_SHRLVL Share level
17 (11) UNSIGNED 1 APQSS_DBACCS Access intent
18 (12) UNSIGNED 1 APQSS_DBNCOD Encoded state
19 (13) UNSIGNED 1 APQSS_DBSTAT DB status flags
20 (14) UNSIGNED 2 APQSS_DBEQCT DB EQE count
22 (16) SIGNED 2 APQSS_GLBDMB Global DMB number
24 (18) BIT(8) 1 APQSS_AUTHFLAGS Flags
1... .... APQSS_NRDBUP Nonrecov DB/Area updated
.1.. .... APQSS_COVRD DB covered by GSG
..1. .... APQSS_NRECV nonrecoverable DB/Area
...1 .... APQSS_ORDBDS 0=A-J/1=M-V ACTIVE
CONSTANTS
Related concepts
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
Related reference
“DBRC query request (QUERY)” on page 371
You can use the DBRC Query request (DSPAPI FUNC=QUERY) along with the TYPE parameter to retrieve
various types of information from the RECON data set.
MF=S
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
Related concepts
“DBRC API” on page 345
Your applications can obtain services from Database Recovery Control (DBRC) through the DBRC
application programming interface (API), a release-independent, assembler macro interface. The
application obtains these services by issuing DBRC API requests to DBRC, and DBRC returns the results to
an area in storage where the application can retrieve them.
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
READONLY=NO SSID=NULL
SSID=NULL
READONLY=YES
SUBPOOL=0
MF=S
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=2.0
Related concepts
“DBRC API” on page 345
Your applications can obtain services from Database Recovery Control (DBRC) through the DBRC
application programming interface (API), a release-independent, assembler macro interface. The
application obtains these services by issuing DBRC API requests to DBRC, and DBRC returns the results to
an area in storage where the application can retrieve them.
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
MF=S
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
VERSION=1.0
Related concepts
“DBRC API” on page 345
Your applications can obtain services from Database Recovery Control (DBRC) through the DBRC
application programming interface (API), a release-independent, assembler macro interface. The
application obtains these services by issuing DBRC API requests to DBRC, and DBRC returns the results to
an area in storage where the application can retrieve them.
“Macro forms of the DSPAPI macro” on page 348
There are four different macro forms for the DSPAPI macro: Standard (S), List (L), Modify (M), and Execute
(E), with two variations, COMPLETE and NOCHECK. The List, Modify, and Execute forms are usually used in
combinations when writing reentrant programs or when the application issues multiple requests.
SUBPOOL=0
OUTPUT= output
SUBPOOL= number RETCODE= returncode
VERSION=2.0
MF=S
MF=(S, list )
MF=(L, list )
,COMPLETE
MF=(M, list )
,NOCHECK
,COMPLETE
MF=(E, list )
,NOCHECK
Related concepts
“DBRC API” on page 345
Your applications can obtain services from Database Recovery Control (DBRC) through the DBRC
application programming interface (API), a release-independent, assembler macro interface. The
application obtains these services by issuing DBRC API requests to DBRC, and DBRC returns the results to
an area in storage where the application can retrieve them.
“Macro forms of the DSPAPI macro” on page 348
Related reference
DBRC request return codes (Messages and Codes)
Table 104. APAUB_RsnCode values for UNAUTH request return and reason codes
APAUB_RsnCode Meaning
X'00000000' Request completed successfully.
X'C1000100' Security error. SAF or the DBRC command authorization exit (DSPDCAX0) has
determined that the user is not authorized to perform the request for this
database or area.
X'C1000408' Database not registered in RECON.
X'C1000410' Subsystem not authorized to use the database.
X'C1000418' Internal DBRC or IMS unauthorization error– Held state could not be computed
by the IMS compatibility evaluation routine.
Related reference
“DBRC unauthorization request (UNAUTH)” on page 449
You can use the UNAUTH request to explicitly remove authorization to a database or area. Authorization
by an application is implicitly removed by the STOPDBRC request. UNAUTH is the opposite of
FUNC=AUTH.
================================================================================
DSPAPAUB
OFFSET OFFSET
DECIMAL HEX TYPE LENGTH NAME (DIM) DESCRIPTION
======== ======== ========= ======== ============== ===========================
0 (0) STRUCTURE 8 DSPAPAUB AUTH/UNAUTH block
0 (0) UNSIGNED 4 APAUB_OFFSET Offset to first element
4 (4) SIGNED 4 APAUB_ELCOUNT Number of elements in list
CONSTANTS
BATCH
ONLINE
,IMSID= name-addr
,RETCODE= symbol |( 2-12 )
,MF=L
,MF=(E, list )
Example
DFS3CATQ FUNCTION=HLQ,OUTPUT=(R2),HLQENV=ZOS,
IMSID=(R3)
Related reference
“Open request (OPEN) for the IMS catalog API” on page 469
Use the IMS catalog API OPEN function to allocate either the IMS directory data set or the IMS directory
staging data set for subsequent API calls to list or retrieve the database and program view resources that
are defined to IMS.
Chapter 39. HLQ request (HLQ) for the IMS catalog API 467
468 IMS: System Programming APIs
Chapter 40. Open request (OPEN) for the IMS catalog
API
Use the IMS catalog API OPEN function to allocate either the IMS directory data set or the IMS directory
staging data set for subsequent API calls to list or retrieve the database and program view resources that
are defined to IMS.
During the OPEN request, the IMS directory boot strap data set (BSDS) is allocated, opened, read, closed,
and unallocated. If you specify DEFINITION=CURRENT to retrieve the definitions that are currently active
in the IMS system, the IMS directory data set remains allocated until the CLOSE request. If you specify
DEFINITION=PENDING to retrieve any definitions that are waiting to be activated, the staging data set of
the IMS directory remains allocated until the CLOSE request.
When you make an OPEN request, the DFS3CATQ macro dynamically allocates the BSDS and directory
data sets as needed. It allocates a block of virtual storage that is used to communicate information across
subsequent GET and LIST requests. The address of the block is stored at the address that is provided in
the TOKEN parameter. The same token must be used for subsequent requests.
You can issue a CLOSE request to free the allocation.
You can make multiple IMS catalog API OPEN requests and allow them to remain in use before you issue
a CLOSE request for any specified OPEN request.
To have multiple IMS catalog API allocations active at the same time:
1. Provide a different TOKEN address for each OPEN request.
2. Specify that token for each subsequent GET or LIST request against that IMS catalog.
3. Specify that token on the CLOSE request to free the allocation of that IMS directory data set.
Up to 36 OPEN requests can be active at one time if the system-generated DDname is available and there
are no environment limits.
,CATALIAS= alias-addr
,DEFINITION=CURRENT
,DEFINITION=BOTH ,MF=L
,MF=(E, list )
,TOKEN= tok-addr
Chapter 40. Open request (OPEN) for the IMS catalog API 471
Table 106. Return and reason codes for the DFS3CATQ macro OPEN requests (continued)
Return Code Reason Code Meaning
X'0000000C' X'00000020' The address provided for the
RSNTEXT= variable or location
was not valid.
X'00000014' X'yyyyzzzz' The OPEN request was
unsuccessful using an internal
service. The reason code contains
the service's return code (yyyy)
and reason code (zzzz).
X'00000018' X'nnnnnnnn' OPEN was not successful. The
reason code is the return code
from the OPEN macro.
X'0000002C' X'nnnnnnnn’ OPEN boot strap data set (BSDS)
in output mode was not
successful. The reason code is
the return code from the OPEN
macro.
X'0000003C' X'00000024' The member specified with the
CATALIAS= parameter was not
found.
X'0000003C' X'00000028' An error occurred when the LOAD
macro attempted to load the
member specified with the
CATALIAS= parameter.
X'0000003C' X'00000104' The contents of the DFSMDA
specified with the CATALIAS=
parameter are invalid.
X'00000030' X'yyyyzzzz' Dynamic allocation of IMS
directory data set was not
successful. The reason code
contains S99ERROR (yyyy) and
S99INFO (zzzz) from the
DYNALLOC macro.
X'00000034' X'yyyyzzzz' Dynamic deallocation of IMS
directory data set was not
successful. The reason code
contains S99ERROR (yyyy) and
S99INFO (zzzz) from the
DYNALLOC macro.
X'00000038' X'yyyyzzzz' Dynamic allocation of
concatenated directory data set
was not successful. The reason
code contains S99ERROR (yyyy)
and S99INFO (zzzz) from the
DYNALLOC macro.
Related reference
“ Close request (CLOSE) for the IMS catalog API” on page 485
You can use an IMS catalog API close request to close any data sets that were allocated for previous IMS
catalog API requests.
Chapter 40. Open request (OPEN) for the IMS catalog API 473
474 IMS: System Programming APIs
Chapter 41. Get request (GET) for the IMS catalog
API
Use the GET function of the IMS catalog API to get an object definition from the IMS catalog and return
the information back to the calling application.
For each successful GET request, one or more areas of storage is returned to the application that contains
the requested information. The address of the first area of storage is stored at the address provided in the
OUTPUT parameter. The address of the next area of storage, if any, is contained within the first area. For
the last area, the address of the next area of storage is null.
The application is responsible for freeing each of these storage areas when they are no longer needed.
Restriction:
GSAM ACB or DBD control blocks cannot be retrieved from the IMS catalog by using the GET request of
the IMS catalog API.
DATABASE
PSB
PSBLIB
,DEFINITION=CURRENT
,TOKEN= tok-addr
,DEFINITION=PENDING
,MF=L
,MF=(E, list )
Chapter 41. Get request (GET) for the IMS catalog API 477
Table 107. Output area returned for GET requests (continued)
Content Description
Data area The requested data is comprised of the following
repeating elements:
4 bytes
The address of the object.
The object is mapped by one of the following
macros:
• IDBD for a DBD returned in the DBDLIB
format.
• DFSDMB for a DBD returned in the ACBLIB
format.
• DFSIPSB for a PSB returned in the PSBLIB
format.
• DFSPSB for a PSB returned in the ACBLIB
format.
4 bytes
Length of the object.
8 bytes
Member name of the object.
X'00080004' X'yyyyzzzz' The request was unsuccessful during BLDL macro processing.
The reason code contains the BLDL return code (yyyy) and
reason code (zzzz).
X'00080008' X'yyyyzzzz' The request was unsuccessful during FIND macro processing.
The reason code contains the FIND return code (yyyy) and
reason code (zzzz).
Related reference
Writing IMS routines that access control blocks (Exit Routines)
Chapter 41. Get request (GET) for the IMS catalog API 479
480 IMS: System Programming APIs
Chapter 42. List request (LIST) for the IMS catalog
API
You can use the IMS catalog API list request to return a list of object names that match a specified object
type and name.
For each successful LIST request, one or more areas of storage is returned to the application that contains
the requested information. The address of the first area of storage is stored at the address provided in the
OUTPUT parameter. The address of the next area of storage, if any, is contained within the first area. For
the last area, the address of the next area of storage is null.
The application is responsible for freeing each of these storage areas when they are no longer needed.
DATABASE
PSB
,DEFINITION=CURRENT
,NAME= name-addr ,TOKEN= tok-addr
,MF=L
,MF=(E, list )
Chapter 42. List request (LIST) for the IMS catalog API 483
Table 110. Return and reason codes for the DFS3CATQ macro LIST requests (continued)
Return Code Reason Code Meaning
X'0000000C' X'00000010' Valid address for the TOKEN=
variable or location was not
provided.
X'0000000C' X'00000018' One of the parameter pairs is
specified:
• DEFINITION=CURRENT for the
OPEN request and
DEFINITION=PENDING for the
GET request
• DEFINITION=PENDING for the
OPEN request and
DEFINITION=CURRENT for the
GET request
,MF=L
,MF=(E, list )
Related reference
“Open request (OPEN) for the IMS catalog API” on page 469
Use the IMS catalog API OPEN function to allocate either the IMS directory data set or the IMS directory
staging data set for subsequent API calls to list or retrieve the database and program view resources that
are defined to IMS.
Programming requirements
The DFSGVRM macro can be invoked from AMODE 24, 31, or 64 callers. The invoking module can reside
anywhere below the 2 GB bar. RMODE(64) is not supported.
The program that invokes the DFSGVRM macro must be in task mode and not in cross memory mode. The
calling module does not have to reside in an APF-authorized library.
Execution environment
Programs accessing the DFSGVRM API can execute in any IMS address space while the IMS system is
running.
Programs accessing the API can also execute in an address space outside of IMS, and the IMS system
does not have to be running. If called from outside of IMS, an IMS RESLIB must be available in the
standard z/OS search order of load modules.
Register usage
Input register information:
• Before invoking the DFSGVRM macro, GPR 13 must point to a standard 18-word save area.
Output register information:
R0
Reason code
R1
Used as a work register
R2 - R13
Unchanged
R14
Used as a work register
R15
Return code
,RETAREA=
( R2 - R12 )
X'0000000C' Return code from DELETE macro Failure trying to delete module
DFSGVRM0 after successful
invocation of DFSGVRM0.
The return area provided is valid
and available for use.
X'00000010' Return code from STORAGE Unable to free the output area
RELEASE that is referred to by the AREA=
parameter.
X'00001008' Return code from STORAGE The DFSGVRM0 module could
OBTAIN not obtain storage for the output
area.
X'0000100C' X'yyyyzzzz' Unable to LOAD module
DFSVC000.
In the reason code:
yyyy
Is the low-order 2 bytes of
the ABEND code that LOAD
would have issued.
zzzz
Is the low-order 2 bytes of
the reason code for the
ABEND that would have been
issued.
Chapter 44. CALL request (CALL) for the IMS installed level API 491
492 IMS: System Programming APIs
Chapter 45. REL request (REL) for the IMS installed
level API
Use the REL function of the DFSGVRM API to release the storage that were returned by the CALL function
for the output areas and that is no longer needed.
If the RETAREA register or the parameter list field GVRMP_A_OUTPUT_AREA is nonzero after the output
area is returned by the CALL function, regardless of the return code the calling application must use the
REL function to release the storage that were allocated for the output areas. The output area address is
set to zero when the output area is not present on return.
Related reference
“CALL request (CALL) for the IMS installed level API” on page 489
Use the CALL function of the DFSGVRM API to obtain the version, release, and modification level of the
IMS system.
EXEC PGM=FRPBATCH,PARM=(’XCFGROUP=FRPGRUP1’,’LANG=ENU’)
SYSPRINT DD
Defines a data set for general messages and information. DCB attributes for this data set are
RECFM=FBM and LRECL=133.
FRPLIST DD
Defines a data set for the LIST command output. If this statement is omitted, the output of the LIST
command is written to the SYSPRINT DD output data set. DCB attributes for this data set are
RECFM=FBM and LRECL=133.
RENAME REPOSITORY(REPOSITORY_NAME) -
REPOSITORYNEW(REPNEWNAME)
– Use a plus sign (+) to enter a single parameter and its value on multiple lines. It deletes the leading
separator from continued lines. The plus sign must immediately follow the last character on a line.
For example:
START REPOSITORY
(REPOSIT+
ORY_NAME)
The following sample is JCL that runs the FRPBATCH interface with the various FRPBATCH commands:
//*
LIST REPOSITORY(IMSRSC_REPOSITORY)
//*
STOP REPOSITORY(IMSRSC_REPOSITORY)+
MAXWAIT(30,CONTINUE)
//*
RENAME REPOSITORY(IMSRSC_REPOSITORY) REPOSITORYNEW(IMSRSC_TEST_REPOSITORY)
//*
UPDATE REPOSITORY (IMSRSC_TEST_REPOSITORY) -
REPDSN1RID(IMSTESTS.TESTREPO.IMSPRI.RID) -
REPDSN1RMD(IMSTESTS.TESTREPO.IMSPRI.RMD) -
AUTOOPEN(NO)
Syntax
ADD REPOSITORY( repository_name ) REPDSN1RID( ds1_rid_dsname )
REPDSN2RMD( ds2_rmd_dsname )
REPDSN3RID(NULL) REPDSN3RMD(NULL)
AUTOOPEN(YES) SECURITYCLASS(NULL)
Keywords
REPOSITORY()
This is a required keyword. The name of the repository. The name can be up to 44 characters long.
Valid characters are A-Z (uppercase only), 0-9, and the following symbols: number sign (#), dollar sign
($), at sign (@), period (.), and underscore (_). All lower case characters are converted to uppercase.
A repository name of CATALOG cannot be used, because it is reserved for RS usage.
REPDSN1RID()
This is a required keyword. The primary repository index data set (RID). A valid existing VSAM key
sequenced data set (KSDS) name is required for the repository to initialize.
REPDSN1RMD()
This is a required keyword. The primary repository member data set (RMD). A valid existing VSAM
KSDS name is required for the repository to initialize.
Keywords
REPOSITORY()
This is a required keyword. The name of the repository to be removed. "CATALOG" is reserved for
internal use and cannot be deleted.
Related concepts
Overview of the IMSRSC repository (System Definition)
Related tasks
Removing an IMSRSC repository from the RS catalog repository (System Administration)
Related reference
z/OS: DFSMS Access Method Services for Catalogs
Syntax
DSCHANGE REPOSITORY( repository_name )
2 DISCARD
Keywords
REPOSITORY()
This is a required keyword. The name of the repository to be changed. "CATALOG" is reserved and
cannot be changed.
RDS(1 | 2 | 3)
This is a required keyword. A number in the range of 1-3 to identify the repository data set pair to
which the requested DSCHANGE action is to be applied.
1
The primary repository data set pair (COPY1).
2
The secondary repository data set pair (COPY2).
3
The spare repository data set pair (SPARE).
ACTION(SPARE | DISCARD)
This keyword is required. The action to be applied to the repository data sets that are specified in the
RDS parameter.
Syntax
LIST REPOSITORY( repository_name )
STATUS
Keywords
REPOSITORY()
List details for a specific repository that is defined to the RS catalog repository data sets. The name of
the repository for which to list information.
STATUS
List the details for all the repositories that are defined to the RS catalog repository data sets.
The following information is returned:
• Name of the repository
• Status of the repository
• Date when the repository was last updated and the user ID of the user who updated it
Related concepts
Overview of the IMSRSC repository (System Definition)
Related tasks
Viewing IMSRSC repository definitions and status (System Administration)
Keywords
REPOSITORY()
This is a required keyword. The current name of the repository to be renamed. "CATALOG" is reserved
for internal use and cannot be renamed.
REPOSITORYNEW()
This is a required keyword. The new name of the repository to be renamed. The name can be up to 44
characters long. Valid characters are A-Z (uppercase only), 0-9, and the following symbols: period (.),
underscore (_), number sign (#), dollar sign ($), and at sign (@). All lowercase characters are
converted to uppercase.
A repository name of "CATALOG" cannot be used, because it is reserved for Repository Server (RS)
usage.
Related concepts
Overview of the IMSRSC repository (System Definition)
Updating IMSRSC repository specifications in the RS catalog repository (System Administration)
Syntax
OPEN(NO)
START REPOSITORY( repository_name )
OPEN(YES)
MAXWAIT(5,CONTINUE)
CONTINUE
MAXWAIT( seconds , )
ABORT
IGNORE
Keywords
REPOSITORY()
This is a required keyword. The name of the repository data set to be started. The Repository Server
(RS) catalog repository data sets cannot be started using the START command.
OPEN(NO | YES)
This keyword is optional. Specifies whether to open the repository data sets immediately after the
repository is started.
NO
Repository data sets are opened when a user first connects to the repository, or immediately if
AUTOOPEN=Y is defined for the repository with the ADD FRPBATCH command. This is the default.
Syntax
STOP REPOSITORY( repository_name )
MAXWAIT(5,CONTINUE)
CONTINUE
MAXWAIT( seconds , )
ABORT
IGNORE
Keywords
REPOSITORY()
This is a required keyword. The name of the repository data set to be stopped. The RS catalog
repository data set cannot be stopped using the STOP command.
Requests that the RS stop this repository, preventing further connections to it. If the repository data
sets are allocated, the server deallocates the data sets after all write operations are completed and
closes the repository.
MAXWAIT(5 | seconds , CONTINUE | IGNORE | ABORT)
This keyword is optional. The maximum time (0-9999) in seconds that the utility waits for the STOP
operation to be completed. The default is 5 seconds. A value of 0 means that the utility does not wait
and returns a code immediately. MAXWAIT also specifies the action to be taken if the STOP operation
has not been completed when the MAXWAIT period expires (when the request to the server to stop
Syntax
UPDATE REPOSITORY( repository_name )
NULL NULL
NULL NULL
NULL NULL
AUTOOPEN(YES) SECURITYCLASS(NULL)
Keywords
REPOSITORY()
This is a required keyword. The name of the repository to be updated. "CATALOG" is reserved and
cannot be updated.
REPDSN1RID()
This is an optional keyword. The name of the primary repository index data set (RID). If this parameter
is omitted, or if NULL is specified, the data set is not updated.
If you specify REPDSN1RMD, but do not want to update this parameter, you still must specify this
parameter (with NULL).
Notes:
1. Bytes 1 through 7, 10, and 11 are set to the indicated values set by IMS and cannot be changed by
the user. The pacing parameter is defined in the VTAM list LU definition or through the mode table
entry for the LU (VTAM DLOGMOD parameter).
2. Bytes 0, 9, and 27 through 35 are set by VTAM.
3. The receive-any buffer size is determined by the user-supplied value for size on the RECANY keyword
parameter of the COMM macro statement, less 28 bytes.
4. IMS does not set the buffer size for the 4701/4702.
5. When the BIND data issued is an XRF system that uses the USERVAR instead of MNPS, the following
structured user segment is included:
Length of USERVAR segment - X'09'
USERVAR segment indicator - X'03'
USERVAR (8 bytes) - USERVAR of the XRF system
Related reference
z/OS: Request unit (RU) formats
7 B'0' Reserved
7 0-1 B'10' FM transaction mode, HDX-FF
2 B'1' Sender ERP
3 B'0' Secondary is first speaker
4-6 B'0000' Reserved
If byte 6 bit 2 is 0, then
0-Secondary speaks first after data traffic
active state
7 B'0', B'1' 1-Primary speaks first after data traffic active
state2
8 0-7 Unchanged Secondary send pacing count
9 0-7 Unchanged Secondary receive pacing count
10 0-7 Set from user Define receive-any SLU max send RU size3
11 0-7 Set from user Define outbuffer PLU max send RU size
size
12 0-7 Unchanged Primary send pacing count
13 0-7 Unchanged Primary receive pacing count
Presentation Services
14 0-7 X'06' LU profile (LUTYPE6)
15 0-7 X'00' Reserved Function management header subset
3 1 - Receive SCHEDULER
model supported
4 0 - Receive QMODEL
ignored
1 - Receive QMODEL
supported
Notes:
1. The length of the BIND RU cannot exceed 256 bytes; otherwise, a negative response is returned.
2. Set to indicate possible in-bracket or process restart. Set by IMS on bind when response mode output
remains on the queue or when IMS is in conversational mode. Can also be sent on a negotiated bind
response by the other half session.
3. The receive-any buffer size is determined by the user-supplied value for size on the RECANY keyword
parameter of the COMM macro statement, less 28 bytes.
4. When the bind indicates that the other half session does not support the SCHEDULER process, IMS
sends all unsolicited and asynchronous output using ATTACH.
5. Unstructured user data is ignored and not provided by IMS.
6. Structured user data formats. A structured field contains architected or subsystem-defined
information and provides a means for subsystems to communicate data. Each structured field contains
a field identifier (subfield number) and length. A structured data field can contain unstructured data.
If structured field (M+3-N) is X'00', it contains unstructured data as follows:
1
Length of unstructured data field (including subfield key field). If zero, this field can be omitted
entirely.
2
Subfield key: X'00'
3-N
Unstructured data. If the structured subfield number is X'03', an 8-byte USERVAR name follows
the subfield.
If the structured field (M+3-N) is X'01', it contains a session qualifier as follows:
1
Length of session qualifier field (including subfield key field). If zero, this field can be omitted
entirely.
2
Subfield key: X'01'
3
Length of primary resource qualifier (X'00' means no primary source qualifier is present). Values 0
to 8 are valid.
4-N
Primary resource qualifier
7 B'000' Reserved
7 0-1 B'10' FM transaction mode, HDX-FF
2 B'1' Sender ERP
3-6 B'0000' Reserved
7 B'0', B'1' IF byte 6 bit 2 is 0:
0 - Secondary speaks first
after data traffic active
state
1 - Primary speaks first
after data traffic active
state2
1 - Receive SCHEDULER
model supported
4 0 - Receive QMODEL
not supported
6 0 - DL/I model
not supported
7 Reserved
17 Reserved
18-19 Reserved
20 0 Reserved Secondary half-session flags
1 Reserved
2 1 - FMH6: Receive
SYSMSG supported
3 1 - Receive schedule
model supported
4 1 - Receive QMODEL
supported
6 0 - DL/I model
not supported
7 Reserved
21 Reserved
22-26 Reserved
27 0-7 Length of PLU name
Notes:
1. The length of the BIND RU cannot exceed 256 bytes; otherwise, a negative response is returned.
2. Set to indicate possible in-bracket or process restart. Set by IMS on bind when response mode output
remains on the queue or when IMS is in conversational mode. Can also be sent on a negotiated bind
response by the other half session.
3. The receive-any buffer size is determined by the user-supplied value for size on the RECANY keyword
parameter of the COMM macro statement, less 28 bytes.
4. When the bind indicates that the other half session does not support the SCHEDULER process, IMS
sends all unsolicited or asynchronous output using ATTACH.
5. Unstructured user data is ignored and not provided by IMS.
6. Structured user data formats. A structured field contains architected or subsystem-defined
information and provides a means for subsystems to communicate data. Each structured field contains
a field identifier (subfield number) and length. A structured data field can contain unstructured data.
If structured field (M+3-N) is X'00', it contains unstructured data as follows:
1
Length of unstructured data field (including subfield key field). If zero, this field can be omitted
entirely.
2
Subfield key: X'00'
3-N
Unstructured data If the structured subfield number is X'03', an 8-byte USERVAR name follows the
subfield.
If the structured field (M+3-N) is X'01', it contains a session qualifier as follows:
1
Length of session qualifier field (including subfield key field). If zero, this field can be omitted
entirely
2
Subfield key: X'01'
Notes:
1. IMS forces flip-flop mode.
2. The preceding bind (bytes 0-6 and 13) overrides anything that might be in a logmode entry.
3. You can do this by coding the VPACING parameter on the VTAM list LU definition or by specifying the
appropriate mode table entry on the LU definition by using the VTAM DLOGMOD parameter.
4. The remainder of the bind (bytes 14-35) can be specified if it is required by the device. It is taken
from the logmode entry.
5. Unattended operation must be specified in the logmode entry using the following:
BYTE 18
Bit 0
0
Initiates attended
1
Initiates unattended
Bit 1
0
Does not alternate from attended/unattended during session
1
Alternates from attended/unattended during session
IMS forces attended mode if the node is defined as the master terminal.
6. IMS users should make the logmode entry according to the IMS definition.
7. If the terminal sends SCS2 transparent fields (identified by a X'35' followed by one byte containing
the field's length, followed by the transparent field), the bind image bit BINPDSB1=BINTRNDS (offset
17=01) must be set. IMS processes these fields by deleting the X'35' and length byte, and by passing
the unaltered transparent field to the editing routine.
8. IMS accepts a setting of B'10' (definite response), B'01' (exception response), or B'11' (either
response). If a setting of B'00' is found, IMS sets B'01' if only the first component is defined, and
B'10' if more than one component is defined.
9. IMS leaves this bit on (FM headers allowed). If off, IMS leaves it off (FM headers not allowed) if only
one component is defined, and sets it on if more than one component are defined.
Notes:
1. Bytes 0-6, 9, and 10 are set to the indicated values by IMS and cannot be changed by the user.
2. Byte 8 and bytes 26 through 34 are set by VTAM. You should set the remaining bytes to 0 (zero), but it
is not mandatory.
LOGOND = lname
userid
USERD = uname userdata
For these parameters, blanks are required and are the only recognized delimiters. Do not use more than
one blank to delimit parameters.
Parameters
LOGOND=lname
Specifies logon descriptor name to be used for the terminal attempting to log on to IMS. lname is one
to eight bytes in length. The LOGOND and USERD parameters are valid only for Extended Terminal
Operation (ETO).
userid
Specifies the 1- to 8-byte user ID of the user logging on to IMS. The userid parameter indicates that
the user associated with this ID will also sign on to IMS.
The userid parameter is required for Finance, SLU P, ISC, and output-only devices (such as printers).
Restriction: ISC is restricted to only the user ID that translates to the ISC SUBPOOL name (SNA
PHS/SHS qualifier). For ISC parallel sessions, the DFSLGNX0 exit routine receives only the user ID that
translates to the ISC subpool name (SNA PHA/SHA qualifier).
Format controls
Formatting control functions format the output media at the device on a line and page basis. In addition to
these controls, a device using SCS also automatically formats the character string to fit the line length of
the device.
Automatic new line generation eliminates device line length dependencies from those applications in
which a specific output format is not required. Therefore, the same character string is sent to devices with
varying line length capabilities without the requirement to reformat the character string.
Where specific line and page formats are required, the formatting control functions are used. The
automatic new line feature is always active; however, a character string formatted for a given line length
can be presented on a device with a shorter line length without loss of data, but the format is lost. When
the situation is reversed, where a character string constructed for a maximum presentation position is
less than the line length of the device to which it is directed, use of the smaller maximum presentation
position allows the string to be presented without loss of format.
EBCDIC Function
code abbreviation
Function
04 Vertical Channel Select VCS1
05 Horizontal Tab HT
0B Vertical Tab VT
0C Form Feed FF
0D Carrier Return CR
14 Enable Presentation ENP
EBCDIC Function
code abbreviation
Function
15 New Line NL
16 Back Space BS
17 Program Operator POC1
24 Inhibit Presentation INP
25 Line Feed LF
2B Format FMT1
34 Presentation Position PP1
35 Transparent TRN1
Note:
1. Functions with parameters
For license inquiries regarding double-byte character set (DBCS) information, contact the IBM Intellectual
Property Department in your country or send inquiries, in writing, to:
Each copy or any portion of these sample programs or any derivative work
must include a copyright notice as follows:
© (your company name) (year).
Portions of this code are derived from IBM Corp. Sample Programs.
© Copyright IBM Corp. _enter the year or years_.
Trademarks
IBM, the IBM logo, and ibm.com® are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the web at
"Copyright and trademark information" at http://www.ibm.com/legal/copytrade.shtml.
Adobe, the Adobe logo, and the PostScript logo are either registered trademarks or trademarks of Adobe
Systems Incorporated in the United States, and/or other countries.
Linux® is a registered trademark of Linus Torvalds in the United States, other countries, or both.
534 Notices
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the
United States, other countries, or both.
Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or
its affiliates.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Applicability
These terms and conditions are in addition to any terms of use for the IBM website.
Personal use
You may reproduce these publications for your personal, noncommercial use provided that all proprietary
notices are preserved. You may not distribute, display or make derivative work of these publications, or
any portion thereof, without the express consent of IBM.
Commercial use
You may reproduce, distribute and display these publications solely within your enterprise provided that
all proprietary notices are preserved. You may not make derivative works of these publications, or
reproduce, distribute or display these publications or any portion thereof outside your enterprise, without
the express consent of IBM.
Rights
Except as expressly granted in this permission, no other permissions, licenses or rights are granted, either
express or implied, to the publications or any information, data, software or other intellectual property
contained therein.
IBM reserves the right to withdraw the permissions granted herein whenever, in its discretion, the use of
the publications is detrimental to its interest or, as determined by IBM, the above instructions are not
being properly followed.
You may not download, export or re-export this information except in full compliance with all applicable
laws and regulations, including all United States export laws and regulations.
IBM MAKES NO GUARANTEE ABOUT THE CONTENT OF THESE PUBLICATIONS. THE PUBLICATIONS ARE
PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT,
AND FITNESS FOR A PARTICULAR PURPOSE.
Notices 535
your own legal advice about any laws applicable to such data collection, including any requirements for
notice and consent.
For more information about the use of various technologies, including cookies, for these purposes, See
IBM’s Privacy Policy at http://www.ibm.com/privacy and IBM’s Online Privacy Statement at http://
www.ibm.com/privacy/details the section entitled “Cookies, Web Beacons and Other Technologies” and
the “IBM Software Products and Software-as-a-Service Privacy Statement” at http://www.ibm.com/
software/info/product-privacy.
Title Acronym
IMS Version 15.2 Application Programming APG
IMS Version 15.2 Application Programming APIs APR
IMS Version 15.2 Commands, Volume 1: IMS Commands A-M CR1
IMS Version 15.2 Commands, Volume 2: IMS Commands N-V CR2
IMS Version 15.2 Commands, Volume 3: IMS Component and z/OS CR3
Commands
IMS Version 15.2 Communications and Connections CCG
IMS Version 15.2 Database Administration DAG
IMS Version 15.2 Database Utilities DUR
IMS Version 15.2 Diagnosis DGR
IMS Version 15.2 Exit Routines ERR
IMS Version 15.2 Installation INS
IMS Version 15.2 Licensed Program Specifications LPS
IMS Version 15.2 Messages and Codes, Volume 1: DFS Messages MC1
IMS Version 15.2 Messages and Codes, Volume 2: Non-DFS Messages MC2
IMS Version 15.2 Messages and Codes, Volume 3: IMS Abend Codes MC3
IMS Version 15.2 Messages and Codes, Volume 4: IMS Component Codes MC4
IMS Version 15.2 Operations and Automation OAG
IMS Version 15.2 Release Planning RPG
IMS Version 15.2 System Administration SAG
IMS Version 15.2 System Definition SDG
IMS Version 15.2 System Programming APIs SPR
IMS Version 15.2 System Utilities SUR
Index 539
client (continued) command request
interface overview 365
authorized 4 COMMAND request
non-authorized 4 return codes 367
planning considerations 97 command response
registering an ODBM client 99 including format IDs 257
registering an OM command processing client 100 command response directive 164
registering an RM client 101 command response request 157
running on host 129 commands
TSO SPOC 129 /CHANGE 317
workstation 129, 131 /DISPLAY CCTL 317
workstation SPOC 129 ADDRESS 255
writing for CSL 97 CSLULGTP 257, 258
writing your own 97 REXX subcommands
client program CART 255
assembling 4 END 264
writing 3 IMS 255
client requests ROUTE 255
assembling a program 4 WAIT 255
authorization 4 sending to IMS DB 340
coding 4 type-2 256
CQSBRWSE 15 common queue server 3
CQSCHKPT 22 Common Service Layer (CSL)
CQSCONN 25 clients 95
CQSDEL 30 requests
CQSDEREG 35 sequence to issue 101
CQSDISC 37 coordinating IMSplex-wide processes 171
CQSINFRM 41 CQS (Common Queue Server)
CQSMOVE 45 clients 13
CQSPUT 49 CQSBRWSE request
CQSQUERY 56 BROWSE function 15
CQSREAD 64 BRWSOBJS function 15
CQSRECVR 70 COMPLETE function 15
CQSREG 73 CONTINUE function 15
CQSRSYNC 76 DSECT function 15
CQSSHUT 82 functions 15
CQSUNLCK 83 parameters 15
CQSUPD 88 return and reason codes 15
DSECTs, using 9 syntax 15
ECB, using 4 usage 15
environmental requirements 7 CQSCHKPT request
example 13 CHKPTSTR function 22
introduction 3 CHKPTSYS function 22
lists, using 4 DSECT function 22
literals, coding 4 format 22
literals, using 4 parameters 22
parameters, coding 4 return and reason codes 22
requests syntax 22
CQSCONN 25 usage 22
return and reason codes 9 CQSCONN request
sample 13 CONNECT function 25
sequence of 4 DSECT function 25
CLOSE request format 25
IMS catalog API 485 parameters 25
coding requests 4 restrictions 25
command and response token 255 return and reason codes 25
command deregistration request 151 syntax 25
command directive 164 usage 25
command header CQSDEL request
XML output 246 DELETE function 30
command output block mapping 368 DSECT function 30
command override 149 format 30
command processing client requests 149 parameter 30
command processing clients 131 return and reason codes 30
Index 541
csl (continued) CSLZQRY request (continued)
return and reason 97 description 102
CSL (Common Service Layer) parameters 102
clients 95 syntax 102
requests CSLZSHUT request
sequence to issue 101 description 104
writing an RM client 169 parameters 104
writing an SCI client 207 syntax 104
CSL managers
registering to SCI 99
CSL OM API
D
XML output 246 data capture log records
csl request prefix 281
codes 97 Data Capture, asynchronous support 271
CSLDMDRG 134 data element headers 282
CSLDMI 136 data sets
CSLDMREG IMS.ADFSMAC 4
parameters 146 Database Recovery Control (DBRC)
return and reason codes 148 application programming interface
syntax 146 macro version 348
CSLOMBLD 149 database resource adapter (DRA) 291
CSLOMBLD command override 149 Database Resource Adapter (DRA)
CSLOMCMD 107 enabling
CSLOMCMD output 244 CCTL 309
CSLOMI initializing
input buffer, example 116 CCTL 309
output 241 DB query
response directive 164 output 377
CSLOMOUT 152 overview 377
CSLOMOUT output 246 parameters 377
CSLOMQRY 125 return codes 377
CSLOMQRY output 245 syntax 377
CSLOMRDY request 154 DB2, propagating DL/I updates to 271
CSLOMRSP 157 DBDS query
CSLOMSUB 160 overview 398
CSLOMUSB 163 parameters 398
CSLOREGO 155 return codes 398
CSLRMDEL 172 syntax 398
CSLRMDRG 176 DBRC (Database Recovery Control)
CSLRMPRI 177 application programming interface
CSLRMPRR 179 accessing RECON data sets 351
CSLRMPRS 181 addressing and residence 346
CSLRMQRY 189 coding parameters 347
CSLRMREG 193 command request 365
CSLRMUPD 197 DSPAPI macro 345
CSLSCBFR 208 ending the environment 346
CSLSCDRG establishing the environment 346
environmental requirements 95 how to access 346
CSLSCMSG 212 macro version 348
CSLSCQRY 218 overview 345
CSLSCQSC 221 QUERY request 371
CSLSCREG READONLY access 352
environmental requirements 95 runtime considerations 351
restrictions 224 security 355
CSLSCRQR 231 services available 345
CSLSCRQS 233 tokens 348
CSLULGTP 258 use of registers 347
CSLULGTS 257 using EQU statements 347
CSLULGUM request 265 wildcard support 353
CSLULOPT 257 AUTH query
CSLULSUB request 264 overview 357
CSLULUSB request 265 return codes 360
CSLULXCB 255 syntax 358, 449
CSLZQRY request BACKOUT query
Index 543
DRA (database resource adapter) (continued) environment (continued)
thread CQS deregister request 7
ODBA 293 CQS register request 7
processing 293 CQS requests, authorized interface 7
structure 293 CQS requests, non-authorized interface 7
thread function requests environmental requirements 95
ABTTERM 330 environments
COMTERM 329 client requests 7
IMS 326 example
PREP 328 coding CQSREAD with OPTWORD1 4
SCHED 323 CQSREAD request 13
SYNTERM 327 passing a value
TERMTHRD 330 for register 4
thread statistics 337 for symbol 4
tracing 340 for symbol value 4
DSCHANGE batch command 501 passing an address
DSECT request for register 4
IMS catalog API 463 for symbol 4
DSECTs passing an equate for symbol value 4
DSPAPCMD 368 STEPLIB DD statement to concatenate IMS.SDFSRESL 4
DSPAPQAL 377 examples
DSPAPQAR 377 REXX SPOC API
DSPAPQCG 404 autonomic 269
DSPAPQDB 377
DSPAPQDG 404
DSPAPQDS 377
F
DSPAPQEL 377 failures with Resource Manager 171
DSPAPQFD 377 FID
DSPAPQHB 377 including in command responses 257
DSPAPQHP 377 Finance Communication System
DSPAPQIC 377 session parameters 509
DSPAPQLA 411 format IDs
DSPAPQLG 411 including in command responses 257
DSPAPQLI 411 FRPBATCH commands
DSPAPQOL 420 ADD 499
DSPAPQRC 431 DELETE 500
DSPAPQRI 377 DSCHANGE 501
DSPAPQRR 377 LIST 502
DSPAPQRV 377 RENAME 502
DSPAPQSL 377 START 503
DSPAPQSS 435 STOP 504
DSECTS UPDATE 505
DSPAPQCA 404
DSPAPQGG 404
DSPAPI G
accessing 351
GET request
forms
IMS catalog API 475
execute 348
global resource information
list 348
macros 170
modify 348
maintaining 170
standard 348
global resources
versions 348
managing your own 97
DSPAPI macro
GROUP query
overview 345
output 404
duplicating DL/I updates 271
overview 404
parameters 404
E return codes 404
syntax 404
ECB 95
ECB (z/OS event control block), using with client request 4
editing options H
MFS-SCS1 531
HLQ request
End of Job log record 274, 288
IMS catalog API 465
environment
Index 545
Operations Manager (continued) QUERY request (continued)
requests (continued) output (continued)
command response 157 LOG 411
CSLOMCMD 107 OLDS 420
CSLOMQRY 125 RECON status 431
Operations Manager (OM) SUBSYS 435
AOP clients 130 output from 372
client requests 107 overview
interpreting output 132 SUBSYS 435
output 132 parameters
registering a client 100 BACKOUT 373
requests DB 377
CSLOMI 116 DBDS 398
CSLOMREG 155 GROUP 404
unsolicited output 152 LOG 411
requests issued by AOP clients 130 OLDS 420
XML output 132, 241 PART 424
OPTWORD1 parameter 4 RECON status 431
SUBSYS 435
return codes
P BACKOUT 373
parameter DB 377
allocated output 233 DBDS 398
OPTWORD1 4 GROUP 404
parameters LOG 411
coding for DSPAPI macro 347 OLDS 420
DBRC application programming interface 347 PART 424
PART query RECON status 431
overview 424 SUBSYS 435
parameters 424 syntax
return codes 424 BACKOUT 373
syntax 424 DB 377
passing a value DBDS 398
for register 4 GROUP 404
for symbol 4 LOG 411
for symbol value 4 OLDS 420
passing an address PART 424
for register 4 RECON status 431
for symbol 4 SUBSYS 435
passing an equate for symbol value 4 types
performance tuning 11 BACKOUT 373
planning considerations 97 DB 377
prerequisite knowledge xi DBDS 398
problem state 95 GROUP 404
process step directive 203 LOG 411
process step response directive 204 OLDS 420
program PART 424
CSLULXCB 255 RECON status 431
program, assembling 4 query resources 189
Propagating captured data asynchronously query response directive 164
IMS support for 271 querying statistics 102
protocol queues
message 97 object on the cold queue 11
request 97 registering interest in 11
quiesce request 221
Q
R
QUERY request
general format of output 351 ready request 222
output ready state 101
BACKOUT 373 reason codes
DB 377 CSLRMDEL 172
GROUP 404 CSLRMPRI 177
CSLRMPRR 179
Index 547
requests (continued) return codes (continued)
Structured Call Interface CSLRMQRY 189
buffer return 208 CSLRMREG 193
CSLSCQSC 221 CSLRMUPD 197
CSLSCRDY 222 CSLSCBFR 208
CSLSCREG 224 CSLSCDRG 210
CSLSCRQR 231 CSLSCMSG 212
CSLSCRQS 233 CSLSCQRY 218
deregistration 210 CSLSCQSC 221
query 218 CSLSCRDY 222
send message 212 CSLSCREG 224
symbol name, using 4 CSLSCRQR 231
Resource Manager CSLSCRQS 233
clean up process 171 CSLZQRY 102
coordinating IMSplex-wide processes 171 CSLZSHUT 104
master 171 REXX SPOC API
requests autonomic computing 269
CSLRMPRR 179 batch job 267
CSLRMPRS 181 examples 266
CSLRMPRT 187 preparing the environment 255
CSLRMUPD 197 retrieving command responses 257
registering clients 193 retrieving unsolicited messages 264
sequence in which to issue 169 sample program 265
Resource Manager (RM) samples 266
deregistering clients 176 setting up the IMSplex 255
failures 171 subcommands 255
registering a client 101 within a transaction 264
requests REXX SPOC program, sample 266
CSLRMDRG 176 RM (Resource Manager)
CSLRMPRI 177 registering a client 101
CSLRMQRY 189 RM client
CSLRMREG 193 writing for CSL 97
deleting resources 172
maintaining global resource information 170
process respond 179
S
process step 181 SCI (Structured Call Interface)
terminate process 187 CSL managers registering to 99
updating resources 197 environmental requirements 95
respond to a process 179 exit routines
return and reason codes whether to use 97
client requests 9 ready state 101
CQSBRWSE request 15 registered state 101
CQSCHKPT request 22 registering to 99
CQSCONN request 25 requests, advanced 208
CQSDEL request 30 sequence of requests 207
CQSDEREG request 35 TCB association 97
CQSDISC request 37 SCS (SNA character string) controls
CQSINFRM request 41 format controls 531
CQSMOVE request 45 function code assignments 531
CQSPUT request 49 secondary half session 516
CQSQUERY request 56 sequence of requests 4
CQSREAD request 64 SETS and ROLS Call log record 277
CQSRECVR request 70 SETS and ROLS call log records 279, 288
CQSREG request 73 shutting down CQS 11
CQSRSYNC request 76 SLU 1
CQSSHUT request 82 bind parameters 523
CQSUNLCK request 83 SLU 2
CQSUPD request 88 bind parameters 525
return codes SLU P
CSLRMDEL 172 session parameters 509
CSLRMPRI 177 SNA (systems network architecture) character string (SCS)
CSLRMPRR 179 controls 531
CSLRMPRS 181 SNA reference information 507
CSLRMPRT 187, 189 special events, handling 11
T
TCB association 97
terminate process 187
time stamp
format for DBRC requests 352
Tivoli NetView environment 255
tracing
DRA (database resource adapter) 340
Index 549
550 IMS: System Programming APIs
IBM®