Appendix D. Communications protocol return codes
The tables in this appendix document the more common return codes from TCP/IP and APPC/MVS that can be returned in messages from the distributed queuing component:
If the return code is not listed, or if you want more information, refer to the books mentioned in each section.
If the return code you received is X'7D0' or more, it is one of the MQRC_* return codes issued by WebSphere MQ. These codes are listed in Appendix A. API completion and reason codes.
TCP/IP OpenEdition Sockets return codes
See the OS/390 OpenEdition Messages and Codes manual for more information and for further return codes.
Table 3. OpenEdition sockets return codes Return code (Hex) 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 filename 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 illegal 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 cancelled via 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 all at once, as required 0454 The socket type is incorrect 0455 Protocol or socket option not available 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 Disc 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 desired 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 OpenEdition Messages and Codes manual
APPC/MVS return codes
The tables in this section document the following return codes:
See the Writing Transaction Programs for APPC/MVS and Writing Servers for APPC/MVS manuals 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 4. APPC return codes and their meanings Return code (Hex) Explanation 00 The call issued by the local program executed successfully. If the call specified a Notify_type of ECB, the call processing will be performed asynchronously, and the ECB will be posted when the processing completes. 01 The caller specified an allocate_type that was other than immediate. Either APPC/MVS could not establish a session with the partner LU, or VTAM could 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 retry 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 respective 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 retry 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 retry the allocation request. This return code is returned on a call subsequent to the Allocate. 11 The partner program issued an 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 to 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 allowed
- 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 prior to 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 prior to 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 prior to 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 userid and password were not specified
- For Sec_Pgm-type security, a userid was specified with a blank password, or a password was specified with a blank userid
- 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 retry the transaction 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 retry the transaction. 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 Writing Transaction Programs for APPC/MVS and Writing Servers for APPC/MVS manuals.
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 5. 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 re-issued. 20 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. 40 APPC/MVS is not currently active. Call the service again after APPC is available. Other See the Writing Transaction Programs for APPC/MVS and Writing Servers for APPC/MVS manuals.
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. Refer to the manuals shown in APPC/MVS return codes for more information.
Table 6. 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 could 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 cancelled while in progress. This could 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 cancelled 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 Writing Transaction Programs for APPC/MVS and Writing Servers for APPC/MVS manuals.