cc/td/doc/product/software/ioss390
hometocprevnextglossaryfeedbacksearchhelp
PDF

Table of Contents

DNR Return Codes

DNR Return Codes

This chapter describes all the return codes generated on completion (whether normal or abnormal) of the DIRSRV macro instruction. It includes these sections:

Provides an overview of what this chapter contains.
Describes general return codes, which indicate the general success or failure of a DIRSRV macro instruction.
Describes recovery action codes which define categories of errors that may be handled in a common manner.
Describes conditional completion codes which indicate unusual conditions that accompany an otherwise normal completion of the function request.
Describes specific error codes which provide more definition of a failure.
Describes possible exceptional conditions.
Describes execution environment errors.
Describes format or specification errors.
Describes sequence and procedural errors.
Describes logic errors that do not return a DPL return code.

Overview

The DIRSRV macro instruction completes normally (or conditionally) when the requested information has been returned in the storage area provided by the application program. The length of the storage area is updated to reflect the actual amount of information returned.

On normal return to the application program, the general return code in register 15 is set to zero (DROKAY), and the conditional completion code is returned in register 0. If the macro instruction was executed in synchronous mode, the general return code indicates whether or not the directory service completed normally. If the macro instruction was executed in asynchronous mode, the general return code indicates whether or not the directory service request was accepted.

If the DIRSRV macro instruction completes abnormally, no information is returned in the storage area and the storage area length is unmodified. The general return code in register 15 and the recovery action code indicate the nature of the failure. If the general return code is set to DEFAILED, the recovery action code is returned in register 0 and the DPL return code contains a specific error code which identifies a particular error. If the general return code is set to DEFATLPTL, the recovery action code and the error code are both returned in register 0 and the DPL is not updated.

General Return Codes

General return codes are returned in register 15 to indicate the general success or failure of a DIRSRV macro instruction. If the macro instruction was executed in synchronous mode, the general return code indicates whether or not the directory service completed normally. If the macro instruction was executed in asynchronous mode, the general return code indicates whether or not the directory service request was accepted.

The general return codes defined in this section are those generated by the DNR.

0 (X'00') DROKAY

Explanation    Request accepted, or completed normally or conditionally.

If the macro instruction was executed in synchronous mode, the function completed normally (or conditionally) without any errors. Register 0 contains a conditional completion code which indicates what, if any, unusual conditions occurred. If the macro instruction was executed in asynchronous mode, the request was accepted and the directory request was initiated.

4 (X'04') DRFAILED

Explanation    Request not accepted, or request completed abnormally due to a non-recoverable error or abnormal condition.

If the macro instruction was executed in synchronous mode, the function completed abnormally. If the macro instruction was executed in asynchronous mode, the request was not accepted because of an error or abnormal condition.

Register 0 contains a recovery action code.

8 (X'08') DRFATLPL

Explanation    Request not accepted, or completed abnormally because of a fatal DPL error.

A fatal error occurred that prevented the normal completion or initiation of a function request. Errors in this category are generally caused by an invalid DPL address or a corrupted DPL. Register 0 contains a recovery action code and a specific error code identifying the specific error condition.

Recovery Action Codes

The recovery action code is stored in the DPL return code field (DPLRTNCD) and returned in register 0 whenever the general return code in register 15 indicates a failure. The recovery action code defines categories of errors that may be handled in a common manner.

If the macro instruction was executed in synchronous mode, the recovery action code is returned to the application program in register 0. If the macro instruction was executed in asynchronous mode and the request was not accepted, the recovery action code is returned in register 0. If the request was accepted and subsequently failed processing, the recovery action code is returned in the DPL.

0 (X'00') DROKAY

Explanation    Request accepted, or completed normally or conditionally.

If the macro instruction was executed in synchronous mode, DAOKAY returned in register zero indicates the request completed normally with no conditionals. If the macro instruction was executed in asynchronous mode,

DAOKAY returned in register zero indicates the request was accepted. On completion of the asynchronous request, DAOKAY stored in the recovery action field of the DPL indicates normal or conditional completion with the conditional completion code (if any) returned in the specific error code field of the DPL.

4 (X'04') DAEXCPTN

Explanation    An exceptional condition occurred that prevented normal completion or acceptance of the directory function.

8 (X'08') DAENVIRO

Explanation    Failure due to abnormal environmental condition.

This code is generally indicative of an abnormal condition in the execution environment which is outside the direct control of the application program.

Some external action may be required to relieve the condition.

12 (X'0C') DAFORMAT

Explanation    Format or specification error.

A failure occurred because of a format or specification error, usually associated with a parameter provided by the application program in a DIRSRV request.

16 (X'10') DAPROCED

Explanation    Sequence or procedural error.

The failure occurred because the DPL was already in use from a previous DPL-based request. This error is generally indicative of a logic error in the application program and should not occur once the program has been debugged.

The recovery action code and the specific error code are returned to the application program in register 0.

20 (X'14') DADPLERR

Explanation    Logic error with no DPL return code.

A logic error occurred, but the DPL associated with the request was in a state or condition that prevents storing the recovery action code and error code in the return field of the DPL. The recovery action code and the specific error code are returned to the application program in register 0.

Conditional Completion Codes: RTNCD 00xx

Conditional completion codes are returned in register 0 whenever the general return code in register 15 indicates normal or conditional completion. The conditional completion code is also stored in the DPL return code field (DPLRTNCD) in place of the specific error code (DPLERRCD). The recovery action code is set to 0 (DAOKAY) to indicate normal or conditional completion.

Conditional completion codes are used to indicate unusual conditions that accompanied an otherwise normal completion of the function request. These codes are generally used to indicate the occurrence of a condition that normally does not affect the successful execution of the application program and should not be treated as an error.

Each bit of the eight-bit completion code represents a particular condition. Therefore, unlike specific error codes, a conditional completion code can represent the presence of more than one condition.

0 (X'00') DROKAY

Explanation    Normal completion with no conditionals.

08 (X'08') DCLOCAL

Explanation    Local configuration data was used to resolve a global request.

16 (X'10') DCNAMEIA

Explanation    The character string used in a GET-HOST-BYNAME request was an Internet address in dot notation (i.e., 127.0.0.1). The value buffer contains the four-byte Internet address in hexadecimal (i.e., x'7F000001').

32 (X'20') DCOVRFLO

Explanation    The storage area identified by the qualified name buffer was not large enough to return the fully qualified domain name associated with the return information.

64 (X'40') DCALIAS

Explanation    The host name used for the request was an alias. If a qualified name buffer was specified, the fully qualified name was returned in the storage area.

128 (X'80') DCMORE

Explanation    The return information is a list of values and there were more entries than would fit into the storage area or the number of entries exceeded the size parameter.

Specific Error Codes: xxxx

Specific error codes provide a more definitive characterization of the failure, and can be used in combination with the recovery action code to determine the precise error recovery procedure.

Valid Combinations

There are multiple valid combinations of recovery action codes and specific error codes. All valid combinations of return code settings are shown in this table:


Note An entry in the table indicates that the column and row values are valid combinations for DPLRTNCD. The label appearing in the table is the mnemonic defined in the DPL DSECT.

Table 7-1: DNR DPLRTNCD Return Code Settings
Value DAEXCPTN
X'04'
DAENVIRO
X'08'
DAFORMAT
X'0C'
DAPROCED
X'10'
DADPLERR
X'14'
X'00'
X'01' DENONAME DESYSERR DEBDOPCD DEACTIVE DEBDTYPE
X'02' DENOVALU DESUBSYS DEBDFNCD DEPROTCT
X'03' DENOQNAM DENOTCNF DEBDXECB DEPLMODE
X'04' DETIMOUT DENOTACT DEBDEXIT
X'05' DERFAIL DENOTRDY DEBDNAME
X'06' DENOTFND DESTOP DEBDVALU
X'07' DENOCDS DEUNAVBL DEBDQNAM
X'08' DENAMERR DERSOURC
X'09' DEOVRFLO DENOTPRB
X'0A' DENOBLOK DETERM
X'0B' DENODATA
X'0C' DENAMODE
X'0D' DEVAMODE
X'0E' DEQNMODE

Exceptional Conditions: RTNCD 04xx

This section lists exceptional conditions.

1 (X'01') DENONAME

Explanation    Name buffer specification exception.

The NABUF field is specified as zero or the length of the storage area is specified as zero in NALEN. These diagnostic codes apply:


Table  7-2: DNR DENONAME Diagnostic Codes
Diagnostic Code Description
X'0400' Field NABUF was zero.
X'0404' Field NALEN was zero.

2 (X'02') DENOVALU

Explanation    Value buffer specification exception.

The VABUF field is specified as zero or the length of the storage area is specified as zero in VALEN. These diagnostic codes apply:


Table  7-3: DNR DENOVALU Diagnostic Codes
Diagnostic Code Description
X'0400' Field VABUF was zero.
X'0404' Field VALEN was zero.

3 (X'03') DENOQNAM

Explanation    Qualified name buffer specification exception. The QNBUF field is specified as nonzero and the length of the storage area is specified as zero in QNLEN. This diagnostic code applies:


Table  7-4: DNR DENOQNAM Diagnostic Codes
Diagnostic Code Description
X'0400' Field QNLEN was zero.

4 (X'04') DETIMOUT

Explanation    A time limit was specified (TIME) as nonzero and the limit was exceeded. A time value of zero specifies no limit. These diagnostic codes apply:


Table  7-5: DNR DETIMOUT Diagnostic Codes
Diagnostic Code Description
X'0800' The specified time limit has been exceeded before the request could be satisfied.
X'0E07' RECVFR request timed out.
X'0F07' SENDTO request timed out.

5 (X'05') DERFAIL

Explanation    Resolver failed. An unrecoverable error occurred during processing a Domain Name System (DNS) response. These diagnostic codes apply:


Table  7-6: DNR DERFAIL Diagnostic Codes
Diagnostic Code Description
X'0000' The DNR was processing a Domain Name System (DNS) response and a limit to the number of alias referrals (4) was exceeded.

6 (X'06') DENOTFND

Explanation    Answer not found. The directory information was not found. If the request involved a local search, the information was not found in the local configuration members. If the search involved a global search of the Domain Name System (DNS), the retry transmission limits specified in the DNR configuration file (DNRCFGxx) were exceeded. These diagnostic codes apply:


Table  7-7: DNR DENOTFND Diagnostic Codes
Diagnostic Code Description
X'0000' The search string was not found in a local configuration file.
X'0001' DNR could not resolve the DIRSRV request with local data and cannot use a name server because NAMESERVER(NONE) was specified in DNRCFGxx.
X'0010' Domain name server request failed. OPTCD=LOCAL was specified.
X'0011' Domain name server request failed. OPTCD=GLOBAL was specified. The DNR was configured for local operation.
X'0601' The retransmission limit specified in the MAXSENDS parameter in the DNR configuration member (DNRCFGxx) has been exceeded.
X'0603' The transmission limit for the name server list specified in the CYCLEMAX parameter in the DNR configuration member (DNRCFGxx) has been exceeded.

7 (X'07') DENOCDS

Explanation    A DNR configuration member that was required to enable the DNR to satisfy the request was empty. These diagnostic codes apply:


Table  7-8: DNR DENOCDS Diagnostic Codes
Diagnostic Code Description
X'0200' A GET-HOST-BYNAME request was received by the DNR and the DNR host name configuration member specified in the DNR configuration member was empty (HOSTTABLE(DNRHSTxx)). If OPTCD=GLOBAL, the name server configuration member (NAMESERVER(DNRNSCxx)) was also empty.
X'0300' A GET-HOST-BYVALUE request was received by the DNR and the DNR host name configuration member specified in the DNR configuration member was empty HOSTTABLE(DNRHSTxx)). If OPTCD=GLOBAL, the name server configuration member (NAMESERVER(DNRNSCxx)) was also empty.
X'0400' A GET-HOST-BYALIAS request with OPTCD=LOCAL was received by the DNR and the DNR alias configuration member specified in the DNR configuration member was empty ALIAS(DNRALCxx)). If OPTCD=GLOBAL, the name server configuration member (NAMESERVER(DNRNSCxx)) was also empty.
X'0500' A GET-NETWORK-BYNAME request was received by the DNR and the DNR network configuration member specified in the DNR configuration member was empty (NETWORK(DNRNETXX)).
X'0600' A GET-NETWORK-BYVALUE request was received by the DNR and the DNR network configuration member specified in the DNR configuration member was empty (NETWORK(DNRNETXX)).
X'0700' A GET-SERVICE-BYNAME request was received by the DNR and the DNR services configuration member specified in the DNR configuration member was empty (SERVICES(DNRSVCxx)).
X'0800' A GET-SERVICE-BYVALUE request was received by the DNR and the DNR services configuration member specified in the DNR configuration member was empty (SERVICES(DNRSVCxx)).
X'0900' A GET-PROTOCOL-BYNAME request was received by the DNR and the DNR protocol configuration member specified in the DNR configuration member was empty (PROTOCOL(DNRPRTxx)).
X'0A00' A GET-PROTOCOL-BYVALUE request was received by the DNR and the DNR protocol configuration member specified in the DNR configuration member was empty (PROTOCOL(DNRPRTxx)).
X'0B00' A GET-HOSTSERV-BYNAME, GET-HOSTINFO-BYNAME or GET-ROUTE-BYNAME request was received by the DNR and the DNR name server configuration member specified in the DNR configuration member was empty (NAMESERVER(DNRNSCxx)).

8 (X'08') DENAMERR

Explanation    Host does not exist. The search string is syntactically correct, but the host is not identified in the Domain Name System (DNS) namespace. If the search string was found in the local alias configuration member (DNRALCxx), the incorrect search string is returned in the storage area identified by DPLQNBUF. Otherwise, the search string is the string identified in the DPLNABUF operand. These diagnostic codes apply:


Table  7-9: DNR DENAMERR Diagnostic Codes
Diagnostic Code Description
X'0000' The search string was the fully qualified name specified in the NABUF operand.
X'0001' The search string was a fully qualified replacement string found in the alias configuration file for the alias specified in the NABUF operand.
X'0002' The search strings were the result of concatenating the search list strings to the partial name specified in the NABUF operand.
X'0003' The search strings were the result of concatenating the search list strings to the partial name found in the alias configuration file for the alias specified in the NABUF operand.
X'0004' The search strings were the result of concatenating the search list strings to the partial name found in the alias configuration file for the alias specified in the NABUF operand, but were not found.

9 (X'09') DEOVRFLO

Explanation    Reply data exceeds data area length. The return data exceeded the return storage area. For requests that return a list of responses, a single response could not be returned. These diagnostic codes apply:


Table  7-10: DNR DEOVRFLO Diagnostic Codes
Diagnostic Code Description
X'0000' Return data exceeded return storage area.
X'0400' Module DNRRCSRB determined that the name buffer was not large enough to receive the returned name. This condition should have been determined by an earlier module but was not indicating a possible internal logic error.
X'0404' Module DNRRCSRB determined that the value buffer was not large enough to receive the returned name. This condition should have been determined by an earlier module but was not indicating a possible internal logic error.
X'0408' Module DNRRCSRB determined that the qualified name buffer was not large enough to receive the returned name. This condition should have been determined by an earlier module but was not indicating a possible internal logic error.

10 (X'0A') DENOBLOK

Explanation    Request not completed because OPTCD=NOBLOCK was specified.

The request was received specifying OPTCD=NOBLOCK and the data was not readily available in the DNR cache containing previously answered requests. These diagnostic codes apply:


Table  7-11: DNR DENOBLOK Diagnostic Codes
Diagnostic Code Description
X'0000' The data was not readily available.

11 (X'0B') DENODATA

Explanation    Insufficient data available to satisfy request.

The search string was syntactically correct and the string identified a host that exists in the Domain Name System (DNS) name space but there is no configuration data to satisfy this type of request. These diagnostic codes apply:


Table  7-12: DNR DENODATA Diagnostic Codes
Diagnostic Code Description
X'0000' The name server did not have the specific Resource Record configured for the host name.

12 (X'0C') DENAMODE

Explanation    Name buffer addressing conflict.

The address of the name buffer did not match the addressing mode of the application program issuing the DIRSRV request. The name buffer must be below the 16 megabyte line if the addressing mode of the program is 24 (AMODE=24). These diagnostic codes apply:


Table  7-13: DNR DENAMODE Diagnostic Codes
Diagnostic Code Description
X'0400' The application was executing with AMODE=24 and bits 0-7 of the name buffer address were not zero.

13 (X'0D') DEVAMODE

Explanation    Value buffer addressing conflict.

The address of the value buffer did not match the addressing mode of the application program issuing the DIRSRV request. The value buffer must be below the 16 megabyte line if the addressing mode of the program is 24 (AMODE=24). These diagnostic codes apply:


Table  7-14: DNR DEVAMODE Diagnostic Codes
Diagnostic Code Description
X'0400' Application was executing with AMODE=24 and bits 0-7 of the value buffer address were not zero.

14 (X'0E') DEQNMODE

Explanation    Qualified name buffer addressing conflict.

The address of the qualified name buffer did not match the addressing mode of the application program issuing the DIRSRV request. The qualified name buffer must be below the 16 megabyte line if the addressing mode of the program is 24 (AMODE=24). These diagnostic codes apply:


Table  7-15: DNR DEQMODE Diagnostic Codes
Diagnostic Code Description
X'0400' Application was executing with AMODE=24 and bits 0-7 of the qualified name buffer address were not zero.

Execution Environment Errors: RTNCD 08xx

This section lists execution environment errors.

1 (X'01') DESYSERR

MVS system error occurred. An MVS system ABEND or error was detected trying to process the directory request or return the reply. These diagnostic codes apply:


Table 7-16: DNR DESYSERR Diagnostic Codes
Diagnostic Code Description
X'0100' An ABEND occurred in module DNRCDCMP, which executes as a cross memory PC routine to move completion data from the DNR address space to the address space requesting the directory service. This error is accompanied by a software record that is written to SYS1.LOGREC.
X'0104' An ABEND occurred in module DNRRCSRB, which executes as a MVS SRB to complete a directory request. This error is accompanied by a software record that is written to SYS1.LOGREC.
X'0400' An ABEND occurred in module DNRPDREQ while running the RB chain of the currently dispatched task (TCB). This error should only occur if MVS internal RB chaining is severely modified.
X'0404' An ABEND occurred in module DNRCDREQ, which executes as a cross memory PC routine to move a directory request from the application's address space to the DNR address space. This error is accompanied by a dump if a local dump data set (i.e., SYSUDUMP) has been preallocated and if the ABEND normally produces a dump. This error is also accompanied by a software record that is written to SYS1.LOGREC.
X'0408' Module DNRPDREQ, which executes in the same mode as the calling application to verify and initialize a directory request, was unable to successfully establish an ESTAE.
X'040C' An ABEND occurred in module DNRPDREQ, which executes in the same mode as the calling application to verify and initialize a directory request. The ABEND was not expected (some S0C4 ABENDs are expected) and the directory request is abnormally terminated. This error is accompanied by a dump if a local dump data set (i.e., SYSUDUMP) has been preallocated by the requesting application and if the ABEND normally produces a dump. This error is also accompanied by a software record that is written to SYS1.LOGREC.
X'0410' An ABEND occurred in module DNRCSSIX, which executes as a cross memory PC routine, to mark a directory request purged when a DIRSRV PURGE macro is executed. This error is accompanied by a dump if a local dump data set (i.e., SYSUDUMP) has been preallocated by the requesting application and if the ABEND normally produces a dump. This error is also accompanied by a software record that is written to SYS1.LOGREC.
X'0800' An ABEND occurred in the DNR address space processing this directory request.

Diagnostic codes X'11xx' through X'2002' indicate that an internal logic error was detected in one of the DNR completion routines. This error was triggered by either:

The first byte of the diagnostic code identifies the routine that determined the error. This error is accompanied by a DNR153E error message in the SYSPRINT log of the Cisco IOS for S/390' job.


Table  7-17: DNR DESYSERR Error Routines
Diagnostic Code Routine Determining Error
X'1101' NRTDA (GET HOST BY NAME)
X'1102' NRTDA (GET HOST BY NAME)
X'1201' NRTDPTR (GET HOST BY VALUE)
X'1301' NRTDCNA (GET HOST BY ALIAS)
X'1A01' NRTDWKS (GET HOSTSERVICES BY NAME)
X'1A02' NRTDWKS (GET HOSTSERVICES BY NAME)
X'1B01' NRTDINF (GET HOSTINFO BY NAME)
X'1C01' NRTDMX (GET ROUTE BY NAME)
X'1C02' NRTDMX (GET ROUTE BY NAME)
X'1F01' NRTDNS (GET NS BY NAME)
X'1F02' NRTDNS (GET NS BY NAME)
X'2001' NRTDSOA (GET SOA BY NAME)

2 (X'02') DESUBSYS

MVS subsystem error. DNR operates as a MVS subsystem and maintains subsystem control blocks that identify items such as whether DNR is available, common program entry points and cross memory PC numbers. These diagnostic codes apply:


Table 7-18: DNR DESUBSYS Diagnostic Codes
Diagnostic Code Description
X'0400' On entry to module DNRPDREQ, which verifies and initiates directory requests, register 0 must point to the DNR Network Directory Services Anchor (NDSA) block. Normal expansion of the DIRSRV macro causes register 0 to be loaded with the NDSA address prior to branching into DNRPDREQ. Verify that the expansion of DIRSRV is valid, that DNR initialized or terminated normally, or if calling DNRPDREQ without using the DIRSRV macro, that register 0 is loaded with the address of the NDSA.
X'0404' On entry to module DNRPDREQ, which verifies and initiates directory requests, register 0 must point to the DNR Network Directory Services Anchor (NDSA) block. While trying to access the NDSA, a fetch protection occurred. Normal expansion of the DIRSRV macro causes register 0 to be loaded with the NDSA address prior to branching into DNRPDREQ. Verify that the expansion of DIRSRV is valid, that DNR initialized or terminated normally, or if calling DNRPDREQ without using the DIRSRV macro, that register 0 is loaded with the address of the NDSA.
X'0408' On entry to module DNRPDREQ, which initiates DIRSRV PURGE requests, register 0 must point to the DNR Network Directory Services Anchor (NDSA) block. Normal expansion of the DIRSRV macro causes register 0 to be loaded with the NDSA address prior to branching into DNRPDREQ. Verify that the expansion of DIRSRV is valid, that DNR initialized or terminated normally, or if calling DNRPDREQ without using the DIRSRV macro, that register 0 is loaded with the address of the NDSA.

3 (X'03') DENOTCNF

Explanation    Subsystem not configured in MVS. DNR operates as a MVS subsystem and maintains subsystem control blocks that identify items such as whether DNR is available, common program entry points and cross memory PC numbers. This diagnostic code applies:


Table  7-19: DNR DENOTCHF Diagnostic Codes
Diagnostic Code Description
X'0000' The subsystem ID specified in the SYSID= parameter of the DIRSRV macro (field DPLSYSID of the DPL) could not be located on the MVS subsystem chain. Verify that DNR is active and that the specified subsystem ID is the same. The subsystem ID is case sensitive. Generally all subsystem ID's are in upper case.

4 (X'04') DENOTACT

Explanation    Subsystem not started or active. DNR operates as a MVS subsystem and maintains subsystem control blocks that identify items such as whether DNR is available, common program entry points and cross memory PC numbers. These diagnostic codes apply:


Table  7-20: DNR DENOTACT Diagnostic Codes
Diagnostic Code Description
X'0000' The subsystem control blocks owned by DNR indicate that DNR has not started or is not currently active.

5 (X'05') DENOTRDY

Explanation    Subsystem is not fully initialized. Try later. DNR operates as a MVS subsystem and maintains subsystem control blocks that identify items such as whether DNR is available, common program entry points and cross memory PC numbers. These diagnostic codes apply:


Table  7-21: DNR DENOTRDY Diagnostic Codes
Diagnostic Code Description
X'0000' The DNR subsystem control blocks indicate that the address space is active but the DNR has not yet initialized.
X'0400' The Network Directory Services Anchor (NDSA) address has been set in the subsystem control blocks but it is marked not yet ready to accept directory requests.

6 (X'06') DESTOP

Explanation    Subsystem is in the process of shutting down. If the DNR operator request DNR to stop, then requests in progress are terminated and new requests are refused. These diagnostic codes apply:


Table  7-22: DNR DESTOP Diagnostic Codes
Diagnostic Code Description
X'0400' The Network Directory Services Anchor (NDSA) block indicates that the DNR is stopping as a result of an operator request and this directory request was not accepted.
X'0800' The directory request was being processed but before it could be completed, an operator requested stop of the DNR task group was issued.

7 (X'07') DEUNAVBL

Explanation    Unrecoverable transport error (API error). The DNR uses Cisco IOS for S/390 API to communicate with Domain Name Servers. An unrecoverable error occurred on at least one transport request. These diagnostic codes apply:


Table  7-23: DNR DEUNAVBL Diagnostic Codes
Diagnostic Code Description
X'0801' Memory allocation error when trying to establish a network connection.
X'0802' Error in issuing an AOPEN.
X'0803' Error in issuing a TOPEN.
X'0B04' Error in issuing a TINFO.
X'0B05' Error in issuing a TOPTION.
X'0B06' Memory allocation error when trying to establish a network connection.
X'0B07' Error in issuing a TBIND.
X'4xyy' The DNR received an error issuing a TCHECK call on a TRECEIVE TPL. The TPL recovery action code is designated by the x. The specific error code is designated by the yy.
X'8xyy'  The DNR received an error issuing a TCHECK call on a TSEND TPL. The TPL recovery action code is designated by the x. The specific error code is designated by the yy.

8 (X'08') DERSOURC

Explanation    There were insufficient resources to successfully process the directory services request. These diagnostic codes apply:


Table  7-24: DNR DERSOURC Diagnostic Codes
Diagnostic Code Description
X'xxyy' An integer representing the function is designated by the x. An integer representing the specific line number is designated by the yy.
X'0014' Module DNRCDREQ returned with RC=16, indicating that no XWA was available.
X'0404'  Module DNRCDREQ returned with an unexpected return code: RC=04.
X'0408'  Module DNRCDREQ returned with RC=08 indicating that there was insufficient storage available to allocate a DSRB in the DNR address space.
X'0410'  Module DNRCDREQ returned with an unexpected return code: RC=20.
X'040C'  Module DNRCDREQ returned with RC=12 indicating that there was insufficient storage available to allocate buffers needed for this request in the DNR address space.

9 (X'09') DENOTPRB

Explanation    Task issuing request was not running as a Program Request Block (PRB)

The DNR requires that directory requests are only to be executed from applications running as a MVS PRB. Applications running as a SRB or IRB can not issue directory requests. These diagnostic codes apply:


Table  7-25: DNR DENOTPRB Diagnostic Codes
Diagnostic Code Description
X'0400'  The application program was not executing as an MVS PRB.

10 (X'0A') DETERM

Explanation    DNR task group has terminated.

DNR has a subsystem task termination exit to detect when tasks related to either the issuance or processing of directory requests have terminated. These diagnostic codes apply:


Table  7-26: DNR DETERM Diagnostic Codes
Diagnostic Code Description
X'0800' The subsystem task termination exit has detected that the DNR task within the DNR address space has terminated without going through shutdown logic, neither slow nor fast.

Format or Specification Errors: RTNCD 0Cxx

This section lists format or specification errors.

1 (X'01') DEBDOPCD

Explanation    Field DPLOPCTD in the DPL contained invalid bit settings.

Field DPLOPTCD in the DPL consists of bits that identify different processing options the DNR should use while processing this request. These diagnostic codes apply:


Table  7-27: DNR DEBDOPCD Diagnostic Codes
Diagnostic Code Description
X'0400' A bit that is not supposed to be set was. If using the DIRSRV macro, verify that the storage was cleared to binary zeroes before issue the DIRSRV macro. If calling the DNR without using the DIRSRV macro, verify that only option bits defined in the DPL are actually set before making the call.

2 (X'02') DEBDFNCD

Explanation    Invalid DPL function code set

Field DPLFNCCD in the DPL must contain a value between 1 (X'01') and 12 (X'0C'). These diagnostic codes apply:


Table  7-28: DNR DEBDFNCD Diagnostic Codes
Diagnostic Code Description
X'0400' The value of DPLFNCCD exceeds the maximum value, DFMAX which is equal to 12 (X'0C').
X'0404'  Field DPLFNCCD was not set (i.e., it equals 0).

3 (X'03') DEBDXECB

ECB=external-ecb was specified on the DIRSRV macro but the external ECB specified in field DPLECB was invalid. These diagnostic codes apply:


Table 7-29: DNR DEBDXECB Diagnostic Codes
Diagnostic Code Description
X'0400' Either a fetch or protection exception occurred while trying to access the external ECB specified. Verify that the address of the external ECB is valid and that the storage protect key of the external ECB matches that of the application program issuing the directory request.
X'0404'  In the DPL, flag DPLFXECB was set but the value in field DPLXECB was zero. If the application is building the DPL itself, make sure a valid ECB address is specified if flag DPLFXECB is set.
X'0408' An external ECB must be located below the 16 megabyte line if the addressing mode of the application is 24 (AMODE=24). Verify that bits 0-7 of the external ECB address are zero if the addressing mode is 24 or change the addressing mode to 31 (AMODE=31) if the ECB is located above the 16 megabyte line.
X'040C' An ECB must be located on a full word boundary. The ECB specified was not fullword aligned. Correct the alignment of the ECB.

4 (X'04') DEBDEXIT

Explanation    The asynchronous exit specified in field DPLEXIT is invalid. EXIT=exit was specified on the DIRSRV macro but the asynchronous exit address specified was invalid. These diagnostic codes apply:


Table  7-30: DNR DEBDEXIT Diagnostic Codes
Diagnostic Code Description
X'0400' A protection exception occurred while trying to access the instruction located at the specified exit address. Verify that the address of the asynchronous exit is valid and that the storage where the asynchronous exit exists is not fetch protected.
X'0404'  In the DPL, flag DPLFEXIT was set but the value in field DPLEXIT was zero. If the application is building the DPL itself, make sure a valid exit address is specified if flag DPLFEXIT is set.
X'0408' The asynchronous exit must be located below the 16 megabyte line if the addressing mode of the application is 24 (AMODE=24). Verify that bits 0-7 of the exit address are zero if the addressing mode is 24 or change the addressing mode to 31 (AMODE=31) if the exit is located above the 16 megabyte line.
X'040C'  The asynchronous exit must be located on a half word boundary. The exit specified was not fullword aligned. Correct the alignment of the exit or set the correct exit address.

5 (X'05') DEBDNAME

Explanation    Bad name buffer. The name buffer address was illegal or the name specified in the buffer was syntactically incorrect. These diagnostic codes apply:


Table  7-31: DNR DEBDNAME Diagnostic Codes
Diagnostic Code Description
X'0400' A protection exception occurred trying to either store into or reference data in the name buffer. The name buffer must be located in non-fetch protected storage if it is being used as the request field. It must be located in non-store protected storage if is being used as the reply field. Verify that the name buffer has the same storage protection key as the application, that it was not accidentally freed and that the address passed in field DPLVABUF was really the address of the value buffer.
X'0103' The data in the storage area identified by the NABUF operand request did not conform to the syntax rules.
X'0104' The data in the storage area identified by the NABUF operand was found in the local alias configuration member (DNRALCxx). The replacement string for the alias did not conform to the syntax rules.

6 (X'06') DEBDVALU

Explanation    Bad value buffer.

The value buffer address was illegal or the value specified in the buffer was syntactically incorrect. These diagnostic codes apply:


Table  7-32: DNR DEBDVALU Diagnostic Codes
Diagnostic Code Description
X'0400' A protection exception occurred trying to either store into or reference data in the value buffer. The value buffer must be located in non-fetch protected storage if it is being used as the request field. It must be located in non-store protected storage if is being used as the reply field. Verify that the value buffer has the same storage protection key as the application, that it was not accidentally freed and that the address passed in field DPLVABUF was really the address of the value buffer.
X'0200' The data in the storage area identified by the VABUF operand did not conform to the syntax rules.

7 (X'07') DEBDQNAM

Explanation    Protection exception accessing the qualified name buffer.

The qualified name buffer must be located in non-store protected storage. These diagnostic codes apply:


Table  7-33: DNR DEBDQNAM Diagnostic Codes
Diagnostic Code Description
X'0400' A protection exception occurred trying to store data into the qualified name buffer. Verify that the qualified name buffer has the same storage protection key as the application, that it was not accidentally freed and that the address passed in field DPLQNBUF was really the address of the qualified name buffer.

Sequence and Procedural Errors: RTNCD 10xx

This section lists sequence and procedural errors.

1 (X'01') DEACTIVE

Explanation    The DPL was still in use by a previous DIRSRV request.

A DPL can not be reused for another directory request until a prior directory request that used the same DPL has completed. These diagnostic codes apply:


Table  7-34: DNR DEACTIVE Diagnostic Codes
Diagnostic Code Description
X'0000' The DIRSRV macro expansion (with MF=E or MF=M) detected that the DPL was still in use (field DPLACTIV not zero). If the DPL is still in use from a previous asynchronous request, issue the MVS WAIT macro to suspend execution until the previous request completes or use another DPL. If the DPL is not really in use from a prior request, make sure that the storage obtained for the DPL was cleared to binary zeroes before issuing the DIRSRV macro.
X'0400' Module DNRPDREQ, which verifies directory requests, detected that the DPL was still in use (field DPLACTIV not zero). If the DPL is still in use from a previous asynchronous request, issue the MVS WAIT macro to suspend execution until the previous request completes or use another DPL. If the DPL is not really in use from a prior request, make sure that the storage obtained for the DPL was cleared to binary zeroes before issuing the DIRSRV macro.

Logic Errors with No DPL Return Code: RTNCD 14xx

This section lists logic errors with no DPL return code.

1 (X'01') DEBDTYPE

Explanation    Invalid DPL identification field.

Field DPLIDENT must be initialized to value DPLIDSTD, which is equal to 237 (X'ED') on entry to module DNRPDREQ. These diagnostic codes apply:


Table  7-35: DNR DEBDTYPE Diagnostic Codes
Diagnostic Code Description
X'0400' Field DPLIDENT was not set to value DPLIDSTD. Verify that the correct form (MF=) of the DIRSRV macro is being used. If building the DPL, make sure that field DPLIDENT is properly initialized.

2 (X'02') DEPROTCT

Explanation    DPL was fetch or store protected.

The DPL must be located in storage with the same storage protection key as the application and must not be fetch protected. These diagnostic codes apply:


Table  7-36: DNR DEPROTCT Diagnostic Codes
Diagnostic Code Description
X'0400' The DPL was located in fetch protected storage. Verify that the address of the DPL being passed to module DNRPDREQ is in fact the address of the DPL. For programs on XA machines, verify that the DPL is below the 16 megabyte line if the addressing mode of the application is 24 (AMODE=24). Also verify that the storage is owned by the current task or is being shared between tasks.
X'0404' The DPL was located in store protected storage. Verify that the address of the DPL being passed to module DNRPDREQ is in fact the address of the DPL. If running APF authorized, make sure that the PSW storage key is the same now as when the storage was obtained. For programs on XA machines, verify that the DPL is below the 16 megabyte line if the addressing mode of the application is 24 (AMODE=24).

hometocprevnextglossaryfeedbacksearchhelp
Copyright 1989-1998 © Cisco Systems Inc.