PreviousProduct Summary Introduction to Remote IMSNext"

Chapter 13: IMS Problem Determination

Identifying which software component issued an error message is the first step in determining a solution. In general, it should be easy to identify messages originating from the IMS Option software. They are either specific messages issued while generating a database or some other IMS Option specific error.

Messages which are produced while you are compiling, debugging or running your program are output by the run-time system (RTS). RTS error messages are documented in the online help.

13.1 DBD, PSB and MFS Messages

The messages displayed on the screen and the severity of the message which causes a prompt for action are controlled using the Build Settings for Project dialog box. To set the DBD, PSB and MFS message level:

  1. Select Build Settings for Project on the Project menu

  2. Select the respective tab and the General tab

  3. Use Message level to select the message level

  4. Click OK for this level to take effect

    If Generate listing file is checked, the utility output listing file contains all warning and syntax error messages. These messages are also written to the Build page.

DBD, PSB and MFS error messages are listed in the online help. The message format can be broken down into three parts:

For example, DBDUT0W16W.

04xx Warning message caused by incorrect syntax of the source statements. See your IMS/ESA manuals for the correct syntax. The utility can continue.
0Wxx Warning message which indicates an IMS Option limit has been exceeded or a feature is defined which is not supported by IMS Option. The utility ignores the definition causing the error and continues.
08xx Severe error caused by incorrect syntax of the source statements. See your IMS/ESA manuals for the proper syntax. The utility cannot continue.
0Lxx Severe message which indicates an IMS Option restriction or limit has been exceeded which cannot be compensated for. The utility cannot continue.
0Uxx File status message

The corrective action necessary when encountering an IMS Option restriction must be analyzed on an individual basis. You can ignore a warning message if it does not affect your application. Severe errors require some corrective action before using the failed definition. You might be able to work around an incompatibility by changing the source definition and re-running the utility. Or report the error as a problem to your technical support representative.

13.2 Zeroload Errors

There are only a few error messages associated with running a zeroload. There are some general messages which relate more to the use of zeroload than an actual zeroload failure. These should be self-explanatory. Examples of these are 'Logical database cannot be zeroloaded' or 'DBDGEN must be complete before Zeroload'. There are a few common reasons for the zeroload to fail once it has started:

13.3 DL/I Status Codes

The response for an unexpected DL/I status code is usually the same action you would take for IMS/ESA. For example, an AJ status code indicates an SSA is invalid for some reason. The action required is to change the SSA, recompile your program and resume testing. An A1 status code returned for a CHNG call to an alternate I/O PCB indicates that the transaction or device named in the CHNG call is not defined. The required action is to define the transaction or device or to ensure that the program is using the correct name in the CHNG call. The System Configuration option 'Help Mode For PCB Status Codes' can assist you in determining the specific cause for many DL/I status codes.

Some DL/I status codes might be unfamiliar to you. This section lists some unusual status codes and their recommended action. The status codes listed in this topic are: AI, AO, AM with GSAM, NI, X7 and X9.

A further explanation of the specific cause of the problem might be provided in the IMS System Log file. See the section IMS System Log in the chapter IMS Option Administration Information in your Administrator's Guide. An example of a message in the log for an AI status code is:

 'Database: DBDNAME - not found in DATA directory'. 

AI status code

AI status codes are most commonly caused by not zeroloading a database before issuing the first call against it. For GSAM databases, an 'AI' might be issued if the input data set was not present and a get call was tried. The IMS System Log provides the specific reason. If the database was not zeroloaded or the GSAM input data set was not present, zeroload the database or create the GSAM input file.

This status code can also be issued if the database data files are corrupt. For example, you rebooted the system when updating an exclusive use database on your local hard drive or there was some other sort of hard failure which prevented IMS Option from closing the database. The IMS System Log notes a corrupt database if the run-time file status is '39'. In this case, the only remedy is to restore your database or try to rebuild the damaged index.

IMS Option detects a corrupt index and displays a popup window asking you whether the index should be rebuilt. You should respond 'yes' as this is most likely to correct the condition. Follow the instructions on the window if it occurs.

AM status code issued for GSAM DBD

An AM status code might be issued for calls using a GSAM DBD for one of the following reasons.

AO status code

An AO status code is almost always caused by an internal logic error within IMS Option. It might be caused by a corrupt database or some other I/O related error. You should check the IMS System Log for any I/O errors listed for that particular database. If I/O errors are listed it is possible that the database is corrupt. Try reloading the database. If there were no messages in IMS System Log or reloading the database did not correct the problem, report the problem to your technical support representative.

NI status code

This status code indicates that a source segment for a secondary index was inserted and it caused a duplicate key in a secondary index which does not allow duplicate keys. The IMS System Log notes the specific index in error and the duplicate key value. First, check that the application program is not at fault by ensuring it is not inserting a source segment causing a duplicate in error. If it is, correct the application. Then, check that the secondary index has been genned properly. If it does allow duplicates, the INDEX database needs to be generated to allow duplicates. Also, check that the External Sparse routine or NULLVAL keywords are setup properly. See the chapter For the Database Administrator (DBA) for complete details on defining and using secondary indexes.

When an NI status code is issued, any updates made to databases up to the point of the NI error are backed out. This backout occurs for all database and program types.

X7 status code

This status code is issued when the I/O area passed to retrieve or insert the Scratch Pad Area (SPA) is not large enough for the length of the SPA as defined for this transaction. Check that the correct length is specified in the Define Transaction Codes dialog box. Then, check that the I/O area in Working-Storage is large enough for the SPA size as defined. One common cause for this error is defining, for a transaction that is not designed to be conversational, a non-zero length for the SPA. Correct the transaction definition or change your program to be conversational.

X9 status code

This status code is issued when the Scratch Pad Area (SPA) defined for this transaction exceeds the maximum configured size (32Kb is the maximum allowed). To configure the maximum SPA size:

  1. Click IMS tab in the Project View window

  2. Right-click IMS System on the IMS View

  3. Click Properties

  4. Click the TM/MFS more tab

  5. Specify the maximum SPA size in Maximum size of any scratch pad area (SPA):

13.4 Terminal Command Errors

The following error messages (shown in bold) can occur in response to commands entered in the 3270 terminal emulation.


The reason for this message is more fully described by running the PSBGEN Verify utility. The exception to this is when the reason code is 'PSB not found'.


You have cleared the screen while a conversation was in progress. The only command allowed during a conversation is the /EXIT command.


A /EXIT command can only be used to terminate an active conversation. A conversation is not in progress.


No data was present on the input message which could be used to start a transaction. Enter a Trancode to schedule a transaction or a /FOR command to display an MFS screen. If the input message came from an MFS screen, ensure the MID is defined so that it creates a message with a Trancode or other command at the beginning of the message.


A conversational Trancode issued a GOBACK without inserting the SPA. Correct the application.


The Trancode name (xxxxxxxx) has not been defined. See the online help for information on defining transactions; click Help Topics on the Mainframe Express Help menu, then on the Contents tab click IMS Option, Defining Resources, Defining Transaction Codes.


You have scrolled through all of the messages currently on the output queue. Press PA1 once again to begin scrolling with the first message on the queue.


A message processing program (MPP) has issued a GOBACK without inserting a message. All MPPs are response mode transactions in IMS Option. Correct the application or, if it is not a response mode transaction, define it as an NRMP program type. Trancodes defined as QBMP can also cause this message - this is normal.


The MOD-name specified with the /FOR command was not found in the current list of generated MFS members.

13.5 Popup Window Errors

IMS Option uses popup windows to report most system related errors. There are actually two different classes of popups, the one described here for system problems and an ABEND type. All the popups look and function the same except that the ABEND popup says ABEND at the top.

The error popups can range from something as simple as 'database record in use' to complex problems such as I/O errors or memory management failures. The more common types of error popups should be self-explanatory. For example, a 'cannot load program' popup provides the name of the program and corrective actions. Some others are not as obvious - they are listed in this section. For a problem as serious as I/O errors or memory management, it would be impractical, if not impossible, to list all possible conditions and corrective actions. You should record the information in the window and contact your technical support representative. There might also be additional information in the IMS System Log.

The error popups all have a MSG ID in the upper left-hand corner. This MSG ID is used as the name of the popup in the following descriptions.

RLM003 - Transaction rolled back

This message occurs when one user has carried out some work with a Fileshare Database but has been idle too long. Someone else needed a database or database record held by the idle user which caused the original user to get backed out. This message can appear for the idle user. See the chapter IMS Fileshare Databases for a description of Fileshare's timeout processing and configuration.

RLM010 - Exceeded max updates

This message occurs when you have updated more segments in a Fileshare or Remote IMS database(s) than the maximum configured value. To change this configuration:

  1. Right-click IMS System on the IMS View

  2. Click Properties

  3. Select the DB tab

  4. Specify a value for Update warning limit

You can choose to ignore the error and continue or to abend your application and backout updates.

SYNC01 - Commit failed - backout successful

This indicates that a recoverable resource could not be committed during IMS Option syncpoint due to some failure. All recoverable resources have been backed out successfully. The IMS System Log contains a report listing the status of all the active recoverable resources. See the chapter IMS Syncpoint Coordination for details on syncpointing and recovery.

SYNC02 - Commit or Backout failed

This indicates that a commit or backout failure occurred during second step commit or backout processing. Some recoverable resources might have been committed and others might have been backed out - called a mixed outcome. The IMS System Log contains a report listing the status of all the active recoverable resources. See the chapter IMS Syncpoint Coordination for details on syncpointing and recovery.

13.6 ABEND Errors

User and system abends generally result in application termination. When this occurs for a batch or BMP program that was executed from JCL, the abend code and type are returned to the initiating job and the job step terminated.

When an abend occurs,IMS Option usually issues an abend popup message. This message can appear in different formats, depending on the environment and circumstances causing the abend. In most cases, the message appears in a graphical dialog box. However, some messages can appear as a text window on the IMS Option Application Region screen. Independent of how these messages appear, they all function in the same way.

Abend popup messages all require user acknowledgment. This usually just involves pressing Enter or clicking OK. Some abend messages might require a decision. These messages include an explanation of the user's options with the abend message. All abends cause the application execution to halt at the point of the abend. In some cases, the user can choose to ignore the abend and continue. When an abend is ignored, IMS Option continues as if the abend never ocurred.

In some environments, abend popup messages are suppressed. For example, in CICS multi-tasking mode. When a popup message is suppressed, the message information is written to the IMS System Log.

Abend codes reported in abend popup messages correspond to the abend codes in IMS/ESA. If you cannot resolve a problem on your own, report the problem to your technical support representative. Some abend messages contain additional information such as subreason and reason codes. These are required to identify the specific area where the problem was detected.

Some of the more common abend codes are described below.

ABEND 008 - Reason code 1C

This abend is normally issued only for insert calls to an I/O or Alternate I/O PCB. As part of this abend, a message line of 'modname NOT FOUND' is added. It means that the 'modname' stated, from the DL/I call, is not found. Check that the program has indicated the correct MOD-name in the correct parameter position. If it has, check that the MOD has been generated.

If this abend occurs on a get call to an I/O PCB, the required MOD-name of OTDFHMO2 might not have been initialized properly by the IMS Option. This is a MOD-name used only by IMS Option. If it is not present, run an MFSGEN specifying the name of 'DFHMO2.MFS'. Although this is done automatically by IMS Option when the MFSGEN files are first created, problems with the installation or initial start-up might cause the initialization to fail.

If the 'modname NOT FOUND' does not name a MOD, it might indicate that a MOD-name parameter supplied was 'spaces'. It might also indicate that the 'OTDFHMO2' MOD, just described, is missing. If it is missing, follow the same procedures for regenerating. If OTDFHMO2 is present, report the problem to your technical support representative.


An XRST call requested a restart but the ID provided was not related to a previous CHKP call. Check the XRST call restart ID. Also, ensure that the imslogr.dat and IDX files - which contain the checkpoint information - are available. These files are in the project's listing folder.


A length code provided in a save area for a CHKP call is not greater than zero. Correct your application.


An XRST call requested restart but the IMSLOGR file cannot be found. These files are in the Project's Listing folder.


Invalid parm count. The parm (parameter) count is displayed as part of the abend message. Although it specifically means that either the parameter count provided is negative or greater than 18, or the CHKP or XRST call has a length code without a matching save area, it has two common causes:

Parm count is not a 4-byte binary integer A parameter count was provided but it is not a four-byte binary number. You must use the IBMCOMP checker directive to ensure IBM mainframe compatibility. The NOTRUNC directive might also be required. By default, the Compiler allocates the number of bytes for a binary number in increments of 1, although on IBM mainframes it is always two, four or eight bytes. That is, a PIC 9(05) generates a three-byte binary number by default but on an IBM mainframe it would be four bytes.
In Mainframe Express IBMCOMP and NOTRUNC are the default therefore this only applies if these defaults have been overridden.
The call function is incorrect If IMS Option cannot recognize the call function - the first DL/I parameter - as valid, such as GU or GN, it assumes it is the optional parameter count. Check that the call function was set properly and that it was not overlaid by a database segment retrieval or MFS message retrieval. Check also that it is in upper-case.


As with ABEND 260 this is also an invalid parameter count message. It might be caused by the same reasons as the 260 abend but most often is caused by the parameter count provided specifying more parameters being passed than are actually in the USING list for the Call. Correct the application so the parameter count does not exceed the actual number of parameters.

ABEND 476 and 459

Invalid PCB address: there are a number of possible causes for this problem:

  1. The ACB which is dynamically built by IMS Option might not be valid. Use the PSBGEN Verify utility to ensure that the ACB is valid. PSBGENs and DBDGENs by themselves do not report all possible definition problems.

  2. For batch programs, if the program does not contain an I/O PCB in its ENTRY using list, it must be defined as a DLI type program in the Define Transaction Codes dialog box or entered as type DLI if the JCL-like syntax is used. If an I/O PCB is present, verify that the program is being run as a BMP or that the PSB specifies CMPAT=YES on the PSBGEN statement.

  3. Check that the program's USING list specifies PCBs in the same order as the PSB. It is important to check the order in the USING list - the order in the Linkage Section is not the order that is used in establishing addressability.


IMS Option cannot access the PC's internal clock to generate unique time stamps for a CHKP call. This abend should never happen. Report the problem to your technical support representative.


A secondary index has become corrupt due to a hardware failure during update processing. Try reorganizing the database using the IMSDBU utility. If the problem persists, report the problem to your technical support representative.

13.7 Error Handling with CICS

The IMS Option and abend popups are displayed when running CICS Option in single tasking mode, however they are not displayed when running in multi-tasking mode.

If IMS Option and abend popups have been suppressed and one of these errors occurs, IMS Option terminates abnormally and writes the error to the IMS System Log. The error is also written to the IMS Log tab in the IDE. See the the section IMS System Log in the chapter IMS Option Administration Information in your Administrator's Guide.

This abnormal termination occurs even for popup errors which offered a choice to continue or terminate. To terminate, IMS Option issues a COBOL STOP RUN. The Stop Run causes the Run-Time Environment to terminate. The Stop Run termination is the same as when you receive a Run-Time System error - such as '173 - program not found' or when invoking 'Stop Debugging' from the Debug menu. See your Micro Focus CICS Option documentation for details of its handling of Run-Time System terminations.

Copyright © 1999 MERANT International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.

PreviousProduct Summary Introduction to Remote IMSNext"