# Resolving APCT abends in TXSeries

## Problem(Abstract)

Transactions can fail with an APCT abend, when there is a failure in a transaction attempting to load the program defined in PD.stanza.

## Cause

A transaction failure with an APCT abend can be caused by:

• An APCT abend occurs while loading an application or a map which is not correctly linked with the libraries.
• The requested program entry in the Program Definitions (PD) has been disabled, or the program has zero length, or an I/O error has occurred while loading the program.
• APCT abends does not occur due to CICS internal issues, but only due to incorrect settings, or an incorrect procedure used during compilation and linking of an application.

## Resolving the problem

1. If a CICS supplied transaction or map fails, check if the locale is set correctly in the environment. You can check this by running locale command on AIX. The locale should show a supported locale such as en_US in LANG and all the other locale related parameters.

For example,
# locale
LANG=en_US
LC_COLLATE="en_US"
LC_CTYPE="en_US"
LC_MONETARY="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_MESSAGES=en_US
LC_ALL=
#

Check if the set locale is correctly installed in the system by running locale -a.

2. Ensure that the application is not compiled or linked with a 64-bit library. All the applications must be compiled and linked with 32 bit libraries only for TXSeries.

3. Ensure that the path associated with linked libraries of an application can be updated by a CICS user. You can do this by completing the following steps:

1. Login as a CICS user.
2. Run the region's environment file settings.
3. Run the ldd command on the application/map. ldd /var/applications/Application_name. The command should not show missing libraries. If any missing library path exists, you need to verify and provide the required permission to the library and path to CICS.
4. If the problem occurs intermittently, there might be a library which is compiling with a flag that is causing the library to get unloaded. You can resolve this by setting ResidentFlag=yes in the Program Definition (PD).

5. Check if the shared library is created with the re-entrant flag enabled (-b:MRE flag). Ensure that absolute path of the object file is provided to the linker.

6. Verify if the problem recreates when the program is compiled through cicstcl command. This will help in isolating the incorrect flag procedure being used for the compiling an application.

7. If the absolute path is not specified for the file or program in the PD.stanza, check the following:

• For CICS to find a mapset that is specified as a string, the file name must have the extension .map. CICS searches the directories in the following sequence:
1. /var/cics_regions/regionName/maps/locale (for Open Systems) or
rootDir\var\cics_regions\regionName\maps\locale (for Windows)
2. /var/cics_regions/regionName/maps/prime (for Open Systems) or
rootDir\var\cics_regions\regionName\maps\prime (for Windows)
3. $CICSPATH/maps/locale (for Open Systems) or rootDir\opt\cics\maps\locale (for Windows) 4.$CICSPATH/maps/prime (for Open Systems) or rootDir\opt\cics\maps\prime
(for Windows)
• To find a program specified as a string, CICS searches the directories in the following sequence:
1. /var/cics_regions/regionName/bin (for Open Systems) or
rootDir\var\cics_regions\regionName\bin (for Windows)
2. \$CICSPATH/bin (for Open Systems)
• If the map or program is not found in the mentioned location, it will search path that are specified through CICS_PROGRAM_PATH.

(0 users)Average rating

## Document information

TXSeries
CICS

6.2, 7.1

### Operating system(s):

AIX, HP Itanium, HP-UX, Solaris, Windows

1612698

2014-04-16

## Translate my page

Machine Translation