Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

System crashes due to multiple stuck threads



System crashes after multiple build up. Stuck threads can be viewed in the JVM logs, most of these stuck threads trying to access log4j class.

This issue occurs when Pega7 is deployed on weblogic.

Error Messages

NoClassDefFoundError, message='com/pega/apache/log4j/spi/ThrowableInformation', stacktrace=java.lang.NoClassDefFoundError: com/pega/apache/log4j/spi/ThrowableInformation
at com.pega.apache.log4j.spi.LoggingEvent.<init>(
at com.pega.apache.log4j.Category.forcedLog(
2015-11-03 08:40:07,236 [fault (self-tuning)'] [ STANDARD] [ ] ( services.http.HTTPService) ERROR | - Caught unexpected java.lang.NoClassDefFoundError, message='com/pega/apache/log4j/spi/ThrowableInformation', stacktrace=java.lang.NoClassDefFoundError: com/pega/apache/log4j/spi/ThrowableInformation
 at com.pega.apache.log4j.spi.LoggingEvent.<init>(
 at com.pega.apache.log4j.Category.forcedLog(
 at com.pega.apache.log4j.Category.error(
 at com.pega.pegarules.priv.LogHelper.error(
 at com.pega.pegarules.session.internal.PRSessionProviderImpl.borrowRequestor(
 at com.pega.pegarules.session.internal.PRSessionProviderImpl.obtainRequestor(
 at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(
 at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(
 at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl._invokeEngine_privact(
 at com.pega.pegarules.session.internal.engineinterface.etier.impl.EngineImpl.invokeEngine(
 at com.pega.pegarules.session.internal.engineinterface.etier.ejb.EngineBean.invokeEngine(
 at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
 at java.lang.reflect.Method.invoke(
 at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethod(
 at com.pega.pegarules.internal.bootstrap.PRBootstrap.invokeMethodPropagatingThrowable(
 at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingThrowable(
 at com.pega.pegarules.boot.internal.extbridge.AppServerBridgeToPega.invokeMethodPropagatingException(

Steps to Reproduce


Root Cause

This occurs when an exception is thrown from a remote service. (in this particular case, from a JMS Service).

The Pega Engine tries to log it via log4j.  As log4j classes are in database, Pega tries to load the classes from the database.  However, because it is a remote invocation, while trying to connect to database via weblogic datasource, the database connection is intercepted by weblogic security.  As such, the class is not loaded from the database and the NoClassDefFound error occurs.


This can be addresed by changing the weblogic settings in (CHOOSE ONE) one of the following ways:

1. Enable "global trust between domains".
2. Enable "Cross Domain Security Between WebLogic Server Domains".
3. Set downgrade-untrusted-principal to false.

These are weblogic settings and more information on these settings can be found in the Weblogic documentationb

Published January 31, 2016 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice
Contact us