z/OS Communications Server: SNA Programmer's LU 6.2 Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


APPCCMD CONTROL=RCVEXPD, QUALIFY=ISPEC

z/OS Communications Server: SNA Programmer's LU 6.2 Reference
SC27-3670-00

Purpose

This macroinstruction receives expedited information immediately available on a specified conversation. VTAM® will not wait for expedited information to arrive to satisfy the macroinstruction request.

Usage

A Request_To_Send_Received indication is sufficient to successfully complete this macroinstruction. The conversation mode (CONXMOD) for expedited data may be either CA or CS. If a Request_To_Send_Received indication and expedited data are present then both will be returned to the application. The settings of the SIGRCV and SIGDATA returned parameter fields will indicate whether a Request_To_Send_Received indication (Signal Data) was received on the conversation. When expedited data is available on the conversation, VTAM copies the data into the data area that is specified on the AREA parameter and completes the macroinstruction.

If expedited information is not available, an RCPRI, RCSEC combination of X'0000', X'0008', NO_IMMEDIATELY_AVAILABLE_INFORMATION is returned to the application.

The application must receive the entire amount of expedited data available. If the length of the area specified by the application is not sufficient to receive all the expedited data available, an RCPRI, RCSEC combination of X'002C', X'0008', PARAMETER_ERROR—SUPPLIED_LENGTH_INSUFFICIENT is returned to the application.

If this macroinstruction is issued while another RCVEXPD macroinstruction is currently outstanding for the specified conversation, an RCPRI, RCSEC combination of X'002C', X'0011', PARAMETER_ERROR— PREVIOUS_MACROINSTRUCTION_OUTSTANDING is returned to the application. The maximum amount of expedited data that can be received is 86 bytes.

If the RECEIVE EXPEDITED queue has been prohibited, then an RCPRI, RCSEC combination of X'00A0', X'0002', REQUEST_NOT_ALLOWED— REQUEST_BLOCKED is returned to the application. The RECEIVE EXPEDITED queue is prohibited when the conversation is in the process of being deallocated or terminated.

If the macroinstruction is issued for a conversation in PENDING_DEALLOCATE state, an RCPRI, RCSEC combination of X'0050', X'0000', STATE_ERROR is returned to the conversation.

If the conversation ends before this macroinstruction can process, an RCPRI, RCSEC combination of X'0000', X'0009', REQUEST_TERMINATED_ BY_END_OF_CONVERSATION is returned to the application.

This macroinstruction corresponds to the RECEIVE_EXPEDITED_DATA (IMMEDIATE) verb described in the LU 6.2 architecture.

Context

This macroinstruction can be issued from any conversation state except PENDING_DEALLOCATE, END_CONV, or FDX_RESET.

This macroinstruction is not allowed for conversations pending deallocation for persistent LU-LU sessions.

Syntax

Read syntax diagramSkip visual syntax diagram
                                                                      (1)   
>>-+---------+--APPCCMD-- --CONTROL--=--RCVEXPD--,--QUALIFY--=--ISPEC------>
   '-name-- -'                                                              

                                  (2)          
>--,--RPL--=--+-rpl_address_field----------+-------------------->
              '-(--rpl_address_register--)-'   

>--+-----------------------------------------------------------+-->
   |                                                       (3) |   
   '-,--AAREA--=--+-rpl_extension_address_field----------+-----'   
                  '-(--rpl_extension_address_register--)-'         

>--+-----------------------------------------------+------------>
   |                                           (3) |   
   '-,--ACB--=--+-acb_address_field----------+-----'   
                '-(--acb_address_register--)-'         

>--+------------------------------------------------------+----->
   |                                                  (3) |   
   '-,--AREA--=--+-data_area_address_field----------+-----'   
                 '-(--data_area_address_register--)-'         

>--+--------------------------------------------------------+--->
   |                                                    (3) |   
   '-,--AREALEN--=--+-data_area_length----------------+-----'   
                    '-(--data_area_length_register--)-'         

>--+---------------------------+-------------------------------->
   |                       (3) |   
   '-,--BRANCH--=--+-NO--+-----'   
                   '-YES-'         

>--+-------------------------------+---------------------------->
   |                           (1) |   
   '-,--CONMODE--=--+-BUFFCA-+-----'   
                    +-CS-----+         
                    +-LLCA---+         
                    '-SAME---'         

>--+---------------------------------------------------------+-->
   |                                                     (1) |   
   '-,--CONVID--=--+-32-bit_resource_id_field----------+-----'   
                   '-(--32-bit_resource_id_register--)-'         

>--+-----------------------------+------------------------------>
   |                         (1) |   
   '-,--CONXMOD--=--+-CA---+-----'   
                    +-CS---+         
                    '-SAME-'         

>--+-------------------------------------------------------------+-->
   |                                           (4) (3)           |   
   +-,--ECB--=--+-INTERNAL-------------------+-------------------+   
   |            +-ecb_address_field----------+                   |   
   |            '-(--ecb_address_register--)-'                   |   
   |                                                     (5) (3) |   
   '-,--EXIT--=--+-exit_routine_address_field----------+---------'   
                 '-(--exit_routine_address_register--)-'             

>--+-----------------------------------------------------+-----><
   |                 .-,----------------------------.    |   
   |                 V  (6)        (3)              |    |   
   '-,--OPTCD--=--(--------+-+-ASY-----+----------+-+--)-'   
                           | |     (3) |          |          
                           | '-SYN-----'          |          
                           |           (3) (7)    |          
                           '-+-KEEPSRB----------+-'          
                             |          (3) (8) |            
                             '-NKEEPSRB---------'            

Notes:
  1. Operand value might be placed in its RPL extension field either by specification on an ISTRPL6 macroinstruction operand or by explicitly setting the field using the ISTRPL6X DSECT.
  2. See Coding default values for information on coding operands on the RPL or the APPCCMD macroinstruction.
  3. Operand value might be placed in its RPL field either by specification on an RPL macroinstruction operand or by explicitly setting the field using the IFGRPL DSECT.
  4. ECB is meaningful only for asynchronous operations.
  5. EXIT is meaningful only for asynchronous operations.
  6. You can code more than one suboperand on OPTCD, but no more than one from each group.
  7. KEEPSRB is meaningful only for synchronous operations.
  8. NKEEPSRB is meaningful only for synchronous operations.

Input parameters

The following information shows descriptions of the input parameters:
AAREA=rpl_extension_address_field
AAREA=(rpl_extension_address_register)
Specifies the address of the LU 6.2 RPL extension that will be associated with this APPCCMD macroinstruction. This field is labeled RPLAAREA in the RPL.
ACB=acb_address_field
ACB=(acb_address_register)
Specifies the address of an access method control block that identifies the application program that is issuing the APPCCMD macroinstruction. VTAM associates conversations with application programs using the conversation ID (CONVID). The application program associates conversations with transaction programs. Application programs cannot issue APPCCMD macroinstructions in address spaces other than the ACB address space. This field is labeled RPLDACB in the RPL.
AREA=data_area_address_field
AREA=(data_area_address_register)
Specifies the data area in which the application program is to receive the data. When the application program receives information other than data, as indicated by the WHATRCV field of the RPL extension, nothing is placed in this data area. This field is labeled RPLAREA in the RPL.
AREALEN=data_area_length
AREALEN=(data_area_length_register)
Specifies the length value that is the maximum amount of data the application program is to receive. This field is labeled RPLBUFL in the RPL.
BRANCH
Specifies whether authorized path processing is to be used for application programs running in supervisor state under a TCB. Application programs running in TCB-mode supervisor state can use BRANCH=YES to obtain authorized path services. The indicator resides within the RPLEXTDS field of the RPL.
BRANCH=NO
Authorized path processing is not to be used. For application programs running in problem state (non-supervisor state) under a TCB, BRANCH=NO is the only option.
BRANCH=YES
Authorized path processing is to be used. For application programs running under an SRB rather than under a TCB, the macroinstruction is processed in this manner automatically, regardless of the actual setting of the BRANCH field.
CONMODE
Specifies the mode for receiving normal information upon completion of the APPCCMD. This field is labeled RPL6CMOD in the RPL extension.
CONMODE=BUFFCA
Specifies that the conversation is to be placed in buffer-continue-any mode. It indicates that APPCCMD CONTROL=RECEIVE, QUALIFY=ANY|IANY can be used to receive data and that the application program is to receive data independently of the logical-record format of the data. BUFFCA corresponds to FILL=BUFFER on the APPCCMD CONTROL=RECEIVE, QUALIFY=SPEC|ISPEC macroinstruction.
CONMODE=CS
Specifies that the conversation is to be placed in continue-specific mode. It indicates that only APPCCMD CONTROL=RECEIVE, QUALIFY=SPEC|ISPEC can be used to receive data on this conversation. When the application program issues APPCCMD CONTROL=RECEIVE, QUALIFY=SPEC|ISPEC, it must indicate whether the data is to be received in terms of the logical-record format of the data or independently of the logical-record format of the data.
CONMODE=LLCA
Specifies that the conversation is to be placed in logical-record-continue-any mode. It indicates that APPCCMD CONTROL=RECEIVE, QUALIFY=ANY|IANY can be used to receive data on this conversation and that the application program is to receive data in terms of the logical-record format of the data. LLCA corresponds to FILL=LL on the APPCCMD CONTROL=RECEIVE, QUALIFY=SPEC|ISPEC macroinstruction.
CONMODE=SAME
Specifies that the continuation mode of the conversation is to remain unchanged.
CONVID
Specifies the resource ID of the conversation. This field is labeled RPL6CNVD in the RPL extension.
CONXMOD
Specifies the mode for receiving expedited information upon completion of the APPCCMD. This field is labeled RPL6CXMD in the RPL extension.
CONXMOD=CA
Specifies that the mode for expedited information is to be put in such a state that expedited information can be received by either a specific-type macroinstruction or an any-type macroinstruction, such as, APPCCMD CONTROL=RCVEXPD, QUALIFY=SPEC|ISPEC or APPCCMD CONTROL=RCVEXPD, QUALIFY=ANY|IANY.
CONXMOD=CS
Specifies that the mode for expedited information is to be put in such a state that expedited information can be received only by a specific-type macroinstruction, such as, APPCCMD CONTROL=RCVEXPD, QUALIFY=SPEC or ISPEC.
CONXMOD=SAME
Specifies that the conversation mode for expedited information is to remain unchanged at the completion of this macroinstruction.
ECB
Valid only if OPTCD=ASY. Specifies how the application program requests to be informed of the completion of the APPCCMD macroinstruction. You cannot specify both ECB and EXIT on a single APPCCMD macroinstruction. The indicator resides within the RPLOPT1 field of the RPL.
ECB=INTERNAL
Specifies that VTAM is to post an internal ECB when the APPPCCMD macroinstruction completes.
ECB=ecb_address_field
ECB=(ecb_address_register)
Specifies that VTAM is to post an event control block (ECB) when an asynchronous APPCCMD completes. Event_control_block_address is the location of the ECB to be posted. The ECB can be any fullword of storage aligned on a fullword boundary.
EXIT=exit_routine_address_field
EXIT=(exit_routine_address_register)
Valid only if OPTCD=ASY. It indicates the address of a routine to be scheduled when the APPCCMD completes. You cannot specify both ECB and EXIT on a single APPCCMD macroinstruction. The indicator resides within the RPLEXTDS field of the RPL.
OPTCD
Specifies the following processing options that can be selected for the macroinstruction request:
OPTCD=SYN
Specifies that control is to be returned synchronously to the application program when the function of the APPCCMD has completed. The indicator resides within the RPLOPT1 field of the RPL.
OPTCD=ASY
Specifies that control is to be returned to the application program immediately and that the application program is to be informed later of the completion of the macroinstruction by the posting of an ECB or the scheduling of an exit. The indicator resides within the RPLOPT1 field of the RPL.
OPTCD=KEEPSRB
Specifies that for a synchronous request issued in SRB mode, VTAM returns to the application under the same SRB in which VTAM was invoked. The indicator resides within the RPLOPT11 field of the RPL.
OPTCD=NKEEPSRB
Specifies that for a synchronous request issued in SRB mode, VTAM does not return to the application under the same SRB in which VTAM was invoked. The indicator resides within the RPLOPT11 field of the RPL.
RPL=rpl_address_field
RPL=(rpl_address_register)
Specifies the address of the request parameter list that contains information to be used during the processing of the APPCCMD macroinstruction.

RPL and RPL extension fields modified by macroinstruction

The following information shows descriptions of RPL and RPL extension fields:
CONSTATE
The field in the RPL6 extension that indicates the state of the conversation. This field is labeled RPL6CCST in the RPL extension.
For half-duplex conversations, this field can have the following values:
X'01'
SEND
X'02'
RECEIVE
X'03'
RECEIVE_CONFIRM
X'04'
RECEIVE_CONFIRM_SEND
X'05'
RECEIVE_CONFIRM_DEALLOCATE
X'06'
PENDING_DEALLOCATE
X'07'
PENDING_END_CONVERSATION_LOG
X'08'
END_CONVERSATION
X'09'
PENDING_SEND
X'0A'
PENDING_RECEIVE_LOG
For full-duplex conversations, this field can have the following values:
X'80'
FDX_RESET
X'81'
SEND/RECEIVE
X'82'
SEND_ONLY
X'83'
RECEIVE_ONLY
X'84'
PENDING_SEND/RECEIVE_LOG
X'85'
PENDING_RECEIVE-ONLY_LOG
X'86'
PENDING_RESET_LOG
EXPDLEN
The field in the RPL6 that shows the length of the expedited data waiting to be received. This field has meaning only when EXPDRCV=YES. This field is labeled RPL6EXDL in the RPL extension.
EXPDRCV
The field in the RPL6 that indicates whether expedited data is waiting to be received. This field is labeled RPL6EXDR in the RPL extension.
FDB2
The field in the RPL in which a global VTAM secondary return code is returned to the application program. It is labeled RPLFDB2 in the RPL.
FMH5LEN
The field in the RPL extension that returns the length of the FMH-5 waiting to be received by the application program. If multiple FMH-5s are waiting to be received, FMH5LEN specifies the length of the longest FMH-5 to be received by the application program. This field has meaning only when FMH5RCV=YES. This field is labeled RPL6MH5L in the RPL extension.
FMH5RCV
The field in the RPL extension that returns an indication of whether an FMH-5 has been received. The indication is either YES or NO (RPL6RMH5 set on or off). This field is labeled RPL6RMH5 in the RPL extension.
YES (B'1')
One or more FMH-5s have been received from partner application programs. The FMH5RCV field continues to be set to YES as long as an FMH-5 is waiting to be received by the application program. The application program must issue APPCCMD CONTROL=RCVFMH5 in order to receive an FMH-5.
NO (B'0')
No FMH-5s are waiting to be received by the application program.
RCPRI
The field in the RPL extension in which an APPCCMD-specific primary return code is returned to the application program. This field has meaning only when RTNCD=X'00' and FDB2=X'0B'. This field is labeled RPL6RCPR in the RPL extension.
RCSEC
The field in the RPL extension in which an APPCCMD-specific secondary return code is returned to the application program. This field has meaning only when RTNCD=X'00' and FDB2=X'0B'. This field is labeled RPL6RCSC in the RPL extension. The combination of the RCPRI and RCSEC fields indicates the result of the macroinstruction processing.
RECLEN
The field in the RPL that returns to the application program the actual amount of expedited data the application program received. The value returned will always be less than or equal to the value specified for AREALEN. This value will be set to 0 if the macroinstruction is being completed because of a REQUEST_TO_SEND being received.
RTNCD
The field in the RPL in which a global VTAM primary return code is returned to the application program. This field is labeled RPLRTNCD in the RPL.
SIGDATA
The field in the RPL extension in which the signal code and signal extension fields of a received SIGNAL RU are returned to the application program. This field has meaning only when SIGRCV=YES. This field is labeled RPL6SGNL in the RPL extension.

X'00010001' indicates a REQUEST_TO_SEND notification has been received from the remote application program.

SIGRCV
The field in the RPL extension that returns an indication of whether an application program's partner has requested permission to send. This field and the SIGDATA field correspond to the REQUEST_TO_SEND_RECEIVED parameter described in the LU 6.2 architecture. The indication is either YES or NO (RPL6RSIG bit set on or off). It is labeled RPL6RSIG in the RPL.
YES (B'1')
A SIGNAL RU has been received from the partner LU. The values carried in the signal code and signal extension fields of the SIGNAL RU are returned to the application program in the SIGDATA field.
NO (B'0')
No SIGNAL RU has been received from the partner LU. When SIGRCV=NO, the SIGDATA field contains no meaningful information.
USERFLD
Specifies 4 bytes of user data that the application program requests be associated with a conversation. Whenever an APPCCMD completes, VTAM places in the USERFLD field of the RPL extension the 4 bytes that were supplied on the APPCCMD CONTROL=ALLOC macroinstruction (if the conversation was initiated by the local application program) or the APPCCMD CONTROL=RCVFMH5 macroinstruction (if the conversation was initiated by a remote application program). This field is labeled RPL6USR in the RPL extension.

State changes

There are no state changes caused by the execution of this macroinstruction.

Return codes

The following (RCPRI, RCSEC) combinations can be returned to the application program when it issues this APPCCMD macroinstruction. See Return codes for a description of these return codes.

RCPRI RCSEC Meaning
X'0000' X'0000' OK
X'0000' X'0008' NO_IMMEDIATELY_AVAILABLE_INFORMATION
X'0000' X'0009' REQUEST_TERMINATED_BY_END_OF_CONVERSATION
X'002C' X'0002' PARAMETER_ERROR—INVALID_CONVERSATION_ID
X'002C' X'0008' PARAMETER_ERROR—SUPPLIED_LENGTH_ INSUFFICIENT
X'002C' X'000C' PARAMETER_ERROR—ZERO_EXIT_FIELD
X'002C' X'000D' PARAMETER_ERROR—ZERO_ECB_FIELD
X'002C' X'000E' PARAMETER_ERROR—REQUEST_INVALID_FOR_ ADDRESS_SPACE
X'002C' X'000F' PARAMETER_ERROR—CONTROL_BLOCK_INVALID
X'002C' X'0010' PARAMETER_ERROR—INVALID_DATA_ADDRESS_ OR_LENGTH
X'002C' X'0011' PARAMETER_ERROR—PREVIOUS_MACROINSTRUCTION_ OUTSTANDING
X'002C' X'0032' PARAMETER_ERROR— UNEXPECTED_VECTOR_PROVIDED_ON_APPCCMD
X'0050' X'0000' STATE_ERROR
X'0070' X'0000' TEMPORARY_STORAGE_SHORTAGE_OR_RESOURCE_ SHORTAGE
X'0078' X'0000' VTAM_INACTIVE_FOR_YOUR_ACB
X'007C' X'0000' REQUEST_ABORTED
X'0090' X'0000' APPLICATION_NOT_APPC_CAPABLE
X'00A0' X'0002' REQUEST_NOT_ALLOWED—REQUEST_BLOCKED
X'00A8' X'0000' ENVIRONMENT_ERROR_OS_LEVEL_DOES_NOT_SUPPORT_ REQUESTED_FUNCTION
X'00A8' X'0001' ENVIRONMENT_ERROR—SUSPEND_FAILURE
X'00A8' X'0002' ENVIRONMENT_ERROR—RESUME_FAILURE

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014