INQ2- Troubleshooting

Integration News

Troubleshooting.
Sterling B2Bi node goes down abruptly due to com.ibm.crypto.fips.provider.FIPSRuntimeException

Problem
IBM Sterling B2Bi node goes down or dashboard throws HTTP ERROR 500 com.ibm.crypto.fips.provider.FIPSRuntimeException

Symptom
Error

Dashboard:
HTTP ERROR 500 com.ibm.crypto.fips.provider.FIPSRuntimeException
URI: /dashboard/
STATUS: 500
MESSAGE: com.ibm.crypto.fips.provider.FIPSRuntimeException
SERVLET: default
CAUSED BY: com.ibm.crypto.fips.provider.FIPSRuntimeException
Caused by:
com.ibm.crypto.fips.provider.FIPSRuntimeException
    at com.ibm.crypto.fips.provider.HASHDRBG.engineNextBytes(Unknown Source)
    at com.ibm.crypto.fips.provider.SHA2DRBG.engineNextBytes(Unknown Source)
    at java.security.SecureRandom.nextBytes(SecureRandom.java:471)
    at java.security.SecureRandom.next(SecureRandom.java:494)
    at java.util.Random.nextInt(Random.java:340)

Security.log
ERROR LM.refresh run caught Exception 
ERROR [1634112649079] null
ERRORDTL [1634112649079]com.ibm.crypto.fips.provider.FIPSRuntimeException
    at com.ibm.crypto.fips.provider.X509Factory.engineGenerateCertificate(Unknown Source)
    at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:407)
    at com.sterlingcommerce.security.lc.LicenseSig.verify(LicenseSig.java:596)
    at com.sterlingcommerce.security.lc.FeatureSet.load(FeatureSet.java:455)
    at com.sterlingcommerce.security.lc.LM.loadMapFromFile(LM.java:2500)
    at com.sterlingcommerce.security.lc.LM.loadMap(LM.java:2559)
    at com.sterlingcommerce.security.lc.LM.refresh(LM.java:3188)
    at com.sterlingcommerce.security.lc.LMThread.run(LMThread.java:210)
    at java.lang.Thread.run(Thread.java:818)

Wf.log
ERROR [1658996685245] null
ERRORDTL [1658996685245]com.ibm.crypto.fips.provider.FIPSRuntimeException
at com.ibm.crypto.fips.provider.HASHDRBG.engineNextBytes(Unknown Source)
at com.ibm.crypto.fips.provider.SHA2DRBG.engineNextBytes(Unknown Source)

System.log and noapp.log

ALL 000000000000 GLOBAL_SCOPE com.ibm.crypto.fips.provider.FIPSRuntimeException

Cause
The FIPSRunTimeException could be a case where the IBMJCEFIPS provider causes issues in non-FIPS mode. IBMJCEFIPS is the security provider libraries that are part of the JDK. By default , B2Bi is running in non-fips mode. This issue happens when the application gets many concurrent calls(high volume) and somehow application java ends up with a race condition between concurrent JDK calls.
This can happen randomly and is quite unpredictable. When this happens, it can leave the JVM in an inconsistent state therefore node get freeze.

Resolving The Problem

To resolve the issue, follow the below steps

  1. Stop B2Bi node using ./hardstop.sh from <B2Bi_install>/bin folder.
  2. Backup the current java.security file found under <B2Bi_Install>/jdk/jre/lib/security
  3. Edit java.security file , make the below changes and save the file
    Move  com.ibm.crypto.fips.provider.IBMJCEFIPS down e.g., From security.provider.2=com.ibm.crypto.fips.provider.IBMJCEFIPS security.provider.3=com.ibm.crypto.provider.IBMJCE To security.provider.2=com.ibm.crypto.provider.IBMJCE security.provider.3=com.ibm.crypto.fips.provider.IBMJCEFIPS
  4. Start B2Bi node using ./run.sh from <B2Bi_install>/bin folder
    Perform these changes in all nodes if you are running B2Bi in Cluster environment

Haga clic en el siguiente botón para descargar este boletín en formato Pdf.