[z/OS]

Communications protocol return codes

The communication protocols used by IBM® MQ for z/OS® can issue their own return codes. Use these tables to identify the return codes used by each protocol.

The tables in this topic show the common return codes from TCP/IP and APPC/MVS returned in messages from the distributed queuing component:

If the return code is not listed, or if you want more information, see to the documentation mentioned in each table.

If the return code you received is X'7D0' or more, it is one of the MQRC_* return codes issued by IBM MQ. These codes are listed in API completion and reason codes.

TCP/IP UNIX System Services Sockets return codes

See the z/OS UNIX System Services Messages and Codes manual for more information and for further return codes.

Table 1. UNIX System Services sockets return codes
Return code (Hexadecimal) Explanation
0001 Error in the domain
0002 Result is too large
006F Permission is denied
0070 The resource is temporarily unavailable
0071 The file descriptor is incorrect
0072 The resource is busy
0073 No child process exists
0074 A resource deadlock is avoided
0075 The file exists
0076 The address is incorrect
0077 The file is too large
0078 A function call is interrupted
0079 The parameter is incorrect
007A An I/O error occurred
007B The file specified is a directory
007C Too many files are open for this process
007D Too many links occurred
007E The file name is too long
007F Too many files are open in the system
0080 No such device exists
0081 No such file, directory, or IPC member exists
0082 The exec call contained a format error ( DFSMS error)
0083 No locks are available
0084 Not enough space is available
0085 No space is left on the device, or no space is available to create the IPC member ID
0086 The function is not implemented
0087 Not a directory
0088 The directory is not empty
0089 The I/O control operator is inappropriate
008A No such device or address exists
008B The operation is not permitted
008C The pipe is broken
008D The specified file system is read only
008E The seek is incorrect
008F No such process or thread exists
0090 A link to a file on another file system was attempted
0091 The parameter list is too long, or the message to receive was too large for the buffer
0092 A loop is encountered in symbolic links
0093 The byte sequence is incorrect
0095 A value is too large to be stored in the data type
0096 OpenMVS kernel is not active
0097 Dynamic allocation error
0098 Catalog Volume Access Facility error
0099 Catalog obtain error
009C Process Initialization error
009D An MVS environmental or internal error has occurred
009E Bad parameters were passed to the service
009F HFS encountered a permanent file error
00A2 HFS encountered a system error
00A3 SAF/RACF® extract error
00A4 SAF/RACF error
00A7 Access to the OpenMVS version of the C RTL is denied
00A8 The password for the specified resource has expired
00A9 The new password specified is not valid
00AA A WLM service ended in error
03EA Socket number assigned by client interface code (for socket() and accept()) is out of range
03EB Socket number assigned by client interface code is already in use
03ED Offload box error
03EE Offload box restarted
03EF Offload box down
03F0 Already a conflicting call outstanding on socket
03F1 Request canceled using SOCKcallCANCEL request
03F3 SetIbmOpt specified a name of a PFS that either was not configured or was not a Sockets PFS
044C Block device required
044D Text file busy
044E The descriptor is marked nonblocking, and the requested function cannot complete immediately
044F Operation now in progress
0450 Operation already in progress
0451 Socket operation on a non-socket
0452 Destination address required
0453 The message is too large to be sent in a single transmission, as required
0454 The socket type is incorrect
0455 Protocol or socket option unavailable
0456 Protocol not supported
0457 Socket type not supported
0458 The referenced socket is not a type that supports the requested function
0459 Protocol family not supported
045A The address family is not supported
045B The address is already in use
045C Cannot assign requested address
045D Network is down
045E Network is unreachable
045F Network dropped connection on reset
0460 Software caused connection abort
0461 Connection reset by peer
0462 Insufficient buffer space available
0463 The socket is already connected
0464 The socket is not connected
0465 Cannot send after socket shutdown
0466 Too many references: Cannot splice
0467 Connection timed out
0468 The attempt to connect was rejected
0469 Host is down
046A No route to host
046B Too many processes
046C Too many users
046D Disk quota exceeded
046E Stale NFS file handle
046F Too many levels of remote in path
0470 Device is not a stream
0471 Timer expired
0472 Out of streams resources
0473 No message of the required type
0474 Trying to read unreadable message
0475 Identifier removed
0476 Machine is not on the network
0477 Object is remote
0478 The link has been severed
0479 Advertise error
047A srmount error
047B Communication error on send
047C Protocol error
047D Protocol error
047E Cross mount point
047F Remote address change
0480 The asynchronous I/O request has been canceled
0481 Socket send/receive gotten out of order
0482 Unattached streams error
0483 Streams push object error
0484 Streams closed error
0485 Streams link error
0486 Tcp error
Other See the OS/390® UNIX System Services Messages and Codes manual

APPC/MVS return codes

The tables in this section document the following return codes:

See the z/OS MVS Programming: Writing Transaction Programs for APPC/MVS and z/OS MVS Programming: Writing Servers for APPC/MVS documentation for more information.

APPC return codes

This table documents the return codes that can be returned from APPC/MVS in messages from the distributed queuing component if you are using APPC/MVS as your communications protocol. These return codes can be returned to the local program in response to a call.

Table 2. APPC return codes and their meanings
Return code (Hexadecimal) Explanation
00 The call issued by the local program ran successfully. If the call specified a Notify_type of ECB, the call processing is performed asynchronously, and the ECB is posted when the processing is complete.
01 The caller specified an allocate_type that was other than immediate. Either APPC/MVS can not establish a session with the partner LU, or VTAM can not establish the conversation. In this case (when allocate_type is immediate ), APPC/MVS converts this return code to unsuccessful.
02 The conversation cannot be allocated on a session because of a condition that might be temporary. The program can try again the allocation request. The system returns this code when the allocate_type specified on a CMALLOC verb is other then immediate.
03 The partner LU rejected the allocation request because the local program issued an Allocate call with the Conversation_type parameter set to either Basic_conversation or Mapped_conversation, and the partner program does not support the mapped or basic conversation protocol boundary. This return code is returned on a call made after the Allocate.
05 The partner LU rejected an ATBALLC or ATBALC2 (allocate) request because the partner program has one or more initialization parameter (PIP) variables defined. APPC/MVS does not support these parameters. This return code is returned on a call made after the Allocate. It is not returned for allocate requests made using CPI Communications.
06 The partner LU rejected the allocation request because the access security information is not valid. This return code is returned on a call subsequent to the Allocate.
08 The partner LU rejected the allocation request because the local program specified a synchronization level (with the Sync_level parameter) that the partner program does not support. This return code is returned on a call subsequent to the Allocate.
09 The partner LU rejected the allocation request because the local program specified a partner program that the partner LU does not recognize. This return code is returned on a call subsequent to the Allocate.
0A The partner LU rejected the allocation request because the local program specified a partner program that the partner LU recognizes but cannot start. The condition is not temporary, and the program should not try again the allocation request. This return code is returned on a call subsequent to the Allocate.
0B The partner LU rejected the allocation request because the local program specified a partner program that the partner LU recognizes but currently cannot start. The condition might be temporary, and the program can try again the allocation request. This return code is returned on a call subsequent to the Allocate.
11 The partner program issued a Deallocate call with a Deallocate_type of Deallocate_abend, or the partner LU has done so because of a partner program abnormal ending condition. If the partner program was in receive state when the call was issued, information sent by the local program and not yet received by the partner program is purged. This return code is reported to the local program on a call the program issues in Send or Receive state.
12 The partner program issued a Deallocate call on a basic or mapped conversation with a Deallocate_type of Deallocate_sync_level or Deallocate_flush. This return code is reported to the local program on a call the program issues in Receive state.
13 The local program issued a call specifying an argument that was not valid. Specific reasons for the return code apply to the following callable services:
ATBALC2 or ATBALLC (LU 6.2 Allocate)
  • The TP name was not 1 - 64 characters long
  • Either the SYMDEST name or the TP name length were not specified
  • SNASVCMG is specified as mode name
  • X'06' is used as the first character of a TP name
  • An SNA service TP name is used with a mapped conversation verb
  • The partner LU name was not valid
  • The mode name was not valid
  • The local LU name specified is either undefined or not permitted
CMALLC (CPI-C Allocate)
  • SNASVCMG is specified as mode name
  • X'06'is used as the first character of a TP name
  • An SNA service TP name is used with a mapped conversation verb
  • The mode name was not valid
14 A product-specific error has been detected. The system writes symptom records that describe the error to SYS1.LOGREC.
15 Indicates one of the following:
  • The partner program made a Send_error call on a mapped conversation and the conversation for the partner program was in Send state. No truncation occurs at the mapped conversation protocol boundary. This return code is reported to the local program on a Receive call before receiving any data records or after receiving one or more data records.
  • The partner program made a Send_error call specifying the Type parameter with a value of PROG, the conversation for the partner program was in Send state, and the call did not truncate a logical record. No truncation occurs at the basic conversation protocol boundary when a program performs a Send_error before sending any logical records, or after sending a complete logical record. This return code is reported to the local program on a Receive call before receiving any logical records or after receiving one or more complete logical records.
16 The partner program made a Send_error call on a mapped conversation, or made a Send_error call on a basic conversation specifying the Type parameter with a value of PROG, and the conversation for the partner program was in Receive or Confirm state. The call might have caused information to be purged. Purging occurs when a program issued Send_error in receive state before receiving all the information sent by its partner program. No purging occurs when a program issues the call in Confirm state or in Receive state after receiving all the information sent by its partner program. The return code is normally reported to the local program on a call it issues before sending any information, depending on the call and when it is made.
17 The partner program made a Send_error call specifying the Type parameter with a value of PROG, the conversation for the partner program was in Send state, and the call truncated a logical record. Truncation occurs at the basic conversation protocol boundary when a program begins sending a logical record and then makes a Send_error call before sending the complete logical record. This return code is reported to the local program on a Receive call it issues after receiving the truncated logical record.
18 The local program issued a call in which a programming error has been found in one or more parameters. Specific reasons for the return code apply to the following callable services:
ATBALC2 or ATBALLC (LU 6.2 Allocate)
  • An unauthorized caller passed a nonzero TP_ID
  • For Sec_pgm-type security, both the user ID and password were not specified
  • For Sec_Pgm-type security, a user ID was specified with a blank password, or a password was specified with a blank user ID
  • The SYMDEST name was not found in the side information
  • The specified TP_ID is not associated with the address space
  • An unauthorized caller specified a Notify_Type of ECB
ATBCFM (LU 6.2 Allocate)
  • An unauthorized caller specified a Notify_type of ECB
  • The Sync_Level field for the conversation was equal to sync_level_none
ATBDEAL (LU 6.2 Allocate)
  • A Deallocate_type of deallocate_confirm was specified, and the Sync_Level field for the conversation was equal to sync_level_none
ATBPTR (LU 6.2 Prepare to Receive)
  • A Prepare_To_Receive_Type of Prep_to_receive_sync_level was specified, and the Sync_Level field for the conversation was equal to sync_level_none
ATBSEND (LU 6.2 Send)
  • The value in the 2 byte LL field was not valid
  • A Send_Type of Send_and_Confirm was specified, and the Sync_Level field for the conversation was equal to sync_level_none
CMINIT (CPI-C Initialize Conversation)
The SYMDEST name was not found in the side information
19 The local program issued a call in a state that was not valid for that call. The program should not examine any other returned variables associated with the call as nothing is placed in the variables. The state of the conversation remains unchanged.
If the error occurs in one of the following callable services, the conversation was in send state and the program started, but the program did not finish sending a logical record:
  • ATBCFM (LU 6.2 Allocate)
  • ATBDEAL (LU 6.2 Allocate)
  • ATBPTR (LU 6.2 Allocate)
  • ATBRCVW and ATBRCVI (LU 6.2 Receive and Wait and Receive Immediate)
  • ATBSEND (LU 6.2 Send)
1A A failure occurred that caused the conversation to be prematurely terminated. The condition is not temporary, and the program should not try the transaction again until the condition is corrected.
1B A failure occurred that caused the conversation to be prematurely terminated. The condition might be temporary, and the program can try the transaction again.
1C The call issued by the local program did not run successfully. This return code is returned on the unsuccessful call.

If this code is returned by the ATBRCVI (LU 6.2 Receive_Immediate) callable service, there is no data to be returned.

1E The partner program issued a Deallocate call with a Deallocate_type of Deallocate_abend_SVC. If the partner program was in Receive state when the call was issued, information sent by the local program and not yet received by the partner program is purged. This return code is reported to the local program on a call the program issues in Send or Receive state.
1F The partner program issued a Deallocate call with a Deallocate_type of Deallocate_abend_timer. If the partner program was in Receive state when the call was issued, information sent by the local program and not yet received by the partner program is purged. This return code is reported to the local program on a call the program issues in Send or Receive state.
20 The partner program issued a Send_error call specifying a Type parameter of SVC, the conversation for the partner program was in Send state, and the call did not truncate a logical record. This return code is returned on a Receive call. It is not returned for Send_error requests using CPI Communications.
21 The partner program issued a Send_error call specifying a Type parameter of SVC, the conversation for the partner program was in Receive, Confirm, or Sync_Point state, and the call might have caused information to be purged. This return code is normally returned to the local program on a call that the local program issues after sending some information to the partner program. However the return code can be returned on a call that the local program issues before sending any information, depending on when the call is issued.

This code is not returned for Send_error requests using CPI Communications.

22 The partner program issued a Send_error call specifying a Type parameter of SVC, the conversation for the partner program was in Send state, and the call truncated a logical record. Truncation occurs when a program begins sending a logical record and then issues Send_error before sending the complete record. This return code is returned to the local program on a Receive call that the local program issues after receiving the truncated logical record.

The code is not returned for Send_error requests using CPI Communications.

40 APPC/MVS is not currently active. Call the service again after APPC is available.
Other See the z/OS MVS Programming: Writing Transaction Programs for APPC/MVS and z/OS MVS Programming: Writing Servers for APPC/MVS documentation for more information.
APPC allocate services return codes

This table documents the return codes that can be returned from APPC/MVS allocate queue services in messages from the distributed queuing component if you are using APPC/MVS as your communications protocol.

Table 3. APPC allocate services return codes and their meanings
Return code (Hex) Explanation
0 The service completed as requested.
4 The service completed, but possibly not as expected. See the reason code parameter for a description of the warning condition.
8 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.
10 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 issued again.
20 APPC/MVS service failure. Record the return and reason code, and give them to your system programmer, who should contact the appropriate IBM support personnel.
40 APPC/MVS is not currently active. Call the service again after APPC is available.
Other See the z/OS MVS Programming: Writing Transaction Programs for APPC/MVS and z/OS MVS Programming: Writing Servers for APPC/MVS documentation for more information.
APPC reason codes

This table documents the reason codes that can be returned from APPC/MVS allocate queue services in messages from the distributed queuing component if you are using APPC/MVS as your communications protocol.

Note: Some of the APPC return codes are not accompanied by a reason code; in these cases, the value in the reason code field can be ignored. See the documentation shown in APPC/MVS return codes for more information.
Table 4. APPC reason codes and their meanings
Return code (Hex) Explanation
1 The address space issued a Register_For_Allocates call that duplicated a previous Register_For_Allocate call (that is, the values specified for TP name, local LU name, partner LU name, user ID, and profile all matched those specified on a previous call to the Register_For_Allocates service).
2 A TP name is required, but none was specified.
3 The specified TP name contains characters that are not valid
4 The specified TP name length is outside the allowable range.
5 A local LU name is required, but none was specified.
7 An asynchronous call failed because a specified parameter was found to be inaccessible.
8 The caller held one or more locks when calling the service.
0A A transaction scheduler called the Register_For_Allocate service, which is not allowed
0B The specified symbolic destination name can not be found in the side information data set.
0C The specified local LU is undefined.
0D The specified local LU is not receiving inbound allocate requests.
0E The Register_For_Allocate service was called, but the caller is not authorized to serve the specified TP name on the specified local LU.
0F The specified local LU is inaccessible to the caller.
10 The service failed because of an APPC failure.
11 The specified allocate queue token does not represent an allocate queue for which this address space is registered.
12 The specified notify type is not valid.
13 The specified timeout value is not valid.
14 The request was canceled while in progress. This might have been caused by a call to the Unregister_For_Allocates service, or the termination of the caller's address space.
15 A Receive_Allocate call completed, but no allocate request was available to be received.
1A The specified event notification type is not valid.
1B The specified event code is not supported or is not valid for this service.
1C The netid retrieved from the side information data set does not match the local netid.
1D The specified event code qualifier is not valid or supported.
1E The Get_Event call completed, but no event element was available to be received.
1F The call to the Get_Event service was interrupted because all event notification requests were canceled for this address space.
20 The call to the Get_Event service was rejected because a previous Get_Event call is currently outstanding.
21 The Get_Event call was rejected because no event notification is in effect for this address space.
22 The specified allocate queue keep time is outside the allowable range.
24 A call to the Unregister_For_Allocates service specified unregister all (that is, the allocate_queue_token was set to binary zeros), but this address space is not registered for any allocate queues.
25 The specified event get type is not valid.
26 The specified receive allocate type is not valid.
27 APPC/MVS cannot determine if the specified netid is valid.
29 The service failed because the supplied buffer was not large enough to contain the requested information.
Other See the z/OS MVS Programming: Writing Transaction Programs for APPC/MVS and z/OS MVS Programming: Writing Servers for APPC/MVS documentation for more information.