CONTROL BLOCK NAME = DFHNQUEC
DESCRIPTIVE NAME = CICS TS EXEC argument list for ENQ/DEQ
user exits.
Licensed Materials - Property of IBM
Restricted Materials of IBM
5655-Y04
(C) Copyright IBM Corp. 1997
Although provided in a general library, DFHNQUED is not
to be used as a general programming interface. Refer to
product documentation to determine intended usage.
The following fields are part of the Product-sensitive
Programming Interface.
NQ_ADDR0
NQ_ADDR1
NQ_ADDR2
NQ_ADDR3
NQ_GROUP
NQ_FUNCT
NQ_BITS1
NQ_BITS2
NQ_EIDOPT5
NQ_EIDOPT6
NQ_EIDOPT7
NQ_EIDOPT8
NQ_ENQ
NQ_DEQ
NQ_RESOURCE
NQ_LENGTH
NQ_MAXLIFETIME
All equates for values of EIBRCODE, EIBRESP and EIBRESP2
form part of the General-purpose Programming Interface.
All remaining fields used in defining the Exec Parameter
List are product sensitive and may vary between CICS
releases.
FUNCTION =
To define the EXEC parameter list for ENQ/DEQ
requests, for use by global user exit programs at exit
points XNQEREQ and XNQEREQC.
On entry to the XNQEREQ and XNQEREQC User Exits, the EXEC
parameter list is pointed to by UEPCLPS.
The EXEC parameter list for ENQ/DEQ consists of four
addresses.
The four addresses are defined by NQ_ADDR0 to NQ_ADDR3.
This DSECT defines these addresses and the areas that
they point to.
On entry to the XNQEREQ and XNQEREQC User Exits, the copy
of EIBRCODE is pointed to by UEPRCODE, the copy of EIBRESP
is pointed to by UEPRESP and the copy of EIBRESP2 is
pointed to by UEPRESP2.
This DSECT also contains equates for values of EIBRCODE,
EIBRESP and EIBRESP2 used by ENQ/DEQ.
LIFETIME = Lifetime of the NQ command request
STORAGE CLASS = As the storage being mapped is the translated
source in the user's application program, the
storage may be either above or below the line.
LOCATION = (1) EXEC Parameter List is addressed by UEPCLPS.
(2) Fields copied from the EIB are addressed by
UEPRCODE, UEPRESP and UEPRESP2.
(3) The token for use in communicating between
XNQEREQ and XNQEREQC is addressed by UEPNQTOK.
INNER CONTROL BLOCKS =
NQ_ADDR_LIST declares the EXEC addresses.
NQ_EID defines the EID pointed to by NQ_ADDR0.
NOTES :
DEPENDENCIES = S/370 ESA
RESTRICTIONS = None
MODULE TYPE = Control Block definition
-----------------------------------------------------------------
EXTERNAL REFERENCES =
None.
DATA AREAS =
None.
CONTROL BLOCKS =
None.
GLOBAL VARIABLES (Macro pass) =
None.
-----------------------------------------------------------------
The command parameter list is a list of addresses
which reference the argument values for this EXEC CICS
command. The addresses are only valid if the argument is
applicable to this command.
The existence bits in the EID component (NQ_BITS1) specify
those addresses that are valid, and the flagword bits
(NQ_EIDOPT5 - NQ_EIDOPT7) specify the keywords that were given
in the EXEC CICS command.
Therefore, you can deduce the useage of each address by testing
these bits in conjunction with the command function(NQ_FUNCT).
Table 1.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
16 |
NQ_ADDR_LIST |
NQ_ADDR_LIST consists of |
(0) |
ADDRESS |
4 |
NQ_ADDR0 |
the EID |
(4) |
ADDRESS |
4 |
NQ_ADDR1 |
RESOURCE |
(8) |
ADDRESS |
4 |
NQ_ADDR2 |
LENGTH |
(C) |
ADDRESS |
4 |
NQ_ADDR3 |
MAXLIFETIME |
NQ_EID (addressed by NQ_ADDR0) gives the command function, and
contains the existence and flagword bits.
Note: Equates for NQ_GROUP, NQ_FUNCT, EIBRCODE, EIBRESP and
EIBRESP2 values are defined at the end of this data structure.
Table 2.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
8 |
NQ_EID |
(0) |
CHARACTER |
1 |
NQ_GROUP |
'12'X for ENQ/DEQ |
(1) |
CHARACTER |
1 |
NQ_FUNCT |
'04'X for ENQ |
'06'X for DEQ
-----------------------------------------------------------------
The existence bits (NQ_BITS1) specify the parameters that are
valid for this command.
For example, NQ_EXIST2 set on indicates that NQ_ADDR2 is valid,
meaning that it addresses a LENGTH value.
NQ_ADDR0 is always valid and has no existence bit.
-----------------------------------------------------------------
|
(2) |
BIT(8) |
1 |
NQ_BITS1 |
(2) |
1... .... |
|
NQ_EXIST1 |
(2) |
1... .... |
|
NQ_RESOURCE_V |
(2) |
.1.. .... |
|
NQ_EXIST2 |
(2) |
.1.. .... |
|
NQ_LENGTH_V |
(2) |
..1. .... |
|
NQ_EXIST3 |
(2) |
..1. .... |
|
NQ_MAXLIFETIME_V |
(2) |
...1 1111 |
|
* |
Reserved |
(3) |
BIT(16) |
2 |
* |
Reserved |
-----------------------------------------------------------------
The next 3 bytes (NQ_EIDOPT5 - NQ_EIDOPT7) are the flagword
bits.
A user exit program at XNQEREQ can set the NQ_NOSUSPEND_X
bit for an ENQ command.
-----------------------------------------------------------------
|
(5) |
BIT(8) |
1 |
NQ_EIDOPT5 |
(5) |
BIT(8) |
1 |
* |
Reserved |
(6) |
BIT(8) |
1 |
NQ_EIDOPT6 |
(6) |
BIT(8) |
1 |
* |
Reserved |
(7) |
BIT(8) |
1 |
NQ_EIDOPT7 |
(7) |
1111 1... |
|
* |
Reserved |
(7) |
.... .1.. |
|
NQ_NOSUSPEND_X |
NOSUSPEND specified. |
(7) |
.... ..11 |
|
* |
Reserved |
The following definitions are for the rest of the arguments in
the EXEC parameter list, addressed by NQ_ADDR1 - NQ_ADDR3 in
NQ_ADDR_LIST.
Table 3.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
* |
NQ_DATA1 |
(0) |
CHARACTER |
* |
NQ_RESOURCE |
the RESOURCE |
Table 4.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
2 |
NQ_DATA2 |
(0) |
HALFWORD |
2 |
NQ_LENGTH |
the LENGTH |
Table 5.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
4 |
NQ_DATA3 |
(0) |
FULLWORD |
4 |
NQ_MAXLIFETIME |
the MAXLIFETIME |
Table 6.
Len |
Type |
Value |
Name |
Description |
Equate for NQ_GROUP.
All ENQ/DEQ requests have group code '12'
|
1 |
HEX |
12 |
NQ_ENQDEQ_GROUP |
Equates for NQ_FUNCT values.
|
1 |
HEX |
04 |
NQ_ENQ |
Enq |
1 |
HEX |
06 |
NQ_DEQ |
Deq |
Start of General Use Programming Interface.
Equates for EIBRCODE values used by Enq/Deq.
|
1 |
HEX |
00 |
NQ_OK_EIBRCODE |
1 |
HEX |
E0 |
NQ_INVREQ_EIBRCODE |
1 |
HEX |
E1 |
NQ_LENGERR_EIBRCODE |
1 |
HEX |
32 |
NQ_ENQBUSY_EIBRCODE |
Equates for EIBRESP values used by Enq/Deq.
|
1 |
DECIMAL |
0 |
NQ_OK_EIBRESP |
1 |
DECIMAL |
16 |
NQ_INVREQ_EIBRESP |
1 |
DECIMAL |
22 |
NQ_LENGERR_EIBRESP |
1 |
DECIMAL |
55 |
NQ_ENQBUSY_EIBRESP |
Equates for EIBRESP2 values used by Enq/Deq
|
1 |
DECIMAL |
0 |
NQ_OK_EIBRESP2 |
OK |
1 |
DECIMAL |
1 |
NQ_LENGERR_EIBRESP2 |
LENGERR |
1 |
DECIMAL |
2 |
NQ_INVREQ_EIBRESP2 |
INVREQ *-*-**-**-**-**-**-**-**-**-* *-*-**-**-**-**-**-**-**-**-* *-*-* End of General Use **-* *-* Programming Interface *-* *-*-*-**-**-**-**-**-**-*-*-* |