iProcess EAIJAVA “Java out of memory” errors when starting the iProcess Engine using Linux systemd start script
book
Article ID: KB0077894
calendar_today
Updated On:
Products
Versions
TIBCO iProcess Technology Plug-ins
11.6.2
Description
iProcess is started using Linux systemd scripts
On a reboot, the iProcess engine does not fully start.
Some background processes fail/crash and are suspended.
Some background processes fail to initialize the EAIJAVA plug-in
The BG .dmp logs end with: [T=1546409472]190515160709.934916:c001: proEAI_Init(): Unable to load EAI library, Continue on Error? 0 [T=1546409472]190515160709.934926:c004: proEAI_Init(): Done - ONE OR MORE EAI plug-ins FAIELD to load or initialise successfully. [T=1546409472]190515160709.934927:c001: CPLProcessInit (): proEAI layer failed to initialise, error=0 [T=1546409472]190515160709.934933:c008: <==CPLProcessInit() = -2 [T=1546409472]190515160709.934934:T001: BGMBD_Init: Unable to initialise Case Processing. rc:-2 [T=1546409472]190515160709.934936:T001: NonTux: BGMBD_Init failed. RetStatus = 4294967294 [T=1546409472]190515160709.934937:T001: BGMBD_Term: envAttrGet-CPL_SH failed. rc= 4294967285
The eaijava log files under SWDIR/logs contain the error: java.lang.OutOfMemoryError: unable to create new native thread
iProcess starts normally when started using swstart as the iProcess Unix user.
The issue is when iProcess is started using systemd after a reboot.
Issue/Introduction
iProcess EAIJAVA “Java out of memory” errors when starting the iProcess Engine using Linux systemd start script
Some background processes are unable to initialise the EAIJAVA plug-in and generate the error:
java.lang.OutOfMemoryError: unable to create new native thread
Environment
TIBCO iProcess Engie (Oracle) 11.6.1 Linux
TIBCO iProcess Technology Plug-ins 11.6.2 Linux
SUSE Linux Enterprise Server 12 (x86_64) VERSION = 12 PATCHLEVEL = 3
Resolution
Linux systemd contains the setting TasksMax
The TasksMax setting was introduced as a security feature to prevent any one service from spawning too many threads and consuming all server resources.
When the iProcess Technology Plug-in is installed into the iProcess Engine, each background process (BG, RPCBG and BGPREDUICT) starts a JVM and initializes the EAIJAVA plug-in. The plugin increases the number of java threads memory consumed by the background processes.
The issue occurs when the default setting (DefaultTasksMax) is too low to enable iProcess to obtain all the required resources and fully start.
The resolution is to increase the TasksMax in the iProcess systemd script e.g. TasksMax=4096
A sample system script to start / stop iProcess is attached to this article. The system scripts contain some configuration specific settings and must be modified to suit other iProcess installations.
Additional information:
The following command can be used to display the value for DefaultTasksMax systemctl show --property DefaultTasksMax
There are two possible ways to increase the DefaultTasksMax 1 Increase the global value for DefaultTasksMax – this will affect all services To change the global value for DefaultTasksMax, uncomment the line in the file /etc/systemd/system.conf and set to the desired value.
2 Increase the DefaultTasksMax on a per-service basis – only affects the services in the systemd script Add the TasksMax setting with an increased value to the appropriate systemd unit file. e.g. TasksMax=4096
To enable the new settings, run the command “systemctl deamon-reload” or reboot the server.
Attachments
iProcess EAIJAVA “Java out of memory†errors when starting the iProcess Engine using Linux systemd start script
get_app