Exit parameter block DSECT
This topic displays the Assembler exit parameter block DSECT.
* YOU MAY NOT MODIFY THE FIELDS IN FRONT OF THE USER AREA
*
* NOTE THAT THE UNLOAD USER EXIT PARM BLOCK IS UNIQUE FOR EACH
* INVOCATION OF THE EXIT. ANY ADDRESSES STORED INTO/MODIFICATIONS
* MADE TO THE USER PORTION OF THIS Control BLOCK ARE NOT SHARABLE
* IN A MULTITASKING ENVIRONMENT.
**********************************************************************
*
ADUEXITP DSECT , PARMS PASSED TO EXIT
XPFUNC DS F 0 = PROCESS, 1 = INIT, 2=TERMINATE
XPSQLDA@ DS F A(SQLDA) FOR THIS TABLE
XPTABLE@ DS F A(TABLE NAME BEING UNLOADED)
* THE ABOVE POINTS TO 128 BYTE CREATOR, FOLLOWED BY 128 BYTE NAME
DS H RESERVED FOR UNLOAD PLUS
XPREF# DS H BLOCK REFERENCE#
XPSSID@ DS F A(SSID) 4 BYTES
XPUSER@ DS F A(USERID) 8 BYTES
XPUTID@ DS F A(UTILITY ID) 16 BYTES
DS 6F RESERVED FOR UNLOAD PLUS
*
** USER AREA
*
* XPUSRMSG CONTAINS A SINGLE MESSAGE ENTRY. ON RETURN FROM THE EXIT,
* IF THIS FIELD IS NON-BLANK, IT IS PRINTED THEN BLANKED.
*
* XPUSRMS@ POINTS TO A MESSAGE BUFFER THAT CAN CONTAIN MULTIPLE EXIT
* MESSAGES OF EQUAL LENGTH. THESE MESSAGE(S) WILL BE
* PRINTED AFTER XPUSRMSG (IF ANY).
* FORMAT OF THE MESSAGE BUFFER AT THIS ADDRESS IS:
*
* #MSGS DS H NUMBER OF LINES, 0 = NO PRINT
* MSGSIZE DS H SIZE OF EACH LINE (MAX = 100)
* MSGTEXT DS CL(#MSGS*MSGSIZE) USER MESSAGES
*
XPUSERW@ DS F USER WORK AREA ADDRESS
XPUSERF1 DS F USER FIELD
XPUSERF2 DS F USER FIELD
XPUSERF3 DS F USER FIELD
XPUSERF4 DS F USER FIELD
XPUSERM@ DS F USER MESSAGE BUFFER ADDRESS
XPUSERM$ DS F USER MESSAGE BUFFER TOTAL SIZE
XPUSRMSG DS CL100 USER SINGLE MESSAGE AREA
*
XPFLAGS DS X VARIOUS FLAGS FOR EXIT
XPFDEBUG EQU X'01' DEBUG IS ON
DS X
*
** USER WORK SPACE
*
XPUSER DS 0F USER WORK AREA
*
XPUSRPAD DS (1024-(*-ADUEXITP))C PADDING
XPUSER$ EQU *-XPUSER
XP$ EQU *-ADUEXITP
The following table explains the major DSECT fields and their uses:
Field | Description |
---|---|
XPSQLDA@ | Address of the pseudo-SQLDA for this table as shown in Pseudo-SQLDA DSECT For each table that UNLOAD PLUS unloads, this control block describes the column names, data types, and pointers to the column data within the output record being unloaded. This control block is identical in format to a Db2 SQLDA, and is used in much the same way. |
XPTABLE@ | Pointer to the name of the table being unloaded This name field allows for a 128-byte creator name, followed by a 128-byte table name. |
XPREF# | Exit reference number Each table being unloaded gets its own copy of a user parameter block and an SQLDA. The XPREF# is incremented to provide a unique reference number. |
XPSSID@ | Pointer to a 4-byte field containing the SSID value |
XPUSER@ | Pointer to an 8-byte field containing the user ID of the user executing the UNLOAD PLUS utility |
XPUTID@ | Pointer to the 16-byte utility ID |
XPUSRMSG | A 100-byte message field to use when issuing a simple message On return from any function call, if this field is nonblank, UNLOAD PLUS issues message BMC51635I identifying the exit name, exit reference number, and this message text. This field is blank after processing. |
XPUSERM@ | Pointer to a user-defined message buffer that may contain multiple messages of equal length Any messages to which this address points are printed after the XPUSRMSG message. The format of the message buffer pointed to is #MSGS DS H NUMBER OF LINES, 0 = NO PRINT MSGSIZE DS H SIZE OF EACH LINE (MAX = 100) MSGTEXT DS CL(#MSGS*MSGSIZE) USER MESSAGES |
XPUSERM$ | Must be set to the size of the user message buffer pointed to by XPUSERM@ |