Issues when running (BWSE) BW Engines which uses IProcess Plug-in on the Node.------------------------------------------------------------------------------------------------------
book
Article ID: KB0092663
calendar_today
Updated On:
Products
Versions
TIBCO ActiveMatrix BusinessWorks Service Engine
-
Not Applicable
-
Description
Resolution: Stopping and re-starting the bwengines (BW Engines using Iprocess plug-in) in BWSE container or starting multiple such engines which uses the same iProcess Plug-in on the BWSE container fails with below Error.
"java.lang.UnsatisfiedLinkError: Native Library /opt/svil/tibco/bw/plugins/lib/libssoJNI.so already loaded in another classloader"
Every time when we restart the BW engine or we attempt start multiple engines on the node, the classloader attempts to load the same JNI library into the JVM and by rule the virtual machine does not allow a given JNI native library to be loaded by more than one class loader. Attempting to load the same native library by multiple class loaders results in UnsatisfiedLinkError to be thrown. The purpose of this restriction is to make sure that namespace separation based on class loaders is preserved in native libraries.
Workaround:
To load the Iprocess(ssoJBase.jar) which uses JNI lib (libssoJNI.so) through extension classloader (load the native lib into JVM by only ext classloader) and keep the copy of the JNI lib in the SYSTEM path.
Steps:
1. Copy ssoJBase.jar under ext ("/home/sathish/tibco/tibcojre64/1.5.0/lib/ext"). 2. Place libssoJNI.so in system PATH. 3. export PATH=$PATH:/home/sathish/mybin (libssJNI.so is under mybin dir) 4. Move other iprocess jars (iProcessPlugin.jar and sso_lite.jar) into bw classpath, do not keep under your Ext lib path as some of these jars depends on actual bw classes and may thows ClassNotFound Exceptions.
Issue/Introduction
Issues when running (BWSE) BW Engines which uses IProcess Plug-in on the Node.------------------------------------------------------------------------------------------------------