APCT abends
Transactions can fail with an APCT abend, when there is a failure in a transaction attempting to load the program defined in PD.stanza.
A transaction failure with an APCT abend can be caused
by any of the following:
- 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 do not occur due to internal issues, but only due to incorrect settings, or an incorrect procedure used during compilation and linking of an application.
You can resolve the problem by going through the following
guidelines:
- 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 would 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.
- 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.
- Ensure that the path associated with linked libraries of an application
can be updated by a TXSeries user. You can do this by completing the
following steps:
- 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.
- If the problem occurs intermittently, there might be a library that compiles with a flag that is causing the library to get unloaded. You can resolve this by setting ResidentFlag=yes in the Program Definition (PD).
- Check if the shared library is created with the flag (-b:MRE flag) re-enabled. Ensure that absolute path of the object file is provided to the linker.
- 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.
- 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:
- /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 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: