SMARTS Abend Codes

Under normal circumstances, SMARTS attempts to terminate a user program with a descriptive message when an error occurs; however, this is not always possible and an ABEND must be issued to terminate the application in these cases.

This document covers the following topics:


SMARTS API ABEND Codes (Prefix U)

Overview of Messages

U0000 | U0001 | U0002 | U0003 | U0004 | U0005 | U0006 | U0007 | U0009 | U0010 | U0011
U0000 — Insufficient Storage
Explanation

Insufficient storage is available to obtain a primary control block within the SMARTS environment. A problem occurred at a point where it was not possible to issue a SMARTS error message. A request for storage from the environment failed.

Action

Make more storage available to the program running in the environment so that the request can be satisfied.


U0001 - Logic Error in SMARTS Nucleus
Explanation

An unexpected condition occurred within the nucleus for which a message could not be issued. The ABEND may indicate storage overwrites or earlier errors in the SMARTS environment.

Action

If the problem cannot be determined, report the ABEND to your Software AG technical support representative.


U0002 - Storage Corrupted
Explanation

While freeing storage within the SMARTS nucleus, a corruption failure was detected. When storage is allocated, SMARTS puts a storage accounting prefix at the start of the storage and an identical suffix at the end of the storage. If these do not match when the storage is freed, this ABEND occurs. A mismatch indicates that either

the user that allocated the storage requested ";n" bytes but used more than ";n" bytes, overwriting the storage accounting area at the end; or
a user of storage before the storage area being freed overwrote the prefix of the storage area.
Action

Register 7 will point to the prefix accounting area of the storage. The length of the storage is found at register 7 + 4 (if it hasn't been corrupted), while the storage area itself returned to the user can be found at register 7 + 8.


U0003 - SMARTS Not Initialized
Explanation

An attempt was made to issue a SMARTS API request in an environment where SMARTS was not initialized. This ABEND occurs in multiuser environments (such as Com-plete or CICS) if SMARTS has not been initialized prior to running a SMARTS-based program. It may occur in a single-user environment, such as batch, if an attempt to dynamically initialize SMARTS fails.


U0004 - Invalid SMARTS Main Control Block
Explanation

The SMARTS interface stubs found an anchor pointer in the environment where the program is running; however, this anchor pointer points to a control block that is not the main SMARTS control block. This may occur if the incorrect environment-dependent stubs have been linked with the application.


U0005 - No SMARTS Context Found
Explanation

An attempt to locate the existing SMARTS context or create a new SMARTS context failed.

Action

Refer to previously issued messages to determine why this failed.


U0006 - ABEND Due to Message Option
Explanation

A SMARTS message was issued for which an internal ABEND option was set.

Action

Refer to the message and correct the problem causing the message to be issued.


U0007 - Invalid Local Storage Stack Area Detected
Explanation

During internal entry or exit processing, an invalid internal stack was detected. This indicates storage corruption in the SMARTS environment or an internal error.

Action

If there is no evidence of storage corruption, report the error to your Software AG technical support representative.


U0009 - User Program Stack Overflow
Explanation

An attempt to allocate storage from the user program stack failed as there was insufficient storage available to allocate the space requested.

Action

Increase the stack length available to the user program and retry.


U0010 - Recursive ABEND During Termination
Explanation

An ABEND occurred, which the SMARTS clean-up handlers have trapped; however, during SMARTS clean-up processing, another ABEND occurred. SMARTS has therefore terminated its clean-up cycle to avoid a recursive ABEND situation. It is likely that SMARTS resources will not be cleaned up correctly if this occurs.

Action

Determine the cause for both the primary and secondary ABEND and resolve the issues that caused them. This could occur if there were errors in a pthread_cleanup() or atexit() registered user clean-up function.


U0011 - Signal Generated ABEND
Explanation

A signal occurred for the pthread or process for which no signal handler has been registered. The default action for the signal is to terminate the process, which results in this ABEND.


SMARTS Server Environment ABEND Codes

The SMARTS server environment may terminate abnormally with any of the following user ABEND codes:

Overview of Messages

ABEND 4, 7, 9, 10, 11, 13, 14, 15 | ABEND 51
ABEND 4, 7, 9, 10, 11, 13, 14, 15
Explanation

These ABEND codes indicate unexpected errors in the processing of the SMARTS server environment savearea pool.

Action

Save all related documentation including dumps and logs. Contact your Software AG technical support representative.


ABEND 51
Explanation

An unexpected error occurred during processing of an error message.

Action

Save all related documentation including dumps and logs. Contact your Software AG technical support representative.