z/OS MVS Programming: Writing Transaction Programs for APPC/MVS
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Deallocate

z/OS MVS Programming: Writing Transaction Programs for APPC/MVS
SA23-1397-00

Equivalent to:
  • LU 6.2 (MC_)Deallocate
  • CPI Deallocate (CMDEAL)
Deallocates the specified conversation from the transaction program.

Requirements

Format

Figure 1. ATBDEAL - LU 6.2 Deallocate
CALL ATBDEAL(
        Conversation_id,
        Deallocate_type,
        Notify_type,
        Return_code
       );

Parameters

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_type
Supplied parameter
  • Type: Integer
  • Char Set: N/A
  • Length: 32 bits
Deallocate_type specifies the type of deallocation to be performed.
Valid values for this parameter are:
Value
Meaning
0
Deallocate_sync_level
Specifies to perform deallocation based on the synchronization level in effect for the conversation:
  • If the synchronization level is None, execute the function of the Flush service and deallocate the conversation normally.
  • If the synchronization level is Confirm, execute the function of the Confirm service; and if it is successful, deallocate the conversation normally.
  • If the synchronization level is syncpt, the deallocation is deferred until the program issues a Commit call. Upon successful completion of the Commit call, the system deallocates the conversation.

    If the Commit call is not successful or the program issues a Backout call, the system does not deallocate the conversation; instead, the conversation is restored to the state it was in at the previous synchronization point. (You can call Get_Attributes to determine the state of the conversation.) If there has not been a synchronization point since the allocation of this conversation, the conversation state for the TP that allocated this conversation is set to Send state.

1
Deallocate_flush
Specifies to execute the function of the Flush service and deallocate the conversation normally.
Note: You cannot specify Deallocate_flush for a conversation with a synchronization level of syncpt.
2
Deallocate_confirm
Specifies to execute the function of the Confirm service and if it is successful, deallocate the conversation normally.
Note: You cannot specify Deallocate_confirm for a conversation with a synchronization level of syncpt.
3
Deallocate_abend

Specifies to run the function of the Flush service and deallocate the conversation abnormally. Do not invoke deallocate_abend following a Post_on_Receipt. Transaction programs that issue Deallocate_abend after Post_on_Receipt might not regain control after issuing the deallocate.

Notify_type
Supplied parameter
  • Type: Structure
  • Char Set: N/A
  • Length: 4-8 bytes
Specifies the type of processing and notification (synchronous or asynchronous) requested for this service. Programs can request asynchronous processing, which returns control to the program immediately and later notifies the program by ECB when the service is complete. 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 zeros.

  • 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.

Return_code
Returned parameter
  • Type: Integer
  • Char Set: N/A
  • Length: 32 bits

Return_code specifies the return code that is returned to the local program. In cases where an error code is returned, the program should not examine any other returned variable associated with the call as nothing is placed in the variables.

See the next section for descriptions of return codes that can be returned to a caller of Deallocate.

Return Codes

If the Deallocate_type parameter contained the value Deallocate_sync_level and the synchronization level of the conversation is none, or if the Deallocate_type parameter contained the value Deallocate_flush or Deallocate_abend, possible values for Return_code are:
Decimal Value
Meaning
0
OK
20
Product_specific_error
24
Program_parameter_check
25
Program_state_check
If the Deallocate_type parameter contained the value Deallocate_sync_level and the synchronization level of the conversation is confirm, or if the Deallocate_type parameter contained the value Deallocate_confirm, possible values for Return_code are:
Value
Meaning
0
OK
3
Conversation_type_mismatch
5
PIP_not_specified_correctly
6
Security_not_valid
8
Sync_lvl_not_supported_pgm
9
TPN_not_recognized
10
TP_not_available_no_retry
11
TP_not_available_retry
17
Deallocated_abend
20
Product_specific_error
22
Program_error_purging
24
Program_parameter_check
25
Program_state_check
26
Resource_failure_no_retry
27
Resource_failure_retry
30
Deallocated_abend_SVC
31
Deallocated_abend_timer
33
SVC_error_purging
If the Deallocate_type parameter contained the value Deallocate_sync_level and the synchronization level of the conversation is syncpt, possible values for Return_code are:
Value
Meaning
0
OK
20
Product_specific_error
24
Program_parameter_check
25
Program_state_check

The following table describes all of the possible return codes for Deallocate:

Table 1. Return Codes for the Deallocate Service
Return Code Value, Meaning, and Action
0 Value: OK

Meaning: The call completed successfully.

System Action: If the call specified a Notify_type of ECB, APPC/MVS posts the ECB specified on the Notify_type parameter when APPC/MVS finishes processing the call asynchronously.

If the Deallocate_type parameter contained the value deallocate_sync_level and the synchronization level of the conversation is syncpoint, the system defers or does not perform the deallocation; see the Deallocate_type parameter description for more information.

Application Programmer Response: None required.

3 Value: Conversation_type_mismatch

Meaning: The partner LU rejected an allocate request. The local TP called the Allocate service and specified a value of Basic_conversation or Mapped_conversation on the Conversation_type parameter. The partner TP does not support the respective basic or mapped conversation protocol boundary.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: When requesting the allocate, change the Conversation_type parameter to specify a conversation type that the partner TP supports.

5 Value: PIP_not_specified_correctly

Meaning: The partner LU rejected an allocate request. The partner TP defined one or more initialization parameter (PIP) variables, which APPC/MVS does not support.

System Action: The system returns this return code on a call that occurs after the call to Allocate. The system does not return this code to callers of the CPI Communications Allocate call.

Application Programmer Response: Ask the partner system programmer to change the partner TP so it does not expect PIP data from the TP running on MVS.

6 Value: Security_not_valid

Meaning: The partner LU rejected an allocate request. The specified security information is not valid.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: See Diagnosing Problems with APPC/MVS TPs for methods to use to diagnose the return code. See Error_Extract for the Error_Extract calling format.

8 Value: Sync_lvl_not_supported_pgm

Meaning: The partner LU rejected an allocate request. The local TP specified a synchronization level (on the Sync_level parameter) that the partner TP does not support.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: See Allocate for an explanation of the Sync_level parameter. When requesting the allocate, ensure that the Sync_level parameter specifies a correct value.

9 Value: TPN_not_recognized

Meaning: The partner LU rejected an allocate request. The local TP specified a partner TP that the partner LU does not recognize.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: See the application programmer response for return code six for this service.

10 Value: TP_not_available_no_retry

Meaning: The partner LU rejected an Allocate request. The local TP specified a partner TP that is known to the partner LU, but the partner LU cannot start the TP. The condition is not temporary. The TP should not retry the Allocate request.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: See the application programmer response for return code six for this service.

11 Value: TP_not_available_retry

Meaning: The partner LU rejected an allocate request. The local TP specified a partner TP that the partner LU recognizes but cannot start. The condition might be temporary.

System Action: The system returns this return code on a call that occurs after the call to Allocate.

Application Programmer Response: Retry the Allocate request. If the error persists, see Diagnosing Problems with APPC/MVS TPs for methods to use to diagnose the return code. See Error_Extract for the Error_Extract calling format.

17 Value: Deallocated_abend

Meaning: A partner TP called the Deallocate service. The request specified a Deallocate_type of Deallocate_abend.

System Action: If the partner TP was in Receive state when it called Deallocate, the system purges information sent by the local TP that was not received by the partner TP. The system returns this return code to the local TP when it calls an APPC service in Send or Receive state.

Application Programmer Response: See the application programmer response for return code six for this service.

20 Value: Product_specific_error

Meaning: The system found a product-specific error.

System Action: The system might write symptom records, which describe the error, to the logrec data set.

Application Programmer Response: See Diagnosing Problems with APPC/MVS TPs for methods to use to diagnose the return code. See Error_Extract for the Error_Extract calling format. If necessary, see Diagnosing Product-Specific Errors for more information about product-specific errors.

22 Value: Program_error_purging

Meaning: A partner TP called the Send_Error service for a basic or mapped conversation. The conversation for the partner TP was in Receive or Confirm state.

System Action: The system returns this return code to the local TP when it calls an APPC service before sending any information. If the TP called Send_Error while in Receive state and before it received all the information that the partner TP sent, the system might purge the data. If the TP called Send_Error while in Receive or Confirm state but after it received all the information that the partner TP sent, the system does not purge the data.

Application Programmer Response: See the application programmer response for return code six for this service.

24 Value: Program_parameter_check
Meaning: The system detected a program parameter check. The call specified one of the following:
  • A Deallocate_type of deallocate_confirm, when the Sync_level for the conversation was sync_level_none
  • A Deallocate_type of deallocate_confirm, when the Sync_level for the conversation was syncpt
  • A Deallocate_type of deallocate_flush, when the Sync_level for the conversation was syncpt.

System Action: The system returns this return code to the caller of the APPC service in error.

Application Programmer Response: See the application programmer response for return code six for this service.

25 Value: Program_state_check

Meaning: The local TP called a service while running in a state in which the call is not valid. The TP should not examine any other returned variables associated with the call because nothing is placed in those variables.

System Action: The state of the conversation remains unchanged. For a list of states that are valid for each call, see APPC/MVS Conversation State Table. The conversation was in send state and the TP started, but the TP did not finish sending a logical record.

Application Programmer Response: See the application programmer response for return code six for this service.

26 Value: Resource_failure_no_retry

Meaning: An error caused the conversation to terminate. The condition is not temporary. The application should not try to run the transaction until the condition is corrected.

System Action: The system terminates the conversation.

Application Programmer Response: See the application programmer response for return code six for this service.

27 Value: Resource_failure_retry

Meaning: An error caused the conversation to terminate. The condition might be temporary.

System Action: The system terminates the conversation.

Application Programmer Response: Retry the transaction.

30 Value: Deallocated_abend_SVC

Meaning: The partner TP called Deallocate with a Deallocate_type of Deallocate_abend_SVC.

System Action: If the partner TP was in Receive state when it called Deallocate, the system purges all information that was sent by the local TP but was not yet received by the partner TP. The system returns this return code to the local TP when it calls a service while in Send or Receive state.

Application Programmer Response: See the application programmer response for return code six for this service.

31 Value: Deallocated_abend_timer

Meaning: A partner TP called the Deallocate service with a Deallocate_type of Deallocate_abend_timer.

System Action: If the partner TP was in Receive state when it called Deallocate, the system purges all information that was sent by the local TP but was not yet received by the partner TP. The system returns this return code to the local TP when it calls a service while in Send or Receive state.

Application Programmer Response: See the application programmer response for return code six for this service.

33 Value: SVC_error_purging

Meaning: A partner TP called the Send_Error service, and LU services on the partner LU specified a value of SVC for the type of call. The conversation for the partner TP was in Receive or Confirm state, and the call might have caused information to be purged.

System Action: The system normally returns this code to the local TP after the system sends some information to the partner TP. However, the system can also return this code to the local TP before it sends any information.

Application Programmer Response: See the application programmer response for return code six for this service.

Restrictions

Transaction programs that call the Deallocate 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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014