IMS return codes

For EXEC DL/I commands, all status codes, except those identified as being returned to the application program, cause an abnormal termination of the application program.

All explanations apply to both DL/I call (call-level) programs and EXEC DLI (command-level) programs except where split. The term “request” means call, command, or both.

 

two blanks (bb)

Explanation:

The call was successfully completed.

Programmer response:

Proceed with processing.

AA

Explanation:

IMS™ ignored a CHNG or ISRT call because the alternate response PCB that is referenced in the call specified a transaction code as a destination. An alternate response PCB must have a logical terminal specified as its destination.

Programmer response:

Correct the CHNG or ISRT call.

AB

Explanation:

An I/O area is required as one of the parameters on this call, and the call did not specify one. After this status code is returned, your position in the database is unchanged. AB only applies to full-function DEQ calls.

Programmer response:

Correct the call by including the address of an I/O area as one of the call parameters.

AC

Explanation:

For call-level programs:

An error is in an SSA for a DLET, Get, ISRT, or REPL call for one of these reasons:

DL/I could not find a segment in the DB PCB specified in the call that has the segment name given in the SSA.
The segment name is in the DB PCB, but the SSA specifying that segment name is not in its correct hierarchic sequence.
The call specifies two SSAs for the same hierarchic level.
IMS also returns this status code when a STAT 1 call has an invalid statistics function. After this status code is returned, your position in the database is unchanged.

For command-level programs:

An error is in one of the WHERE or SEGMENT options on a Get or ISRT command for one of these reasons:

DL/I could not find a segment in the DB PCB specified in the segment name given in the SEGMENT option.
The segment name is in the DB PCB, but the qualification for the command does not specify it in its correct hierarchic sequence.
The command specifies two SEGMENT options for the same hierarchic level.
Programmer response:

Correct the segment name in the SSA or SEGMENT option or in the statistics function of the STAT1 call.

AD

Explanation:

For call-level programs:

Either the function parameter on the call is invalid or the function is not supported for the type of PCB specified in the call. Only applies to full-function DEQ calls. Some possible reasons are:

The function parameter is invalid.
A system service call used a PCB that is not the I/O PCB.
A call issued in a DCCTL environment referred to an unsupported PCB or database.
A message GU or GN call used an alternate PCB instead of the I/O PCB.
A database call used a PCB that is not a DB PCB.
A message GU used the I/O PCB without specifying IN=trancode in the BMP JCL.
A SETS or ROLS call included the I/O area but omitted the token.
A CPI Communications driven program issued the SETO call on the I/O PCB.
A call was issued from an IFP region on an I/O PCB.
Invalid subsystem level for spool API processing.
Start of changeAn ISRT to I/O PCB is invalid for a message from OM API.End of change
For command-level programs:

A command was issued that is not supported in the environment. An example is a system service command in an online program. If the command is correct, some other possible causes are:

Referencing a DB PCB on a system service command. System service commands must reference the I/O PCB.
Referencing an I/O PCB for a database command, or not defining an I/O PCB before issuing system service commands.
A command issued in a DCCTL environment referred to an unsupported database or DB PCB.
Programmer response:

Be sure that the specified function is valid for the PCB specified by the request.

AF

Explanation:

GSAM detected a variable-length record whose length is invalid on a GU, GHU, GN, or GHN call.

Programmer response:

Correct the program.

AG

Explanation:

During INQY call processing, the I/O area was not large enough to contain all the output data. The I/O area was filled with partial data, as much as would fit in the area provided. AIBOALEN contains the actual length of the data returned to the application and AIBOAUSE contains the output area length that is required for the application program to receive all the data.

During POS call processing, the I/O area was not large enough to contain all the output data. The I/O area size is based on PSBIOASZ. This size was either user specified at PSBGEN by IOASIZE parameter or calculated by ACBGEN. See IMS Version 9: Utilities Reference: System – PSBGEN Statement for further detail.

Programmer response:

Correct the application program by using a larger I/O area. For an INQY call, the minimum size of the I/O area is the value contained in the AIBOAUSE field. For an POS call, the minimum size of the I/O area is calculated by (((number of areas) * 24)+2) and maximum is 49154 bytes.

AH

Explanation:

You get this status code if you:

Specify an options list parameter that was not specified in the call list.
The program issued an ISRT call that did not include any SSAs. The ISRT call requires an SSA.
If the program was issuing a GU call to a GSAM database, the GU did not specify an RSA. RSAs are required on GU calls to GSAM databases. After this status code is returned, your position in the database is unchanged.
Programmer response:

For cause 2, correct the ISRT call by including a qualification; or for cause 3, correct the GU call by adding an RSA to the call.

AI

Explanation:

A data management open error occurred. Some possible reasons are:

An error is in the DD statements.
Neither DD statements nor DFSMDA dynamic allocation members were provided for this database.
The data set OPEN request did not specify load mode, but the data set was empty. An empty data set requires the load option in the PCB.
The buffer is too small to hold a record that was read at open time.
No DD statements or DFSMDA members were supplied for logically related databases.
For an OSAM data set, the DSORG field of the OSAM DCB, DSCB, or JFCB does not specify PS or DA.
For an old OSAM data set, the BUFL or BLKSIZE field in the DSCB is 0.
The data set is being opened for load, and the processing option for one or more segments is other than L or LS.
The allocation of the OSAM data set is invalid. The allocation is probably (1,1), rather than (1,1) and this causes the DSORG to be P0.
The processing option is L, the OSAM data set is old, and the DSCB LRECL, BLKSIZE, or both, does not match the DBD LRECL, BLKSIZE, or both.
Incorrect or missing information prevented IMS from determining the block size or the logical record length.
A catalog was not available for accessing a VSAM database that was requested.
OS could not perform an OPEN, but the I/O request is valid. Either the data definition information is incorrect, or information is missing.
RACF® was used to protect the OSAM data set, and the control region has no update authorization.
If IMS returns message DFS0730I, you can determine the cause of the OPEN failure from this message in the job log. For more information, see the description of this message in IMS Version 9: Messages and Codes, Volume 2.

Programmer response:

These kinds of problems often require the help of a system programmer or system administrator. But before you go to one of these specialists, some things you can do are:

Check the DD statements. Make sure that the ddname is the same as the name specified on the DATASET statement of the DBD. The segment name area in the DB PCB (call level), or in the DIB (command level) has the ddname of the data set that could not be opened.
Check the PSB and make sure that the appropriate processing options have been specified for each of the DB PCBs that your program uses.

AJ

Explanation:

For call-level programs:

For calls that provide parameters in the I/O area, such as SETS, ROLS, and INIT, the format of the parameters in the I/O area is invalid.

For database calls that include SSAs, such as Get, DLET, REPL, and ISRT, the format of one of the SSAs is invalid. The number in the segment level number field of the DB PCB is the level number of the SSA that is invalid. Some possible reasons for the invalid SSA format are:

The SSA contains a command code that is invalid for that call.
The relational operator in the qualification statement is invalid.
A qualification statement is missing a right parenthesis or a Boolean connector.
A DLET call has multiple or qualified SSAs.
A REPL call has qualified SSAs.
An ISRT call has the last qualified SSA.
An ISRT call that inserts a logical child segment into an existing database includes the D command code. ISRT calls for logical child segments cannot be path calls.
The RSA parameter on a GSAM call is invalid.
The SSA used an R, S, Z, W, or M command code for a segment for which no subset pointers are defined in the DBD.
The subset command codes included in the SSA are in conflict; for example, if one SSA contained an S status code and a Z status code, Fast Path would return an AJ status code. S means to set the pointer to current position; Z means to set the pointer to 0. You could not use these status codes in one SSA.
The pointer number following a subset pointer command code is invalid. Either you did not include a number, or you included an invalid character. The number following the command code must be between 1 and 8, inclusive.
The SSA included more than one R command code. An SSA can include only one R command code.
The specified size for the SSA is too small. After this status code is returned, your position in the database is unchanged.
In response to a SETS or ROLS call, the length of the I/O area is 0, the LL field is less than 4, or the ZZ field is not 0.
In response to an INIT call, the format of the I/O area is incorrect.
For calls that provide the length of the I/O area in the AIB, such as INQY, the I/O area length is invalid.
For SETO, I/O area length is less than 4096 or less than the minimum.
For the Q command code, the specified lock class is not a letter (A-J).
For command-level programs:

An ISRT command attempted to insert a logical child segment using a path command. ISRT commands for logical child segments cannot be path commands.

Programmer response:

If you receive this status code on a SETS, ROLS, or INIT request, correct the parameters provided in the I/O area.

If you receive this status code on a Get, DLET, REPL, or ISRT request, correct the invalid portion of the SSA. If you receive this status code on a GSAM call, correct the RSA.

AK

Explanation:

For call-level programs:

An SSA contains an invalid field name, or the field name is not defined in the DBD. The number in the segment level number field of the DB PCB is the level number of the SSA that contains the invalid name.

You can also receive this status code if the program is accessing a logical child through the logical parent. DL/I returns AK if the field specified in the qualification has been defined for the logical child segment, and it includes (at least partially) the portion of the logical child that contains the concatenated key of the logical parent.

When you are using field-level sensitivity, a field you specified in the SSA has not been defined in the PSB. After this status code is returned, your position in the database is unchanged.

For command-level programs:

A WHERE option contains an invalid field name. (The field name is not defined in the DBD.) The number in the DIBSEGLV field of the DIB is the level number of the WHERE option that contains the invalid name.

Programmer response:

Correct the SSA or WHERE option.

AL

Explanation:

You get this status code if you:

Issue a message call in a batch program.
Issue a ROLB, ROLS, or SETS call from a batch program under one of the following conditions:
The system log is not on DASD.
The system log is on DASD, but dynamic backout has not been specified using the BKO execution parameter.
Programmer response:

For cause 1, correct the program so that message calls in a batch program are not issued. For cause 2, either change the program or put the log on DASD with BKO specified on the execution parameter.

AM

Explanation:

For call-level programs:

The call function is not compatible with the processing option in the PCB, the segment sensitivity, the transaction-code definition, or the program type. The level number in the PCB is the level number of the SSA that is invalid. Some of the reasons you might get this status code are:

Start of changeIf you attempt to OPEN a GSAM database without providing an I/O area.End of change
If you issue a retrieval call with the D command code in a program that does not have the P processing option specified in the DB PCB that was used for the call.
If you issue a DLET or ISRT call to a terminal-related dynamic MSDB from a program with no input LTERM present. An example is a batch-oriented BMP.
If the subset pointer referenced in the SSA was not defined in the program’s PSB. For example, if your program’s PSB specifies that your program can use subset pointers 1 and 4, and your SSA references subset pointer 5, Fast Path returns an AM status code to your program.
If your program tried to use an S, Z, W, or M command code for a subset pointer to which it was not pointer update-sensitive, as defined in the program’s PSB.
If a BMP, a CICS® online program, or an MPP issues an ISRT call with the D command code when the program does not have the P processing option specified in the DB PCB that was referenced in the call. Batch programs do not need the P processing option to issue an ISRT call with the D command code, unless the program uses field-level sensitivity.
If the processing option is L and the program issued a call other than an ISRT call. Load programs can issue only ISRT calls.
If a DLET, REPL, or ISRT call that references a DB PCB does not have the necessary processing option for that call. The minimum processing options for these calls are D for DLET, R for REPL, and I for ISRT.
If you issue a DLET, REPL, or ISRT call for a segment to which the program is not sensitive.
If you issue a CHKP call on a GSAM or VSAM data set opened for output. This code is returned in the GSAM PCB.
If you issue a GSAM call with an invalid call function code.
If you issue an ISRT or DLET call for the index target segment or a segment on which the index target is dependent in the physical database while using an alternate processing sequence.
If you issue a path replace where the program does not have replace sensitivity, command code N is not specified, and the data for the segment is changed in the I/O area.
If GSAM could not obtain buffer space because the region size is too small. This is shown by the value X’1C’ in the field GBCRTNCD.
If you issue a DLET, ISRT, or REPL call from a program where the TRANSACT macro that was used at IMS system definition specified INQUIRY=YES for the input message.
If you issue a call from an ETO terminal to a terminal-related MSDB or a non-terminal-related MSDB with terminal-related keys. See IMS Version 9: Administration Guide: Transaction Manager for more information about ETO.
If you issue any type of call with update intent to an MSDB from a dynamically defined device such as a LU 6.2, ETO, or OTMA device.
If you issue a REPL call with a PCB that specifies VIEW=MSDB, the segment must have a key. This includes any segment in a path if command code ‘D’ is specified.
After this status code is returned, your position in the database is unchanged.

For command-level programs:

The command is not compatible with the processing option in the PCB or segment sensitivity. The level number in the DIB is the level number of the qualification that is invalid. Some of the reasons you might get this status code are:

If you issue a path retrieval command in a program that does not have the P processing option specified in the DB PCB that was used for the call.
If the processing option is L and the program issued a command other than a LOAD command. Load programs can issue only LOAD commands.
If you issue a DLET, REPL, or ISRT command that references a DB PCB that does not have the necessary processing option for that command. The minimum processing options for these calls are D for DLET, R for REPL, and I for ISRT.
If you issue a DLET, REPL, or ISRT command for a segment to which the program is not sensitive.
If you issue a CHKP command if a GSAM or VSAM data set is open for output.
If you issue a GSAM call with an invalid call function code.
If you issue an ISRT or DLET command for the index target segment, or a segment in the physical database on which the index target is dependent, while using an alternate processing sequence.
If you issue a path replace where the program does not have replace sensitivity, command code N is not specified, and the data for the segment is changed in the I/O area.
If you issue a call to a GSAM dummy data set. Any call to a GSAM dummy data set is invalid.
Programmer response:

Correct the request, or make the necessary changes in the PCB.

AO

Explanation:

A BSAM, GSAM, VSAM, or OSAM physical I/O error occurred. When issued from GSAM, this status code means that the error occurred when:

A data set was accessed.
The CLOSE SYNAD routine was entered. The error occurred when the last block of records was written before the closing of the data set.
IMS does not return an AO status code for write errors with BSAM, VSAM, and OSAM.

If your program receives this status code after issuing a call, this call does not cause the database to be stopped.

Programmer response:

Determine whether the error occurred during input or output, and correct the problem. These problems typically require the help of a system programmer or system administrator.

AP

Explanation:

A message or CHKP call is invalid because more than four parameters (or five if a parameter count is specified) are in a message call or a CHKP call issued in a transaction-oriented BMP. The following exceptions apply:

A batch-oriented BMP can issue a CHKP call with more than 4 (or 5) parameters.
One parameter after the I/O area parameter is allowed in order for the application program to specify a MOD name in an ISRT call. It is counted towards the maximum of four (or five) parameters.
Programmer response:

Correct the call.

AQ

Explanation:

The AIB contains an invalid subfunction, or the INQY call specifies an invalid function.

Programmer response:

Specify a valid subfunction. Valid INQY call subfunctions are null, DBQUERY, ENVIRON, FIND, or PROGRAM.

AR

Explanation:

The options list contains an error that is related to a keyword. The feedback area, if one is provided, will contain additional error information.

Programmer response:

Correct the request.

AS

Explanation:

An IAFP specific processing error has occurred. The PRTO= option contained invalid data set processing options. The feedback area, if provided, will contain additional error information.

Programmer response:

Correct the request.

AT

Explanation:

The length of the data in the program’s I/O area is greater than the area reserved for it in the control region. The length of the area reserved is defined by the ACB utility program, DFSUACB0, and is printed as part of its output.

Programmer response:

If the program is in error, correct the program. If the program is correct, reserve a larger control region by specifying parameters on the PSBGEN statement of PSBGEN.

AU

Explanation:

The total length of the SSAs in the database call is greater than the area reserved for them in the control region. The length of the area reserved is defined by the ACB utility program, DFSUACB0, and printed as part of its output. After this status code is returned, your position in the database is unchanged.

Programmer response:

If the program is in error, correct the program. If the program is correct, increase the PSB SSA space defined in the PSBGEN.

AX

Explanation:

A failure to get CSA storage, a failure of the DFSLUMIF call, or a processing error with the IAFP Spool API occurred. When this code is returned, diagnostic information is written to the log in a ’67D0′ log record. Spool API processing errors return a DFS0013E message.

A RACROUTE REQUEST=VERIFY,EVIRON=CREATE (RACF RACINIT) made during an AUTH call for LU 6.2 was unsuccessful.

An OTMA user exit returned invalid routing information. See OTMA return codes in the IMS Version 9: Open Transaction Manager Access Guide and Reference.

Programmer response:

These problems typically require the help of a system programmer or system administrator.

AY

Explanation:

IMS ignored a message ISRT call because the logical terminal referenced by the alternate response PCB currently has more than one physical terminal assigned to it for input purposes.

Programmer response:

Ask the master terminal operator to determine (using /DISPLAY ASSIGNMENT LTERM x) which physical terminals (two or more) refer to this logical terminal. Use the /ASSIGN command to correct the problem.

AZ

Explanation:

IMS ignored a PURG or ISRT call in a conversational program. Some possible reasons are:

Issuing a PURG call referencing the I/O PCB or an alternate response PCB. Conversational programs can issue PURG calls only when the PURG call references an alternate PCB that is not an alternate response PCB.
Issuing a PURG call to send the SPA.
Issuing an ISRT or a PURG call referencing an alternate PCB that is set for an invalid destination or for a destination that IMS cannot determine.
Issuing an ISRT call referencing an alternate PCB whose destination is a conversational transaction code when the first segment inserted is not the SPA; or when IMS cannot determine whether or not the SPA was the first segment inserted.
Programmer response:

Correct the PURG or ISRT call.

A1

Explanation:

IMS returns the A1 status code for one of the following reasons:

AUTH call for LU 6.2 input did not find a PST LU 6.2 extension block or did not find a UTOKEN.
CHNG call against alternate response PCB when the application program has not yet issued a GU.
The MSC program routing exit routine (DFSCMPR0) was called while processing a CHNG call and one of the following occurred:
The exit routine rejected the call by returning with return code 8 (A1 status code).
The exit routine returned with an RC=4 to route the message back to the originating system; however, the originating system has not been determined because the application program has not issued a GU.
The SYSID returned in R0 by the exit routine is not a valid remote SYSID.
The MSNAME pointed to by the address in R1, set by the exit routine, is not a valid remote MSNAME.
The MSC program routing routine exit (DFSMSCE0) was called while processing an ISRT or CHNG call and one of the following occurred:
The exit routine rejected the call by setting MSPRFL3=MSPR3REJ in the DFSMSCEP user parameter list that is passed to the exit.
IMS detected an error while processing the reroute request from the exit. It issued a message “DFS070 Unable to route message RSN=xxyy” and wrote a 6701-MSCE log record to the IMS log. For more information about this error, see the topic on diagnosing message routing problems in IMS Version 9: Diagnosis Guide and Reference.
The destination name supplied in the I/O area of a CHNG call is invalid.
The destination name supplied in the I/O area of a CHNG call is valid (the destination is a program and the PCB is not an alternate response PCB), but the transaction is Fast Path exclusive.
AUTH call parameter list contained an invalid generic CLASS name. No access checking was done.
The routing exit routine (DFSCMPR0 or DFSMSCE0) attempted an invalid request to override a direct routing request.
The OTMA Prerouting Exit routine (DFSYPRX0) might have specified an incorrect 16-byte OTMA client override name. The client name cannot contain all blanks. If the client name is shorter than 16 bytes, it must be padded with blanks.
The length of modified OTMA user data is over 1K for the OTMA DFSYDRU0 exit.
The OTMA DFSYPRX0 and DFSYDRU0 user exit routines returned an unsupported return code.
Programmer response:

Correct the CHNG or AUTH call, MSC program routing exit (DFSCMPR0 or DFSMSCE0), or ensure that the specified destination is valid.

A2

Explanation:

The program issued a CHNG call against an invalid PCB. The PCB was invalid for one of these reasons:

It was not an alternate PCB.
It was an alternate PCB, but it was not modifiable.
It was being used to process a message and had not completed processing it.
Programmer response:

Check the PCB that was used by the CHNG call and determine which PCB should have been used for the call.

A3

Explanation:

The program issued an ISRT or PURG call that referenced a modifiable alternate PCB that did not have its destination set. IMS returns this status code to PURG calls only when the PURG call specified an I/O area as one of the parameters.

Programmer response:

Issue a CHNG call to set the destination of the modifiable alternate PCB, and then reissue the ISRT or PURG call.

A4

Explanation:

A security violation was detected during processing of an AUTH, CHNG, or ISRT call of a SPA on a conversational response. Some of the reasons for this status code are:

Transaction authorization is active and either RACF or a transaction authorization exit routine returned a nonzero return code.
The user is not authorized for access to the RESOURCE name in the class requested in the AUTH call. No installation data is returned.
No source CNT is available, which might be caused by the application program not having issued a GU.
A program-to-program message switch is being done. In this case, the applicable authorization LTERM is based on the original message, and this authorization does not allow this function to be performed.
Programmer response:

Check the transaction code to make sure it was entered correctly. If it was, check with the person who handles security at your installation.

A5

Explanation:

An ISRT or PURG call supplied an invalid parameter list. The call supplied the fourth parameter (the MOD name), but the ISRT or PURG being issued was not for the first segment of an output message.

Programmer response:

Correct the ISRT or PURG call.

A6

Explanation:

For a message processing program (MPP or BMP), IMS ignored a message ISRT call because the length of the message segment being inserted exceeds the size specified in the SEGSIZE keyword of the TRANSACT macro. For a Fast Path program (IFP), the length of the output message to a Fast Path terminal exceeds the size specified in the FPBUF parameter of the TERMINAL macro.

Programmer response:

Correct the output message segment.

A7

Explanation:

IMS ignored a message ISRT call for one of the following reasons:

The number of message segments inserted exceeds the number specified in the SEGNO keyword of the TRANSACT macro.
The IMS user Queue Space Notification exit routine (DFSQSPC0) prohibited the insert to prevent the message queue data sets from overflowing. However, the ISRT is not ignored for the message in progress when the DFSQSPC0 threshold is exceeded. The in-progress message will be processed. Any subsequent ISRTs from that application are immediately rejected with a status of A7.
The IMS Shared Queues Space Notification exit routine (DFSQSSP0) prohibited the message insert. Possible reasons are:
The shared queues structure is in overflow
The queue for the destination is on the overflow structure
The number of messages inserted for this unit of work exceeds a user-defined limit
The in-progress message will be processed. Any subsequent ISRTs from that application are immediately rejected with a status of A7.
The IMS user Queue Manager Space Notification exit routine (DFSQSPC0, or DFSQSSP0 for shared queues) prohibited the insert because the destination TRANSACTION or LTERM was stopped. The in-progress message will be processed. Any subsequent ISRTs from that application are immediately rejected with a status of A7.
Programmer response:

Check the output messages and correct them. Use ROLB to backout in-progress messages.

A8

Explanation:

IMS ignored an ISRT call because:

An ISRT call to an alternate response PCB must not follow an ISRT call to the I/O PCB.
An ISRT call to the I/O PCB must not follow an ISRT call to an alternate response PCB.
Programmer response:

Correct the ISRT call.

A9

Explanation:

IMS ignored the ISRT call because:

The ISRT call referenced an alternate response PCB defined as SAMETRM=YES, but the PCB represented a logical terminal that is not part of the originating physical terminal. An alternate response PCB defined as SAMETRM=YES must represent the same physical terminal as the physical terminal associated with the originating logical terminal.
The originating terminal is in response mode, and the alternate response PCB is not associated with that logical terminal.
IMS does not return this status code if the program makes either of these errors while communicating with a terminal in a remote IMS system through MSC.

Programmer response:

Determine whether the application program is in error, the output logical terminal has been incorrectly reassigned (using the /ASSIGN command), or if SAMETRM=YES should not have been specified for the alternate response PCB.

BA

Explanation:

The request was not completed because it required access to unavailable data.

A status of BA is returned on a DL/I call that attempts to access an unavailable partition. If the very next DL/I call is a GN that is either completely unqualified or qualified only by root name, then the next partition is selected. The next-partition selection continues until either an available partition is found or there are no more partitions in the database. If an available partition is returned, the call returns the first root in that partition. A GN call that is qualified only on a dependent segment name results in a BA status if the prior call had a BA status returned for the root level.

Only the updates done for the current request, before the time it encountered the unavailable data, are backed out. The state of the database is as it was before the failing request was issued. If the request was REPL or DLET, the PCB position was unchanged. If the request was a Get or ISRT request, the PCB position is unpredictable.

For a DEDB, this status code might be returned if no updates have been made by the current call. If updates have been made by the current call since the last commit point, a BB status code is returned instead. If changes have been made by a previous call, the application program must decide whether to commit these changes.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

If you use PROCOPT=GO and access DEDB areas with SDEP segments, note that some lock requests must be made in a shared SDEP environment. Failing to make these lock requests can cause a BA status code on a DL/I call involving an SDEP segment. For example, if there is a retained lock on a current SDEP CI held by a failed IMS subsystem and a partner IMS issues a DL/I GET call with PCB PROCOPT=GO, a BA status code is returned if the call targets the locked CI.

Start of changeDFSVSMxx option PPUR=Y can be used to prevent this status if it was received when running a PROCOPT=GOx transaction accessing HALDB partitions and a partition is found to be unavailable due to a database command in progress.End of change

Programmer response:

This is an information-only status code.

BB

Explanation:

The BB status code is the same as BA except that all database updates that the program made since the last commit point are backed out, and all nonexpress messages sent since the last commit point are canceled. The PCB position for all PCBs is at the start of the database.

For a DEDB, this status code might be returned if updates have been made by the current call.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

This is an information-only status code.

BC

Explanation:

The response from an INIT STATUS GROUPB call was not completed because it required access to unavailable data.

All database resources that were allotted up to the last commit point are backed out, with the exception of GSAM and DB2 UDB for z/OS. All output messages are backed out to the last commit point. Input messages are requeued.

Programmer response:

This is an information-only status code.

BJ

Explanation:

All of the databases in the PSB are unavailable, or there are no database PCBs in the PSB.

Each PCB (excluding GSAM) received an NA status code as the result of the INQY DBQUERY call.

Programmer response:

This is an information-only status code.

BK

Explanation:

At least one of the databases included in the PSB is unavailable or has limited availability.

At least one PCB received an NA or NU status code as the result of processing the INQY DBQUERY call.

Programmer response:

This is an information-only status code.

CA

Explanation:

The program issued a CMD call with an invalid command verb, or the command verb does not apply to the IMS system that the program is running in. IMS does not return any command responses.

Programmer response:

Correct the command in the CMD call.

CB

Explanation:

The command entered in the CMD call is not allowed from an AOI program. IMS does not return any command responses.

Programmer response:

Correct the command. For a list of the commands that an AOI program can issue, see IMS Version 9: Customization Guide.

CC

Explanation:

IMS has executed the command and returned one or more command responses.

Programmer response:

Your program should issue GCMD calls as necessary to retrieve the responses.

CD

Explanation:

The command that was entered on the CMD call violates security, or the application program is not authorized to issue CMD calls. IMS does not execute the command or return any command responses.

Programmer response:

Correct the command. If necessary, check with the person in charge of security at your installation to find out why your program is restricted from using that command.

CE

Explanation:

IMS rescheduled the message that this GU call retrieved since the last CMD call. The program had not reached a commit point when the message was rescheduled.

Programmer response:

This is an information-only status code.

CF
Start of change

Explanation:

The message being returned on the GU call was received by IMS before the start of this IMS execution. CF can be received on a CHKP call when an I/O area is specified for an MPP or message-oriented BMP. This occurs when a CHKP call issues an internal GU call. This DL/I code is only received by transactions that are eligible to issue commands.

End of change
Programmer response:

This is an information-only status code.

CG

Explanation:

The message retrieved by this GU originated from an AOI exit routine.

Programmer response:

This is an information-only status code.

CH

Explanation:

IMS ignored the CMD call just issued because the AOI command interface detected a system error and was unable to process the command. IMS processing continues.

Programmer response:

Reissue the command.

CI

Explanation:

CI is a combination of CE and CF. The message retrieved by this GU was scheduled for transmission before IMS was last started. The message was rescheduled, but the program had not reached a commit point.

Programmer response:

This is an information-only status code.

CJ

Explanation:

CJ is a combination of CE and CG. The message retrieved by this GU was scheduled for transmission before IMS was last started. The message originated from an AOI exit routine.

Programmer response:

This is an information-only status code.

CK

Explanation:

CK is a combination of CF and CG. The message retrieved with this GU originated from an AOI user exit. The message was scheduled for transmission before IMS was last started.

Programmer response:

This is an information-only status code.

CL

Explanation:

CL is a combination of CE, CF, and CG. Please see the explanations of those codes.

Programmer response:

This is an information-only status code.

CM

Explanation:

The command that was entered on the CMD call has been executed and completed, but it resulted in an exception response that could not be built because of an insufficient amount of general work area (WKAP).

Programmer response:

Increase WKAP if you want retrieval of the response.

CN

Explanation:

The IOASIZE= parameter that was specified on the PSBGEN macro is defined for less than the required minimum for CMD calls (132 bytes).

Programmer response:

Redefine IOASIZE= parameter on the PSBGEN for a minimum of 132 bytes.

CR

Explanation:

The IMS Java application attempted to issue a Java GU message call before issuing a Java commit.

Programmer response:

You must issue a Java commit from your application before issuing another Java GU message call.

DA

Explanation:

The program issued a DLET or REPL that tried to modify the key field in the segment or, when using field-level sensitivity, a REPL call tried to modify a field that had REPL=NO specified on the SENFLD STMT in the PSB. You cannot change a segment’s key field.

Programmer response:

Correct the request.

DJ

Explanation:

The program issued a DLET or REPL call that was rejected because the segment was not currently in hold status. Some possible reasons for this status code are:

The segment had not been previously retrieved with a Get Hold call.
The segment was already deleted using this PCB. After one Get Hold call, multiple REPL calls or a DLET call following a REPL call are valid, but multiple DLET calls are not.
The segment was obtained using a secondary index as the processing sequence. A subsequent DLET or REPL call using either this PCB or another PCB within the PSB caused the current secondary index entry for this PCB to be deleted.
A checkpoint call was issued following the Get Hold call and preceding the REPL or DLET call.
A rollback call was issued following the get hold call and preceding the REPL or DLET call.
Programmer response:

Correct the program so that the segment is in hold status when a DLET or REPL is issued.

DX

Explanation:

The program issued a DLET that violates the delete rule for that segment.

Programmer response:

Check the program to see whether or not the program should delete that segment; if it should, check with your DBA (or the equivalent specialist at your installation) to find out what delete rule has been specified for that segment.

EM

Explanation:

The EM status (empty area) indicates that there are no valid sequential dependent segments in the area.

Programmer response:

Check to see that the correct area is being processed by the utility and that sequential dependent segments have been inserted.

E1

Explanation:

The DFSMSCE0 user routing exit rejected the ISRT or CHNG call by setting MSPRFL3=MSPR3REJ and MSPRSTAT=E1 in the DFSMSCEP user parameter list that is passed to the exit.

Programmer response:

Refer to the user installation copy of the DFSMSCE0 exit for information about the MSPR3REJ and MSPRSTAT settings. Contact your system programmer.

E2

Explanation:

The DFSMSCE0 user routing exit rejected the ISRT or CHNG call by setting MSPRFL3=MSPR3REJ and MSPRSTAT=E2 in the DFSMSCEP user parameter list that is passed to the exit.

Programmer response:

Refer to the user installation copy of the DFSMSCE0 exit for information about the MSPR3REJ and MSPRSTAT settings. Contact your system programmer.

E3

Explanation:

The DFSMSCE0 user routing exit rejected the ISRT or CHNG call by setting MSPRFL3=MSPR3REJ and MSPRSTAT=E3 in the DFSMSCEP user parameter list that is passed to the exit.

Programmer response:

Refer to the user installation copy of the DFSMSCE0 exit for information about the MSPR3REJ and MSPRSTAT settings. Contact your system programmer.

FA

Explanation:

IMS returns this status code when the program reaches a commit point and an arithmetic overflow occurs in an MSDB, DEDB, or VSO DEDB during that commit interval since the last commit point (or, if the program had not reached a commit point, since the program began processing). You can receive this status code on a SYNC call, a CHKP call, or a GU call to the message queue, depending on your program. The overflow occurred after the program issued a FLD/CHANGE call, or a REPL call for the MSDB, DEDB, or VSO DEDB. When this happens, IMS issues an internal ROLB call to eliminate the changes that the program has made since the last commit point. All database positioning is lost.

Programmer response:

Reprocess the transaction.

FC

Explanation:

The program issued a request that is not valid for the segment type.

Programmer response:

Correct the request.

FD

Explanation:

A nonmessage driven BMP reached a deadlock when IMS tried to get DEDB or MSDB resources (either DEDB UOWs or overflow latches) for the program. Or, a mixed-mode BMP reached a deadlock on any resource, either Fast Path or full function. IMS eliminates all database updates that the program has made since the last SYNC call, CHKP request, or SYMCHKP command (or since the program started processing, if the program has not issued a SYNC call or CHKP request). All database positioning is lost, unless you specified the P processing option in the PCB. Messages to a non-express alternate PCB are discarded.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Start of changeIf the application connects to one or more external subsystems and one of the external subsystems encounters a problem on a COMMIT request, an FD status code might be returned to the applicationEnd of change

Programmer response:

Start processing from the last commit point. If you reach a deadlock again, terminate the program.

FE

Explanation:

IMS returns this status code any time a program issues a FLD call that receives a nonblank status code in the FSA.

Programmer response:

See “Fast Path Databases” in IMS Version 9: Application Programming: Database Manager for an explanation of FSA status codes and correct the FLD call.

FF

Explanation:

A program issued an ISRT call against an MSDB that has no free space. If IMS determines that there is no free space when the program issues the ISRT call, the program receives the FF status code for that call. IMS might not determine this until the program reaches the next commit point. In this case, IMS returns FF when the program issues a GU call to the message queue, a SYNC call, or a CHKP call, depending on which call caused the commit point.

Programmer response:

To avoid this situation, specify more space for the MSDB at the next system start (cold start or normal restart).

FG

Explanation:

FG is a combination of FE and FW. A batch-oriented BMP issued a FLD call that received a nonblank status code in the FSA, and the program has depleted its normal buffer allocation.

Programmer response:

Check the FSA status code and correct the FLD call, and then issue SYNC or CHKP calls in the program more frequently. One way to handle this status code is to branch to an error routine that causes the program to issue SYNC or CHKP calls more frequently when it receives this status code.

FH

Explanation:

Start of changeA DEDB area was inaccessible to the requested service when the application program issued a database request or when the application program reached a commit point. The AREA was stopped or the DEDB randomizing routine was not loaded into storage. A /START DATABASE dedbname or UPDATE DB NAME(name) START(ACCESS) command will cause the DEDB randomizing routine to be reloaded.End of change

If IMS returns this status code on a call that caused a commit point to occur (a SYNC call, a message GU, a CHKP request, or a SYMCHKP command), IMS issues an internal ROLB call to eliminate the program’s database updates and message output created since the last commit point.

If your program is accessing a DEDB in a data-sharing environment, and if the authorization fails when your program issues its first DL/I call to the DEDB, Fast Path returned this status code. Fast Path also notified the master terminal operator of the authorization failure. Your position in the database is before the first root in the next area. A GN will get the next available record (unless that one is also inaccessible).

If a program has access to an area through a PCB with PROCOPT=H and another PCB without PROCOPT=H, it is possible that only calls to the PCB with PROCOPT=H will receive the FH status code. This is because the area is accessible to IMS, but the required HSSP (high-speed sequential processing) setup could not be established. Message DFS0533A explains the reason for this occurrence and is sent to the job log. This status code is also returned if the PROCOPT for one PCB is more restrictive than the PROCOPT of a different PCB in the same PSB. Position is set to the beginning of the next accessible area.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

If the data in the area is important, contact the DBA. If the data in the area is unimportant, the program should roll back the changes. Your program can continue processing with the next available area.

If the status code is related to an HSSP setup problem, fix the error as described in the message DFS0533A in the job log.

FI

Explanation:

IMS determined that one of the following events occurred:

The storage address at the start of the I/O area supplied by the program could not be referenced.
The storage address computed as the start of the I/O area plus the length of the segment or segments being returned could not be referenced.
IMS sets this status code to avoid a potential program check abend during data movement. The absence of an FI status code does not necessarily mean that the supplied I/O area address is logically correct or that the area is large enough.

Note:
If the AIB interface is being used, the supplied length in the AIB is validated against returned segment lengths. If this validation fails, the appropriate AIB return and reason codes are set. If this validation succeeds, IMS still checks the actual storage addresses involved in the move and it can return an FI status code. If an AIB interface is not used, only the storage address validation is performed.
Programmer response:

Correct the program.

FM

Explanation:

The application program issued a request for which the randomizing routine returned a return code of 4.

The key supplied on a DL/I call to a HALDB was greater than the high key value for the last partition. Or the user’s partition selection exit returned with RC=04 after having been passed a key value with which to select a partition.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

The database position has not changed. The application program must determine subsequent processing.

FN

Explanation:

The program issued a FLD call that contains a field name in the FSA that is not defined in the DBD. IMS does not continue processing the FLD call or any of the FSAs in the FLD call. IMS returns an FN status code in this situation even if an earlier FSA in the same FLD call received an FE status code.

Programmer response:

Issue a ROLB call to remove the effects of the incorrect FLD call and then correct the FLD call.

FP

Explanation:

The I/O area referenced by a REPL, ISRT, or FLD/CHANGE call to an MSDB contains an invalid packed-decimal or hexadecimal field.

Programmer response:

Correct the data in the I/O area.

FR

Explanation:

One of the following situations exists:

A batch-oriented BMP issued a database request that forced the system to go beyond the buffer limit specified for the region.
A batch-oriented BMP received a GC status code in a PCB with PROCOPT=H. Another commit process was required before using the PCB again.
IMS eliminates all database changes made by the program since the last SYNC call, CHKP request, or SYMCHKP command the program issued (or since the program started processing if the program has not issued any SYNC calls, CHKP requests, or SYMCHKP commands). All database positions for PCBs not referring to a DEDB with PROCOPT=P or H active are lost. If the PCB referred to a DEDB with PROCOPT=P or H active, the position is set to the valid position after the last commit process, or the start of the valid range if there was no commit process.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

Either terminate the program and restart it with a larger buffer allocation, or provide a routine that causes frequent commit points. If PROCOPT=H is used, make sure that a commit point is requested after a GC code has been returned.

FS

Explanation:

For a root segment or direct dependent segment, this status code is returned only to BMPs. For a sequential dependent segment, this status code can be returned to either a BMP or a message-driven program:

A BMP issued an ISRT request for a root segment, a direct dependent segment, or a sequential dependent segment, but IMS could not get enough space in either the root-addressable or sequential dependent part of the DEDB area to insert the new segment:
If IMS returns this status code on an ISRT request for a root segment, a direct dependent segment, or a sequential dependent segment, the problem is with the root-addressable portion of the area, the independent overflow area, or the sequential dependent area.
If IMS returns this status code when the program issues a SYNC call, CHKP request, or SYMCHKP command, the problem is with the sequential dependent part of the area.
In either case, IMS eliminates all of the database changes the program has made since the last commit point (or since the program started processing, if the program has not reached a commit point).
A message-driven program issued an ISRT request for a sequential dependent segment, and the sequential dependent part is full.
Related Reading: For more information about sequential dependent space management, see the IMS Version 9: Administration Guide: Database Manager.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

Continue with other processing, and report the problem to the system programmer.

FT

Explanation:

The Fast Path program issued a call to a Fast Path database that included too many SSAs. A call to a DEDB can include up to 15 SSAs. A call to an MSDB can include only one SSA.

Programmer response:

Correct the call.

FV

Explanation:

At least one of the verify operations in a FLD call issued in a batch-oriented BMP failed when the program reached a commit point. IMS eliminates the database updates the program has made since it issued the last SYNC or CHKP call (or if the program has not issued a SYNC or CHKP call, since the program started processing). All database positioning is lost.

Programmer response:

Reprocess the transaction or terminate the program.

FW

Explanation:

A BMP has used all buffers that are allocated for normal use, or all buffers have been modified. IMS returns this status code to warn you that you might be running out of buffer space. An FR status code might be imminent.

If you have been processing a DEDB, you get FW for requests that change data.

If you have been processing an MSDB, you get FW for all calls that change data and for GH calls.

With a DEQ call, you receive this code if no buffers can be released.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

You can supply an error-handling routine, triggered by the FW status code, that will cause your program to issue SYNC calls, CHKP requests, or SYMCHKP commands as soon as an FW status code is returned to your program. This reduces the total buffer requirement. To avoid receiving the FW status code, issue SYNC or CHKP calls more frequently.

FY

Explanation:

PROCOPT=H PCBs process segments sequentially in the forward direction. Position is established on a UOW and is moved forward only. Attempts to retrieve segments before the current UOW position are not allowed for HSSP application programs and will not be processed; they receive this status code.

Programmer response:

Change the application program to retrieve segments in a forward direction only; use a PCB with a PROCOPT value other than H to access the segments in the backward direction.

GA

Explanation:

In trying to satisfy an unqualified GN or GNP call, IMS crossed a hierarchic boundary into a higher level.

If IMS returns GA after a STAT2 request, it means that the request that was just issued retrieved the total statistics for all the VSAM buffer subpools.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command. This call results in a return code of 0.

Programmer response:

This status code is an information-only status code.

GB

Explanation:

In trying to satisfy a GN call, DL/I reached the end of the database or, if you used a SETR statement, the end of the current range. In this situation, the SSA for the call or qualification for the command specified data beyond the last occurrence, and the search was not limited to the presence of a known or expected segment occurrence.

For example, a GN call was specified for a key greater than a particular value, rather than a GU call specifying a key value beyond the highest value.

A GB status code can be returned for:

An unqualified GN call
A qualified GN call without a maximum key (if no data is returned to the I/O area)
In contrast, a GE status code, instead of a GB status code, can be returned for:

A GU call
A qualified GN call without a maximum key (if data is returned to the I/O area)
A qualified GN call with a maximum key
IMS also returns this status code when it has closed a GSAM data set. The assumed position for a subsequent request for a GSAM or full-function database is the beginning of the database, or if a SETR statement was used for a DEDB database, the beginning of the current range.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

User determined.

GC

Explanation:

An attempt was made to cross a unit-of-work (UOW) boundary, or an area boundary in the case of PROCOPT=H. For a batch-oriented BMP PCB with PROCOPT=H or PROCOPT=P, at least one call on the referenced PCB changed position in the database since the last commit process or after the program began executing. IMS did not retrieve or insert a segment. Position is before the first segment of the following UOW.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

User determined. However, if the GC status code results from a call that referred to a PCB with PROCOPT=H, the program must cause a commit process before any other call can be issued for that PCB. Failure to do so results in an FR status code.

GD

Explanation:

The program issued an ISRT call that was not qualified for all levels above the level of the segment being inserted. For at least one of the levels for which no qualification was specified, a prior request using this PCB established valid position on a segment. That position is no longer valid for one of these reasons:

The segment has been deleted by a DLET call using a different DB PCB.
The segment was retrieved using an alternate processing sequence, and a REPL or DLET call for this DB PCB caused the index for the existing position to be deleted.
Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

User determined.

GE

Explanation:

For call-level programs:

IMS returns this status code when:
DL/I is unable to find a segment that satisfies the segment search argument described in a Get call.
For an ISRT call, DL/I cannot find one of the parents of the segment being inserted.
For an ISRT call, DL/I was requested to insert a root segment outside of the accessible range determined by a SETR statement.
The program issued a STAT3 call for OSAM buffer pool statistics, but the buffer pool does not exist.
The program issued a STAT3 call for VSAM buffer subpool statistics, but the subpools do not exist.
A nonmessage driven BMP issued a FLD call to an MSDB segment. After the FLD call but before a commit point, the MSDB segment was deleted. GE can be returned for this reason after either a SYNC or a CHKP call.
For command-level programs:

DL/I is unable to find a segment that satisfies the segment described in a Get command.
For an ISRT command, DL/I cannot find one of the parents of the segment you’re inserting.
The program issued a STAT3 command for OSAM buffer pool statistics, but the buffer pool does not exist.
The program issued a STAT3 call for VSAM buffer subpool statistics, but the subpools do not exist.
Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

The action you take depends on your program.

Note:
When a GNP call for a DEDB sequential dependent segment results in a GE status code, the I/O area contains a length indication of 10 bytes and the original position of the deleted portion of the sequential dependent part. Position is at the end of the sequential dependent chain.
Start of changeA GE status code can be returned to a program using PROCOPT=GOx for a segment that exists in a database during CI splits.End of change

GG

Explanation:

DL/I returns this status code if the segment being retrieved contains an invalid pointer and the application program has a processing option of GOT or GON. (Processing options are explained under PROCOPT in the discussion of program specification block generation in IMS Version 9: Utilities Reference: System.) This can occur when update activity in the database is going on concurrently with your program’s processing.

Start of changeDFSVSMxx option PPUR=Y can be used to prevent this status if it was received when running a PROCOPT=GOx transaction accessing HALDB partitions and a partition is found to be unavailable due to a database command in progress.End of change

For call-level programs:

The PCB key feedback length and area will be based on the last segment that satisfied the call. Your position is at the beginning of the database.

For command-level programs:

If your request specified KEYFEEDBACK, the DIBKFBL will contain the length of the key of the last segment that satisfied the command. Your position is at the beginning of the database.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

Continue processing with another segment or terminate the program. The request that resulted in the GG status code might be successful if you issue it again.

GK

Explanation:

DL/I has returned a different segment type at the same hierarchic level for an unqualified GN or GNP call.

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command. This call results in a return and reason code of 0.

Programmer response:

This is an information-only status code.

GL

Explanation:

For either call-level or command-level programs:

The program issued a LOG request that contained an invalid log code for user log records. The log code in a LOG request must be equal to or greater than X’A0′.

For call-level programs:

DL/I returns GL on a DEQ request when the first byte of the I/O area referenced in the request did not contain a valid DEQ class (B-J).

For command-level programs:

EXECDLI returns a GL status for either a GN, GNP, GU, or DEQ command when the alphabetic character coded on the LOCKCLASS option is not within the range of B to J. An ABENDU1041 is then issued.

Programmer response:

Correct the log code, which is the first byte of the log message.

For call-level programs:

If the program received this status code for a DEQ request, check the DEQ class code in the I/O area.

For command-level programs:

Check the alphabetic character coded for class on the LOCKCLASS option to ensure that it is in the range from B to J.

GP

Explanation:

The program issued a GNP when there is no parentage established, or the segment level specified in the GNP is not lower than the level of the established parent.

Programmer response:

Make sure you have established parentage before issuing GNP, and check the segment level specified by the GNP.

HT

Explanation:

The HT status indicates that the High-Water-Mark time stamp (HWM TS) is less than the Logical Begin time stamp (LB TS).

Programmer response:

The time stamp in the High-Water-Mark segment was not updated on the area data set during utility setup and partner notification. Check whether the data-sharing partner is still running. The RLM may have a lock for the sequential dependent CI.

II

Explanation:

The program issued an ISRT call that tried to insert a segment that already exists in the database. Current position after an II status code is just before the duplicate of the segment you tried to insert. Some of the reasons for receiving this status code are:

A segment with an equal physical twin sequence field already exists for the parent.
A segment with an equal logical twin sequence already exists for the parent.
The logical parent has a logical child pointer, the logical child does not have a logical twin pointer, and the segment being inserted is the second logical child for that logical parent.
The segment type does not have physical twin forward pointers and the segment being inserted is the second segment of this type for that parent, or it is the second HDAM or PHDAM root for one anchor point.
The segment being inserted is in an inverted structure. (The immediate parent of this segment in the logical structure is actually its physical child in the physical structure.)
A physically paired logical child segment already exists with a sequence field equal to that of the segment you’re inserting. For example, the segment could have been inserted with no duplication, but when an attempt was made to position for the insert of its physical pair, the segment had a duplicate key to an existing twin segment.
An application program inserted a key of X’FF…FF’ into a HISAM, HIDAM, or PHIDAM database.
Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

User determined.

IX

Explanation:

The program issued an ISRT call that violated the insert rule for that segment. Some of the reasons that IMS returns this status code are:

The program tried to insert the logical child and logical parent, and the insert rule for the logical parent is physical and the logical parent does not exist.
The program tried to insert the logical child and the logical parent, and the insert rule is logical or virtual and the logical parent does not exist. In the I/O area, the key of the logical parent does not match the corresponding key in the concatenated key in the logical child.
The program tried to insert a logical child, and the insert rule of the logical parent is virtual and the logical parent exists. In the I/O area, the key in the logical parent segment does not match the corresponding key in the concatenated key in the logical child.
The program tried to insert a physically paired segment, where both sides of the physical pair are the same segment type and the physical and logical parent are the same occurrence.
The program issued an ISRT call to a GSAM database after receiving an AI or AO status code.
Programmer response:

Correct the ISRT or the program.

L2

Explanation:

The application program needed to allocate SDEP CI RBAs to contain the application programs’ insert activity for a particular AREA in the DEDB, but the request to acquire the AREA lock failed.

Programmer response:

Contact the IMS DBA or the IMS system programmer.

LB

Explanation:

The segment that the program tried to load already exists in the database. Other possible causes are:

A segment with an equal physical twin sequence field already exists for the parent.
A segment type does not have a physical twin forward pointer, and the segment being inserted is either the second segment of this segment type for the parent or the second HDAM or PHDAM root for one anchor point.
An application program inserted a key of X’FF…FF’ into a HISAM, HIDAM, or PHIDAM database.
Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

Programmer response:

Correct the ISRT call or LOAD command, or find out if the load sequence is incorrect. Check with the DBA or the equivalent specialist at your installation.

LC

Explanation:

The key field of the segment being loaded is out of sequence.

Programmer response:

Check the segment and determine where it should be loaded.

LD

Explanation:

No parent has been loaded for the segment being loaded.

Programmer response:

Check the sequence of segments that have been loaded and determine where the parent should have been loaded.

LE

Explanation:

The sequence of sibling segments being loaded is not the same as the sequence that is defined in the DBD.

Programmer response:

Check and correct the sequence of the segments that are being loaded.

LF

Explanation:

The source data for a logical child segment was found in the input stream of a load job for a High Availability Large Database (HALDB). Logical child segments cannot be loaded into a HALDB PHDAM or PHIDAM database. Instead, the segments must be added later in an update run.

Programmer response:

Remove all source data for logical child segments from the load job and insert them later with an update job.

LS

Explanation:

The LS status means that an application program needed to allocate SDEP CI RBAs to contain the application programs’ insert activity for a particular area in a Data Entry Database and the CIs could not be locked by the RLM. The application work may be committed, but some other application work may not have enough CI space, depending on how much SDEP insert work was done and the first committed application.

Programmer response:

Do a commit and be careful not to insert too many more SDEP segments.

MR

Explanation:

An error was detected by the Queue Control Facility (QCF) routines on a GU, GN, ISRT, CMD, or PURG call. If the application program issuing the call is not the QCF (product 5699-E97) licensed product, then the problem is an invalid usage of the MRQPSB block. The PSB block can only be used by this product. Refer to the IMS Version 9: Installation Volume 2: System Definition and Tailoring, MSGQUEUE macro, MRQPSBN= parameter for information about how to specify and use the MRQPSB. If the application program is the QCF program, then the AIBRETRN code should be 000000F0.

Programmer response:

If the application program is not QCF, then use a PSB other than MRQPSB. If the application is QCF, locate the AIBREASN code and refer to the DFSMRAEQ IMS macro for information about MQR/QCF AIBREASN codes. Refer to IMS Queue Control Facility for z/OS® V1R2, Users Guide for AIBREASN codes.

NA

Explanation:

The INIT call with DBQUERY in the I/O area or the QUERY command was issued, and at least one of the databases that could be accessed using this PCB was not available.

A request made using this PCB will probably result in a BA status code if the INIT STATUS GROUPA has been issued or in a DFS3303I message and 3303 pseudoabend if it has not. An exception is when the database is not available because dynamic allocation failed. In this case, a request results in an AI (unable to open) status code.

Programmer response:

This is an information-only status code.

NE

Explanation:

Indexing maintenance issued a DL/I call, and the segment has not been found. This status code is included in message DFS0840I. The system console receives message DFS0840I INDEX ERROR (dbdname) NE (first 45 bytes of key). The application program receives a blank status code.

An application program could have processed a secondary index as a database and thus deleted some of the secondary index entries. Subsequently, when a source segment is deleted, the secondary index for the source statement might not be present. For this reason, when the application program deletes a source segment and the index entry is not present, the DFS0840I message is sent to the system console, but a blank status code is returned to the application program.

Programmer response:

Determine whether the secondary index has been processed as a database and, as a result, the key included in the DFS0840I message was deleted. If this is not the case, check the cause for the index inconsistency with the database and correct it.

NI

Explanation:

The reasons that IMS returns this status code are:

There is a duplicate segment in a unique secondary index. While IMS was inserting or replacing a source segment for a secondary index defined with a unique sequence field, the insertion of the secondary index segment was attempted but was unsuccessful because an index segment with the same key was found. One possible cause for a duplicate segment in the index is that the index DBD incorrectly specified a unique key value—secondary index only.
A data management open error occurred when opening the index data set.
In an online application program, the call is backed out and the program receives an NI status code.

For a batch program that does not log to the IMS DASD log, IMS abnormally terminates the program with a U0828 abend. You should run batch backout.

Programmer response:

The response is determined by the user. If duplicate secondary index entries occur, specify the index as non-unique, and provide an overflow entry-sequenced data set. If an open error occurred, examine message DFS0730I for the cause of the open error.

NL

Explanation:

The application program issued an extended checkpoint call. Checkpoint information is written to the log data set, but there is no DD statement in the batch step for the log, so no checkpoint was written. The DD name for the log data set is IEFRDER. Although no checkpoint information was written, normal commit processing was performed.

Programmer response:

Provide an IEFRDER DD statement. No status is returned for a DD DUMMY statement.

NO

Explanation:

A BSAM or VSAM physical I/O error occurred during a database request that is issued by the index maintenance function.

For an online program, all updates made for the call are backed out and the application program receives the NO status code. For a batch program that does not log to the IMS DASD log, IMS abnormally terminates the program with an 826 abend.

Programmer response:

See accompanying messages giving details of the error. In a batch environment, run batch backout.

NU

Explanation:

An ISRT, DLET, or REPL request using this PCB might result in a BA status code if the INIT STATUS GROUPA call or QUERY command has been issued or in a DFS3303I message or 3303 pseudoabend if it has not. If the unavailable database is only required for delete processing, it is possible that the ISRT and REPL requests can be processed.

Programmer response:

This is an information-only status code.

OS

Explanation:

The OS status indicates that the STOPRBA parameter value given for the DEDB Sequential Dependent Scan Utility is too large for the current sequential dependent CI set.

Programmer response:

Check the parameter value for validity and use a correct value or use the utilities default value for the scan end.

QC

Explanation:

There are no more messages in the queue for the program. The reasons that IMS returns this status code are:

An application program issued a successful CHKP call, but the message GU call issued internally by the CHKP call was unsuccessful (that is, it did not return a message).
An application program processing APPC synchronous messages that does not set sync points for each message GU call (that is, mode=MULT on the TRANSACT macro) is returned a QC status code to force a sync point after each GU call.
For more information regarding the TRANSACT macro, refer to IMS Version 9: Installation Volume 2: System Definition and Tailoring.

An MPP or transaction-oriented BMP issued a GU call to retrieve another message, but either there are no more messages or the processing limit (that is, PROCLIM=parm on the TRANSACT macro) has been reached.
IMS is shutting down or:
A /PSTOP REGION command has been issued for the dependent region in which the application program is processing.
A database memory dump (/DBD) command has been issued.
A database recovery (/DBR) command is in operation.
A stop subsystem (/STOP SUBSYS) command has been issued.
For more information regarding these commands, refer to IMS Version 9: Command Reference.

IMS wants to reschedule the region (quick reschedule). For more information regarding quick reschedule, refer to IMS Version 9: Administration Guide: System.
Programmer response:

This is an information-only status code. The application program should terminate.

QD

Explanation:

The program issued a message GN or GCMD call, but there are no more segments for this message.

Programmer response:

Process the message.

QE

Explanation:

The program issued a message GN call before issuing a GU call to the message queue. In message-driven Fast Path programs, this code applies to message calls only. The program issued a message GN call before issuing a GU call to the message queue. In message-driven Fast Path programs, this code applies to message calls only. This code is also returned when a program issues a ROLB call, specifying the I/O area parameter, without having issued a successful message GU call during that commit interval. A message-driven Fast Path program issued a CHKP call to establish an internal GU call but the CHKP call failed with a status QC code. A successful GU call was never issued during the commit interval for the failing CHKP call. Information only status code for calls encountering SDEP full or FLD verify failures which are reprocessed using ROLB.

Programmer response:

Correct the program by:

Issuing a GU call before the GN call
Issuing a CMD call before the GCMD call
Issuing a GU call before the ROLB call

QF

Explanation:

Start of change

If in a non-shared queues environment, segment length is less than five characters (segment length is message text length plus four control characters).
If in a shared queues environment and the application program ISRT(s) results in a message that spans multiple queue buffers, the second and subsequent buffers are PUT to the shared queues. If the shared queues are full and those CQS PUTs are rejected, this results in a STATUSQF being passed back to the application program.
End of change
Programmer response:

Start of change

If a non-shared queues environment, correct the segment and issue a ROLB to back out any incomplete data.
If a shared queues environment, follow the procedure to increase queue size.
End of change

QH

Explanation:

There has been a terminal symbolic error. The output logical terminal name or transaction code is unknown to IMS. Some reasons for receiving this status code are:

The program tried to insert an alternate response PCB receiving a QC status code for a GU call.
The program tried to insert to an I/O PCB that has a logical terminal name of blanks. This could occur after the program issued a GU call for a message that originated either from a batch-oriented BMP or a CPI Communications driven program.
SMB or CNT could not be found.
The program deallocated a conversation with a SETO call with the DEALLOCATE_ABEND option. Any subsequent ISRT calls are rejected with this status code.
The program issued an ISRT call without first issuing a GU call.
The logical terminal name or transaction code specified is Fast Path exclusive and is not available to this program.
The program issued an ISRT call for a segment shorter than 5 bytes.
The program issued an ISRT call for a SPA shorter than 6 bytes.
The logical terminal name or transaction code has leading blanks, instead of being left-aligned.
Programmer response:

Check the logical terminal name or transaction code, and correct it.

RA

Explanation:

The token does not match a token for any outstanding SETS requests or the request was issued for a database PCB that did not get a BA status on the previous request.

Programmer response:

The outstanding SETS request might have been canceled by a commit process, or an error exists in the use of the token.

RC

Explanation:

The ROLS call was issued with unsupported PCBs in the PSB, or the program is using an attached subsystem. If the ROLS call is in response to a SETS call, the call is rejected. If the ROLS call is in response to a SETU call, the call is processed, but updates to unsupported PCBs or an attached subsystem are not backed out. This status is only returned for a ROLS call in response to a SETU call if an attached subsystem is being used.

Programmer response:

User determined.
Explanation:

The ROLS request was rejected because the PSB contains access to a DEDB, MSDB, or GSAM organization or has access to an attached subsystem.

Programmer response:

The ROLS request is invalid in this environment. The program must either remove the use of the database organization that is preventing the use of the ROLS call or not use the ROLS call.

RX

Explanation:

The program issued a REPL that violated the replace rule for that segment.

Programmer response:

Correct the REPL call, or check with the DBA or the equivalent specialist at your installation.

SA

Explanation:

On a SETS request, IMS was not able to obtain the storage space for the data in the I/O area.

Programmer response:

Use a larger region size for the job step.

SB

Explanation:

The maximum number of levels, nine, of SETS requests were already specified, and this request is attempting to set the tenth.

Programmer response:

Correct the program.

SC

Explanation:

A SETS or SETU call was issued with unsupported PCBs (DEDB, MSDB, or GSAM) in the PSB, or the program is using an attached subsystem.

Programmer response:

For a SETS call, the request is rejected. Remove the unsupported PCBs or use the SETU call. For a SETU call, the program can proceed with the knowledge that a ROLS call will not back out changes for the unsupported PCBs. The other option is to not use the SETS or ROLS function.

SY

Explanation:

IMS incurred an internal error during sync point processing for an IMS Java SYNC request call.

Programmer response:

Contact your IMS system programmer.

TA

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. The PSB named in the request is not in the PSB directory.

Programmer response:

Correct the name of the PSB in the scheduling request, or add the PSB name to the PSB directory.

TC

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. It means that you have already scheduled a PSB.

Programmer response:

Correct your program so that you terminate a PSB before scheduling another. If you want to reschedule a PSB, you must have already terminated the PSB.

TE

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a scheduling request. The PSB could not be scheduled because an initialization error occurred.

Programmer response:

See your system programmer or DBA. For information about possible causes for the PSB initialization error, see IMS Version 9: Application Programming: Database Manager.

TG

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a terminate request. The program issued a terminate request when there was no PSB scheduled.

Programmer response:

This is an information-only status code. If you only wanted to terminate a PSB, continue with processing. If you also wanted to cause a sync point, issue a SYNCPOINT command. (No sync point was caused by the unsuccessful terminate request.)

Rather than having an abnormal termination occur, this status code is returned to the application program that issued the EXEC DLI command.

TH

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a database request or a statistics request. The program attempted to access the database before scheduling a PSB.

Programmer response:

Correct your program, and schedule a PSB before accessing the database.

TI

Explanation:

This status code applies to command-level programs only, and it is returned after an ISRT command. The ISRT command defined an invalid path to the segment. Data must be transferred for all segments between the first named segment and the last named segment.

Programmer response:

Correct the ISRT command, specifying a FROM option for each segment to be transferred.

TJ

Explanation:

This status code applies to CICS online command-level programs only, and it can be returned after any command that a CICS online program uses. DL/I is not active.

Programmer response:

Contact your DBA. CICS must be reinitialized with DL/I defined as active in the SIT.

TL

Explanation:

This status code applies to CICS online command-level programs only, and it is returned after a scheduling request. A conflict in scheduling intent occurred. (This cannot occur if program isolation has been specified.)

Programmer response:

Specify program isolation in the SIT. If program isolation has not been specified, wait until the PSB is no longer in use, and reschedule it.

TN

Explanation:

This status code applies to command-level programs only, and it can be returned after any of the commands. An invalid SDIB exists. An initialization call was not made, or the system’s DIB (not the application program’s DIB) was overlaid.

Programmer response:

Check your program to make sure that you did not use an entry statement, as you would in a call-level batch program. Also make sure that no addressing errors are in your program that would cause an overlay.

TO

Explanation:

This status code applies to command-level programs only, and it is returned following a REPL command. A path-replace error occurred. The segments to be replaced are compared to the previous Get command and one of the following situations occurred:

A segment is named to be replaced that was not retrieved by the Get command.
Data had not been transferred (no INTO option) for this segment on the Get command.
The attributes of the data to be transferred do not match the data in the database.
Programmer response:

Correct the program.

TP

Explanation:

This status code applies to command-level programs only, and it is returned following any of the database commands, a LOAD command, or a statistics request. The number of the PCB specified in the USING option is higher than the number of PCBs in the PSB being used, or an invalid processing option was specified. For example, the program tried to issue a LOAD command without having the L processing option specified in its PSB.

An EXEC DLI command is being attempted against a GSAM PCB. This is invalid.

Programmer response:

Check the PSB and correct your program.

TR

Explanation:

This status code means that the CICS XDLIPRE exit routine returned X’04’ in register 15 because the routine determined that the immediately preceding DL/I request should not be executed.

Programmer response:

Contact the CICS system programmer.

TY

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a database or statistics request. The database was not open when the request was issued.

Programmer response:

Contact your DBA or system programmer. The database can be checked and opened by using operator commands.

TZ

Explanation:

This status code applies to CICS online command-level programs only, and it is returned following a database or statistics request. The length of the retrieved segment is greater than 64 KB.

Programmer response:

Contact your DBA or system programmer; the database definition might require modification.

UB

Explanation:

This status code is returned when IMS is unable to obtain private buffer pool.

Programmer response:

No DFS0535I message is issued if the High Speed Reorganized Utility (HSRE) is being used when this status code is received. See the DFS2712I messages issued at utility termination for the name of the module, abend subcode, Utility High Speed Workarea (UHSW) storage area memory dump, IOAR (DEDB I/O), and register contents.

If the DBFPAPB0 return code is 08, storage is not available for the private buffer pool.

If the DBFHUSS0 return code is 10, the request for private buffers is for the initial buffer set and the private pool anchor address already exists.

UC

Explanation:

This status code is returned for the following reasons:

For batch programs in which a checkpoint record was written to the UCF journal data set. For information about the Utility Control Facility (UCF), see IMS Version 9: Administration Guide: Database Manager and IMS Version 9: Utilities Reference: Database and Transaction Manager.
During the processing of an HD reorganization, a reload, or an initial load program under the supervision of the Utility Control Facility (UCF), a checkpoint record was written to the UCF journal data set. IMS returns this status code to indicate that the last ISRT call was correct and the initial load program might continue or it might perform a checkpoint procedure before continuing.

When a connection failed.
Programmer response:

This is an information-only status code for the first status code reason above.

When this status code is issued for a connect failure, see message DFS0535I for more information about how to correct the error.

UP

Explanation:

This status code is returned when the UOW requested is greater than the UOW range.

Programmer response:

Correct the error and run the job again.

UR

Explanation:

This status code is returned for batch programs only. Your initial load program is being restarted under UCF. For information about the Utility Control Facility (UCF), see IMS Version 9: Administration Guide: Database Manager and IMS Version 9: Utilities Reference: Database and Transaction Manager. The program terminated while executing under UCF. The job was resubmitted with a restart request.

Programmer response:

Ensure that the program is in proper sequence with database loading. The program uses the I/O area and the DB PCB key feedback area to do this.

US

Explanation:

This status code is returned for batch programs only. The initial load program is about to stop processing. While processing an HD reorganization reload or user initial load program under the supervision of UCF, the operator replied to the WTOR from UCB and requested the current function to terminate. For information about the Utility Control Facility (UCF), see IMS Version 9: Administration Guide: Database Manager and IMS Version 9: Utilities Reference: Database and Transaction Manager. The last ISRT call was processed.

Programmer response:

Ensure that the initial load program performs a checkpoint procedure of its data sets and returns with a nonzero value in register 15.

UW

Explanation:

This status code is returned when IMS is unable to obtain a work area.

Programmer response:

Increase the REGION size and run the job again.

UX

Explanation:

This status code is returned for batch programs only. A checkpoint record was written, and processing stopped. This is a combination of UC and US status codes.

Programmer response:

See the descriptions of UC and US status codes.

U1

Explanation:

This status code is returned when the area name specified is not valid.

Programmer response:

Correct the error and run the utility job again.

U9

Explanation:

This status code is returned when the area access intent is read or read only. Access intent must be UP or EX.

Programmer response:

Use the /START DB ACCESS or UPDATE DB START(ACCESS) SET(ACCTYPE()) command to set the access intent to UP or EX and run the job again.

V1

Explanation:

The program tried to insert or replace a variable-length segment that is too long. The length of the segment must be equal to or less than the maximum length specified in the DBD. IMS also returns status code V1 when the specified minimum length cannot hold the complete sequence field of the segment type. In this situation, status code V1 results from one of three instances: processing without an edit/compression routine; processing with an edit/compression routine, but not specifying the key compression option; or coding a length field (LL) that is less than the specified minimum length. The length must be long enough to include the entire reference field; if the segment is a logical child, it must include the entire concatenated key of the logical parent and all sequence fields for the paired segment. The program tried to delete a variable-length segment. The copy of this segment in the user’s I/O area contains an invalid length field.

IMS also returns this status code when an invalid record length is specified in a GSAM call.

Programmer response:

Correct the program.

V2

Explanation:

This status code applies to command-level programs only, and it is returned following a database or LOAD command. The segment length is missing or invalid. The segment length must be a positive integer. For variable-length segments, it is the maximum size acceptable to the program’s I/O area.

Programmer response:

Check that the program translated and compiled correctly. The value of any segment length in a path command should not exceed 32 KB, and the sum of the lengths should not exceed 64 KB.

V3

Explanation:

This status code applies to command-level programs only, and it is returned following a Get or ISRT command. The field length is missing or invalid. The field length must be a positive integer, and it must be specified for each field in a WHERE option.

Programmer response:

Correct the program.

V4

Explanation:

This status code applies to command-level programs only, and it is returned following any of the database commands or a LOAD command. The length of a variable-length segment is invalid. The LL field as provided by the program on an ISRT or REPL command, or as received in the I/O area on a Get command, exceeds the value of SEGLENGTH.

Programmer response:

Correct the program.

V5

Explanation:

This status code applies to command-level programs only, and is returned following a Get, REPL, or ISRT command. The offset is invalid. The offset must be a positive integer and not greater than the segment length.

Programmer response:

Correct the program.

V6

Explanation:

This status code applies to command-level programs only, and it is returned following a Get or ISRT command using the KEYS option. The concatenated key length is missing or invalid. The length of the concatenated key must be a positive integer.

Programmer response:

Correct the program.

V7

Explanation:

This status code applies to command-level programs only, and is returned following a STAT command. It means that the statistics area length is either too small or invalid. The length must be a positive integer, and it must be at least 72 bytes for unformatted statistics, 120 bytes for summary statistics, and 360 bytes for formatted statistics.

Programmer response:

Correct the program.

XA

Explanation:

The program tried to continue processing the conversation by passing the SPA to another program through a program-to-program message switch after already responding to the terminal.

Programmer response:

If a response has been sent, the SPA should be returned to IMS. Correct the program.

XB

Explanation:

The program has passed the SPA to another program but is trying to respond to the originating terminal.

Programmer response:

No response is allowed by a program that is passed control of the program through a program-to-program message switch.

XC

Explanation:

The program inserted a message that has some bits in the Z1 field set. The Z1 field is reserved for IMS.

Programmer response:

Correct the program to prevent it from setting those bits.

XD

Explanation:

IMS is terminating by a CHECKPOINT FREEZE or DUMPQ. IMS returns this code to a BMP that has issued a CHKP or SYNC call. If it is a transaction-oriented BMP, IMS does not return a message.

IMS also returns XD when a batch program issues a SYNC call.

Programmer response:

Terminate the program immediately. IMS will terminate the program abnormally if the program issues another call.

XE

Explanation:

A program tried to insert a SPA to an alternate express PCB.

Programmer response:

Regenerate the PSB and remove the EXPRESS=YES option from the PCB, or define another non-express PCB to be used in the ISRT call.

XF

Explanation:

IMS is ignoring the ISRT call for the SPA, because the specified alternate PCB had its destination set to a logical terminal but was not defined as ALTRESP=YES during PSB generation.

MSC directed routing does not support a program-to-program switch between conversational transactions.

Programmer response:

Correct the application program or change the PSB generation for that alternate PCB to specify ALTRESP=YES.

XG

Explanation:

IMS ignored the ISRT call because the current conversation requires a fixed-length SPA, and the ISRT call was to a program with a different length or variable-length SPA, while the source IMS system was earlier than IMS 6.1. If the SPA ISRT on a remote system is not going back to the input terminal (IOPCB), the SPA size must be the same as the size of the current one, if the source IMS system is earlier than IMS 6.1.

Programmer response:

Correct the program or the SPA definitions.

XX

Explanation:

An error occurred during GSAM initialization or during GSAM call processing. If this status code is in the GSAM PCB before the application program issued the first call, the error was detected during initialization. Possible causes are:

Insufficient space
Invalid DBD
Invalid block size
Invalid option
Internal GSAM error
Programmer response:

A subsequent GSAM call will result in an abnormal termination of the program. The program should terminate.

X2

Explanation:

The first ISRT call to an alternate PCB whose destination is a conversational transaction code is not for the SPA. The SPA must be inserted with the first ISRT call.

Programmer response:

Insert the SPA, and then reinsert the message segment.

X3

Explanation:

The program modified the first 6 bytes of the SPA; the SPA is now invalid.

Programmer response:

Correct the program and restore the original bytes.

X4

Explanation:

The program issued an ISRT call to pass the SPA to a nonconversational transaction code. It did this by referencing a PCB whose destination was set for the nonconversational transaction code. You can send the SPA only to transaction codes that are defined as conversational.

Programmer response:

Correct the ISRT call. Send only data segments.

X5

Explanation:

The program issued more than one ISRT call to send the SPA to a PCB whose destination is a transaction code. Only one SPA is allowed per message.

Programmer response:

Correct the program.

X6

Explanation:

An invalid transaction code name was inserted into the SPA. This will occur if the input is from LU 6.2 (APPC) or OTMA and if a dynamic control block was built for the transaction code.

Programmer response:

Correct the program to set the proper transaction code name.

X7

Explanation:

The length of the SPA is incorrect. The program modified the first 6 bytes.

Programmer response:

Correct the SPA and the program.

X9

Explanation:

The length of the SPA is greater than the size of the PSB I/O area.

Programmer response:

Correct the length of the SPA or the size of the PSB I/O area in the PSBGEN.