Understanding the TIRM042E: PROFILE ERROR DETECTED

Document ID : KB000046070
Last Modified Date : 14/02/2018
Show Technical Document Details

Summary:

While running an online no display server on Unix/Linux, the application abends with the following error:


******* 2016/XX/XX XX:X:XX genXXX XXXX **********
TIRIEFAE: VERSION 8.5
TIRM030E: APPLICATION FAILED - UPDATES HAVE BEEN BACKED OUT
TIRM042E: *** PROFILE ERROR DETECTED ***
TIRM046E: TRANSACTION PROCESSING TERMINATED

 

Instructions:

Typically you will get the tirm042e profile error(s) with online nodisplay applications in UNIX/Linux where the temporary profile files are either conflicting or had been removed prior to the end of a application run.  These files are located in $PTHOME/USERID OR if AEUSER environemnt variable is set for the logged in user, it would be in $PTHOME/$AEUSER.

Here is more information regarding the TIRM042E and the BS_XXXXX files: 

The bs_xxxx files are the profile files for the application/process that is currently running or has been run.  They are needed while the application is running and can be deleted after the application completes.
 
Setting the PTOPT option from 'yes' to 'Yy' (see UNIX IT Users Guide) will compress the profile files upon creation which may give some relief.  Most will use the 'yes' option and delete the files after the application runs (script) or in a cleanup script at night.
 
The key is to only delete those used by THAT application after THAT application has finished. Here is where these files are stored: The path to these files is a combination of PTHOME/USER. It is important to understand how USER is derived.
 
If the environment variable AEUSER is set, then  a subdirectory under PTHOME is created if that subdirectory does not already exist.  If AEUSER is not set, then the effective userid from the system is returned. It is best to set AEUSER. If two applications are running concurrently and both use the same values for PTHOME AND USER they will run the risk of a collision on the profile files (the bs_xxxx equates to:
bs_<id of the owning business system of the proc step>).  If you set AEUSER to be some sort of value unique to that occurrence, then each app will run with its own profile directory.