Support Article
Bix fails while running the Extract rule from Unix Command Line
SA-58686
Summary
Business Intellgence Exchange (BIX) fails while running the Extract rule on the Unix Command Line.
Error Messages
xxxxxxxxxxx com.pega.pegarules.internal.bootstrap.PRBootstrap
SEVERE: Problem during method invocation (main)
java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
at com.pega.pegarules.exec.internal.PRExecProviderImpl.getCrypto(PRExecProviderImpl.java:413)
at com.pega.pegarules.deploy.internal.archive.ParUtilsImpl.<clinit>(ParUtilsImpl.java:146)
at com.pega.pegarules.deploy.internal.PRDeployProviderImpl.getParUtils(PRDeployProviderImpl.java:112)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineStartup.initEngine(EngineStartup.java:513)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._initEngine_privact(EngineImpl.java:172)
at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.doStartup(EngineImpl.java:145)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngineImpl(EngineImpl.java:246)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngine(EngineImpl.java:125)
at com.pega.pegarules.session.internal.mgmt.EngineImpl.startEngine(EngineImpl.java:111)
at com.pega.pegarules.data.internal.access.ExtractImpl.main(ExtractImpl.java:732)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(PRBootstrap.java:370)
at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(PRBootstrap.java:411)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(AppServerBridgeToPega.java:224)
at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethod(AppServerBridgeToPega.java:273)
at com.pega.pegarules.pub.PegaRULES.main(PegaRULES.java:85)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.findClass(PRBaseLoader.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at com.pega.pegarules.internal.bootstrap.phase2.PRBaseLoader.loadClass(PRBaseLoader.java:233)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:791)
at com.pega.pegarules.bootstrap.loader.PRAppLoader.loadClass(PRAppLoader.java:644)
... 19 more
xxxxxxxxxxxxx com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega
SEVERE: Problem during method invocation (main)
java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider
Steps to Reproduce
Run the Extract rule from the Command Line.
Root Cause
The class file which is not found in the exception is part of the Pega database and is extracted on the local file system of BIX execution during runtime.
'org/bouncycastle/jce/provider/BouncyCastleProvider' is part of '/extractedFiles/baseloader/javaxx/bcprov-jdk15on-149.jar'.
The 'extractedFiles' folder is created on the file system relative to the location provided in the prbootstrap.properties for the 'com.pega.pegarules.bootstrap.tempdir' property.
The issue occurs when multiple BIX processes are run concurrently and access the same 'com.pega.pegarules.bootstrap.tempdir' location.
Resolution
Perform the following local-change:
Provide unique temporary direcoty paths for the 'com.pega.pegarules.bootstrap.tempdir' property in prbootstrap.properties.
Tags:
Published August 28, 2018 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.