Troubleshooting
Problem
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.
Diagnosing The Problem
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.
- Login as a CICS user.
- Run the region's environment file settings.
- 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.
- 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:
- /var/cics_regions/regionName/maps/locale (for Open Systems) or
rootDir\var\cics_regions\regionName\maps\locale (for Windows) - /var/cics_regions/regionName/maps/prime (for Open Systems) or
rootDir\var\cics_regions\regionName\maps\prime (for Windows) - $CICSPATH/maps/locale (for Open Systems) or
rootDir\opt\cics\maps\locale (for Windows) - $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:
- /var/cics_regions/regionName/bin (for Open Systems) or
rootDir\var\cics_regions\regionName\bin (for Windows) - $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.
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:
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:
Was this topic helpful?
Document Information
Modified date:
02 August 2018
UID
swg21612698