The Reject_Conversation service rejects an inbound conversation.
A program can call this service to avoid processing a particular
inbound conversation. The caller must supply an appropriate sense
code (as an input parameter) to indicate the reason the conversation
was rejected. APPC/MVS resolves the sense code to a return code that
it passes to the partner transaction.
A program cannot reject a conversation if there has been any communication
activity performed on it. After the program has obtained the conversation
id (through the Get_Conversation, Receive_Allocate, or Accept_Conversation
service), only the following conversation services may be called before
calling Reject_Conversation:
- Get_Type (ATBGETT)
- Get_Attributes (ATBGETA, ATBGTA2)
- Extract_Conversation_Type (CMECT)
- Extract_Mode_Name (CMEMN)
- Extract_Sync_Level (CMESL)
- Extract_Partner_LU_Name (CMEPLN).
If a program attempts to reject a conversation that has had communication
activity, the Reject_Conversation service returns a return code of
atbcts_request_unsuccessful, and a reason code of atbcts_not_first_conv_call.
For protected conversations:
- The Deallocate_sense_code is ignored when a syncpt conversation
is rejected. A deallocated_abend_svc sense code (X'08640001') is used instead.
- The current UR is put into backout-required state.
- The current UR and subsequent units of recovery for the context
will not include the protected conversation being rejected by this
service.
Requirements
Authorization: |
Supervisor state or problem state, any PSW key |
Dispatchable unit mode: |
Task or SRB |
Cross memory mode: |
Any PASN, any HASN, any SASN |
AMODE: |
31-bit |
ASC mode: |
Primary or access register (AR) |
Interrupt status: |
Enabled for I/O and external interrupts |
Locks: |
Unlocked |
Control parameters: |
All parameters must be addressable by the caller and in the
primary address space. |
Format
Figure 1. ATBRJC2
- Reject_ConversationCALL ATBRJC2(
Notify_type,
Conversation_id,
Deallocate_sense_code,
Reason_code,
Return_code
);
Parameters
- Notify_type
- Supplied parameter
- Type: Structure
- Length: 4-8 bytes
Specifies the type of processing and notification requested
for this service (synchronous or asynchronous). The possible types
are:
- None
No notification is requested. The service is performed
synchronously, and control is returned to the caller when processing
is complete. All returned parameters are set on return to the caller.
To specify no notification, set the parameter value to a four-byte
structure containing binary zeroes.
- ECB
Programs can request asynchronous processing by specifying
an ECB to be posted when processing completes. To specify an ECB,
set the parameter to an eight-byte structure containing a fullword
binary one (X'00000001') followed by the address of a fullword
area to be used as the ECB. The ECB must reside in the home address
space.
When you specify an ECB, control is returned before
processing is complete, with only the return code set. If the asynchronous
request was accepted, the return code is set to 0 to indicate that
the service is being processed asynchronously. Other returned parameters
are filled in during asynchronous processing, and the specified ECB
is posted when all returned parameters are set. The completion code
field in the ECB contains the return code for the service. The reason
code, if any, is set in the caller's Reason_code parameter.
- Conversation_id
- Supplied parameter
- Type: Character string
- Char Set: No restriction
- Length: 8 bytes
Conversation_id, sometimes called the resource identifier,
identifies a conversation to the system.
- Deallocate_sense_code
- Supplied parameter
- Type: Integer
- Length: 4 bytes
Deallocate_sense_code specifies the sense code to be sent
(as a return code) to the partner transaction program.
The
sense code can be coded as an explicit hexadecimal value or as a symbolic.
Valid values for this parameter are:
- Value (hex)
- Meaning
- X'084B6031'
- Atbcts_TP_Not_Available_Retry
Specifies that the conversation
should be abnormally ended with an indication that the requested TP
is not available. The partner may attempt to retry the request.
- X'084C0000'
- Atbcts_TP_Not_Avail_No_Retry
Specifies that the conversation
should be abnormally ended with an indication that the requested TP
is not available. The partner should not attempt to retry the request.
- X'10086021'
- Atbcts_TPN_Not_Recognized
Specifies that the conversation
should be abnormally ended with an indication that the requested TP
name is not recognized.
- X'080F6051'
- Atbcts_Security_Not_Valid
Specifies that the conversation
should be abnormally ended with an indication that a security violation
was detected.
- X'10086041'
- Atbcts_Sync_Lvl_Not_Spprtd_Pgm
Specifies that the conversation
should be abnormally ended with an indication that the specified synchronization
level is not supported.
- X'10086034'
- Atbcts_Conv_type_mismatch
Specifies that the conversation
should be abnormally ended with an indication that the conversation
type is not supported.
- Reason_code
- Returned parameter
- Type: Integer
- Length: 32 bits
Reason_code contains additional information about the result
of the call when the return_code parameter contains a nonzero value
other than atbcts_appc_not_available.
Table 1 lists the valid reason codes.
- Return_code
- Returned parameter
- Type: Integer
- Length: 32 bits
Return_code specifies the result of the call. If the return_code
parameter contains zero or 64 (decimal), there is no reason code.
For other return codes, check the reason_code parameter for additional
information about the result of the call.
The following table
lists the possible return and reason codes, their symbolic equates,
and their meanings, for the Reject_Conversation service.
Table 1. Return and Reason Codes
for Reject_ConversationReturn Code (Decimal) |
Reason Code (Decimal) |
Symbolic and Meaning |
---|
0 |
— |
atbcts_ok The service completed as requested.
|
8 |
All |
atbcts_parameter_error A user-supplied parameter was found
to be in error. For example, a parameter contains characters not
in the required character set. See the reason_code parameter to determine
which parameter is in error.
|
8 |
18 |
atbcts_inval_notify_type The specified notify type is not
valid.
|
8 |
22 |
atbcts_inval_conversation_id The specified conversation
identifier does not represent an active conversation for this address
space.
|
8 |
23 |
atbcts_inval_sense_code The specified sense code is not
valid or not supported.
|
16 |
All |
atbcts_request_unsuccessful The service was unsuccessful.
The cause is most likely a parameter error other than a syntax error,
or an environmental error. For example, a syntactically valid LU name
was specified, but the LU is not defined to APPC/MVS. An example of
an environmental error is that the caller called the service while
holding locks. See the Reason_code parameter for the specific cause
of the error, and to determine whether the error can be corrected
and the service reissued.
|
16 |
8 |
atbcts_cannot_hold_locks The caller held one or more locks
when calling the service.
|
16 |
24 |
atbcts_not_first_conv_call Reject_Conversation was called
for a conversation that has already had a communication service issued
on it.
|
16 |
25 |
atbcts_not_inbound_conv The specified conversation is not
an inbound conversation.
|
16 |
40 |
atbcts_conv_inaccessible The specified conversation is
currently in use by another process.
|
32 |
All |
atbcts_service_failure APPC/MVS service failure. Record
the return and reason code, and give them to your systems programmer,
who should contact the appropriate IBM support personnel.
|
32 |
16 |
atbcts_appc_service_failure The service failed because
of an APPC failure.
APPC provides symptom records for this
type of error. For more information, see the appendix that explains
return and reason codes in z/OS MVS Programming: Writing Servers for APPC/MVS.
|
64 |
— |
atbcts_appc_not_available APPC/MVS is not currently active.
Call the service again after APPC is available.
|
Restrictions
Transaction programs that
call the Reject_Conversation service while in task mode should not
have any enabled unlocked task (EUT) functional recovery routines
(FRRs) established. For more information about EUT FRRs, see the
section on providing recovery in z/OS MVS Programming: Authorized Assembler Services Guide.