Failed to start TIBCO BusinessEvents (BE) agent in TIBCO Administrator - Error java.lang.UnsatisfiedLinkError: sun.security.ec.ECKeyPairGenerator.isCurveSupported([B)Z
book
Article ID: KB0072922
calendar_today
Updated On:
Products
Versions
TIBCO BusinessEvents Enterprise Edition
5.x/6.x
Description
The deployed BE engine cannot be started in TIBCO Administrator UI. A fatal error is reported when we initialize the configured channels (TLS enabled).
Error:
<timestamp> <agent> Fatal [main] - [container.standalone] sun.security.ec.ECKeyPairGenerator.isCurveSupported([B)Z
java.lang.UnsatisfiedLinkError: sun.security.ec.ECKeyPairGenerator.isCurveSupported([B)Z
at jdk.crypto.ec/sun.security.ec.ECKeyPairGenerator.isCurveSupported(Native Method)
at jdk.crypto.ec/sun.security.ec.ECKeyPairGenerator.ensureCurveIsSupported(ECKeyPairGenerator.java:135)
at jdk.crypto.ec/sun.security.ec.ECKeyPairGenerator.initialize(ECKeyPairGenerator.java:114)
at java.base/java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:699)
at java.base/sun.security.ssl.ECDHKeyExchange$ECDHEPossession.<init>(ECDHKeyExchange.java:127)
...
Note: You can start the BE engine successfully in a console by executing the script created for the deployed BE application under $TIBCO_HOME/tra/domain/<domainName>/application/<applicationName>.
Environment
All Supported Environments
Resolution
Root cause: The environment settings of the Hawk agent are inherited by BE agent. The Hawk agent started with a different Java version (1.8) as the BE agent (11.0). In a Java 1.8 environment the OS library path includes the sunec shared library (Linux: libsunec.so), which is not compatible with Java 11. The "java.lang.UnsatisfiedLinkError" reported in a Java 11 applications, when the sunec shared library is included in the configured OS library path.
Solution:
Modify $BE_HOME/bin/be-engine.tra and remove the OS library path variable at the end of the OS library path to avoid that BE application loads the inherited settings of the Hawk agent
Force deployment in TIBCO Administrator to apply the changes in tra files of the deployed BE applications
The OS library path variable in the be-engine.tra file depends on the Operating System.
Windows
tibco.env.PATH
Linux
tibco.env.LD_LIBRARY_PATH
HP
tibco.env.LIBPATH
AIX
tibco.env.SHLIB_PATH
e.g. (Linux) From: tibco.env.LD_LIBRARY_PATH=%TPCL_HOME%/lib%PSP%%AS3x_HOME%/lib%PSP%%FTL_HOME%/lib%PSP%%AS_HOME%/lib%PSP%%RV_HOME%/lib/64%PSP%%JVM_LIB_DIR%/server%PSP%%JVM_LIB_DIR%%PSP%%RV_HOME%/lib%PSP%%EMS_HOME%/clients/java%PSP%%TERR_HOME%/lib/x86_64%PSP%%LD_LIBRARY_PATH%
To: tibco.env.LD_LIBRARY_PATH=%TPCL_HOME%/lib%PSP%%AS3x_HOME%/lib%PSP%%FTL_HOME%/lib%PSP%%AS_HOME%/lib%PSP%%RV_HOME%/lib/64%PSP%%JVM_LIB_DIR%/server%PSP%%JVM_LIB_DIR%%PSP%%RV_HOME%/lib%PSP%%EMS_HOME%/clients/java%PSP%%TERR_HOME%/lib/x86_64