Preventing core overwrites when multiple core are getting generated simultaneously for different processes.
core file gets overwritten
Resolving the problem
Memory illegal operations in a process or accessing memory which does not belong to a process
by the program or application running in that process are quite common in open system programming
models. When such an illegal operation is performed, operating system terminates the process by
sending a signal to the process, producing a core file.
In transaction processing monitor (TPM) environment such as TXSeries, the TPM tries to tolerate such
application issues, there by improving the TPM system availability. This is generally done by registering
a signal handler and taking appropriate and necessary actions on catching a signal in TPM environment.
There could be certain scenarios where signal handler might have to be de-registered in order to collect
core file for further analysis to identify the root cause for memory fault operation.
TXSeries provides an environment variable CICS_CORE_ON_ASRA in order to generate core file of TXSeries application server process on a memory fault operation. This variable has to be used only when advised by TXSeries technical support team.
On most of the UNIX platforms, when this environment variable is set and under circumstances where
multiple processes generate core files simultaneously, the core files get overwritten as the default name
of the core file generated by the operating system is 'core'. The core file generated by a first process will be lost.
This hinders and delays the problem determination for the technical support team as they will have to wait for another occurrence of the problem to get the correct core file.
Following are the steps on various UNIX platforms (supported by TXSeries), to name the core files uniquely.
AIX provides an environment variable in order to name the core file uniquely. When this variable is set the
core files will be suffixed by pid and a timestamp.
To enable core renaming for TXSeries region processes, add below line to the TXSeries region's environment file
It can also be set in /etc/environment file to enable core renaming for all processes in the AIX system.
Region restart is required to effect this change. The environment variable is available on AIX 5.1 and later releases.
On Solaris core file name pattern can be set in /etc/coreadm.conf file using coreadm utility
Where %f will replaced by binary name
%p will be replaced by process id
%t will be replaced by time stamp
Refer to Solaris documentation for more details on usage of coreadm utility
On HP-UX 11iv1 and 11iv2 following commands can be used to suffix pid to the core file.
To enable core renaming
#echo "core_addpid/W 1\ncore_addpid?W 1" | adb -w -k /stand/vmunix /dev/mem;;
To disable core renaming
# echo "core_addpid/W 0\ncore_addpid?W 0" | adb -w -k /stand/vmunix /dev/mem;;
On HP-UX 11iv3 coreadm utility can be used.
Refer to HP-UX documentation before using the above commands.
When CICS_CORE_ON_ASRA and core file renaming is enabled, customers have to format the core file manually using the showProcInfo utility shipped with TXSeries. When core file renaming is not enabled, the core file name will be 'core' and TXSeries takes care of detecting core files and formatting them.