DB2 Server for VM: Messages and Codes


Chapter 22. Debugging Communication Errors


This section describes causes and suggests corrective action for communications errors reported via an SQLCODE of -933 or -30080 or via the message ARI0197E. It includes possible reasons and solutions for the errors most likely to be encountered. It is NOT a complete list of errors, and does not attempt to include errors that are not user-correctable.

The following is the descriptive text for SQLCODEs -933 and -30080 and for message ARI0197E:

-933The communications path to dbname is disabled. No further access to this path is possible. Request Code = request-code. PROTOCOL: protocol FUNCTION: function REG15: X'reg15' CC: condition-code IPRCODE: X'iprcode' IPCODE: X'ipcode' IPWHATRC: X'ipwhatrc' IPAUDIT: X'ipaudit'

-30080Communication error occurred. PROTOCOL: protocol FUNCTION: function REG15: X'reg15' CC: condition-code IPRCODE: X'iprcode' IPCODE: X'ipcode' IPWHATRC: X'ipwhatrc' IPAUDIT: X'ipaudit'

ARI0197EA communication error occurred.


Function: function-code
Return Code: return-code
Reason Code: reason-code
CMSIUCV Reg15: X'reg15'
CC: condition-code
IPRCODE: X'iprcode'
IPCODE: X'ipcode'
IPWHATRC: X'ipwhatrc'
IPAUDIT: X'audit'

Each of these SQLCODES includes a set of error indicator fields -- PROTOCOL, FUNCTION, REG15, CC, IPRCODE, IPCODE, IPWHATRC, and IPAUDIT. The error indicator fields may or may not have valid values depending on the nature of the error reported. An error indicator field is considered invalid or not applicable if the field contains only dashes ('-' is a single dash character). Anything else is considered a valid value.

DB2 Server for VM uses IUCV, APPC/VM, or TCP/IP to communicate between the application requester and the application server. The PROTOCOL field in an SQLCODE -933 or -30080 refers to the communications protocol in effect when the function was invoked. This field will always have a valid value of either IUCV, APPC, or TCP/IP. Message ARI0197E is displayed if an error occurs while DB2 Server for VM is communicating with CRR. PROTOCOL is not displayed in this case because PROTOCOL is always APPC.

While communications functions are generally handled using direct invocation of IUCV and APPC/VM function macros, some functions are handled using the CMS macros CMSIUCV and HNDIUCV. CMSIUCV is used for invoking IUCV or APPC/VM functions through CMS. HNDIUCV is used for initiating or terminating a program's IUCV or APPC/VM environment. When an error is reported via an SQLCODE -933 or -30080 or message ARI0197E, the contents of the FUNCTION field will always be the name of the last IUCV, APPC/VM, CMSIUCV, or HNDIUCV communication function invoked.

If the REG15 field contains a valid value, then the function named in the FUNCTION field is either a CMSIUCV or HNDIUCV function. IF REG15 contains dashes, then the function is an IUCV or APPC/VM function. Message ARI0197E shows this field in the "CMSIUCV Reg15".

All fields following the REG15 field (CC, IPRCODE, IPCODE, IPWHATRC, and IPAUDIT) are IUCV or APPC/VM error indicator fields. The individual fields may or may not have valid values depending on the nature of the error reported. For instance, if the error is returned when using a CMSIUCV function, the error may be detected either by CMS or by the IUCV or APPC/VM function it invokes. If the error is detected by CMS, only REG15 would have a valid value. On the other hand, if the error is detected at the IUCV or APPC/VM level, the CC field and at least some of the other error indicator fields would have valid values as well as REG15.

If both the CC field and the REG15 field contain invalid values (dashes), then the error reported to the user is due to the link being SEVERed by either the application requester or an intermediate server (TSAF, AVS, VTAM). If the protocol is APPC/VM, only IPCODE and IPWHATRC will have valid values. IPCODE will be the SEVER code issued by your communications partner. If the protocol is IUCV, none of the error indicators will contain a valid value. For SQLCODEs -933 and -30080, the SQLERRD1 and SQLERRD2 fields may contain information about the cause of the SEVER. These fields are reported in the error message ARI0504I or can be found in the SQLCA. SQLERRD1 will contain the return code and SQLERRD2 will contain the reason code. For message ARI0197E, the return code and reason code values are displayed in the message. For additional information on diagnosing these SEVER conditions, refer to VM IUCV Communication Codes.

If the PROTOCOL field is TCP/IP, the Request Code indicates which TCP/IP function was being performed. The remaining fields are not used and contain dashes. The SQLERRD1 field of the SQLCA contains the TCPERRNO that was returned by TCP/IP. The TCPERRNO values can be found in the TCPERRNO H file on the TCP/IP client disk. The following table shows the possible request codes. TCP/IP can report the same TCPERRNO for different functions. The interpretation of the TCPERRNO depends on the function that was performed. The functions and the errors that can be reported can be found in the IBM TCP/IP V2R4 for VM: Programmer's Reference manual.

Table 1. Request Codes - TCP/IP
Request Code TCP/IP Function Performed
1 socket
2 connect
3 accept
4 send
5 recv
6 listen
7 selectex
8 close
9 getservbyname
10 gethostbyaddr
11 gethostbyname
12 gethostid
13 maxdesc
14 getdtablesize
15 ioctl
16 bind
17 inet_addr
18 inet_ntoa
19 FDSET
20 writev


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]