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

'IJ000453: Unable to get managed connection' performance issues

SA-53395

Summary



User is facing environment performance issues with Pega 7.3.1.
 


Error Messages



java.lang.Exception: Caught exception while creating Connection, javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/eis/PRAdapterConnectionFactory
at com.pega.pegarules.resadap.RAClient.init(RAClient.java:152) ~[prprivcommon.jar:?]
at com.pega.pegarules.resadap.RAClient.<init>(RAClient.java:87) ~[prprivcommon.jar:?]
at com.pega.pegarules.resadap.RAClientContainer.get(RAClientContainer.java:47) ~[prprivcommon.jar:?]
at com.pega.pegarules.session.internal.async.BatchUtils.callRAClient(BatchUtils.java:146) ~[prprivate.jar:?]
at com.pega.pegarules.session.internal.async.Agent.queueBatchAsyncLoad(Agent.java:2325) ~[prprivate.jar:?]
... 187 more
Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/eis/PRAdapterConnectionFactory
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:421) ~[ironjacamar-core-impl-1.0.31.Final-redhat-1.jar!/:1.0.31.Final-redhat-1]
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:327) ~[ironjacamar-core-impl-1.0.31.Final-redhat-1.jar!/:1.0.31.Final-redhat-1]
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:510) ~[ironjacamar-core-impl-1.0.31.Final-redhat-1.jar!/:1.0.31.Final-redhat-1]

Caused by: javax.resource.ResourceException: IJ000655: No managed connections available within configured blocking timeout (30000 [ms])
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:427) ~[ironjacamar-core-impl-


Steps to Reproduce



Not Applicable


Root Cause



A defect or configuration issue in the operating environment:

The cause for the error is that connection factory may not return a connection if all the connections are exhausted and there are no connection left.

The connection pool size may be causing issues with agent processing that cannot run when the pool is maxed out. 

The limitation of resources is configurable as part of the pradapter.rar contained within the prpc*.ear file. 

jboss-pradapter-ds.xml was used with previous JBoss version however, since JBoss 6.x, ironjacamar.xml is being used to configure and activate the resource adapter automatically upon deployment.

The file location is prpc_j2ee14_jboss61JBM.ear/pradapter.rar/META-INF/ironjacamar.xml 

Resolution



Perform the following local-change: 
In order to increase the pool size, apply the Resolution contained in following Support Article:
 
https://pdn.pega.com/support-articles/application-becomes-unresponsive-during-load-test

Note that there is not strict need to replace the entire content as recommended in the SA above, it's enough to increase the max-pool-size to a value that suits the application expected load.

The full set of changes reported in the Support Article can be applied in case a more aggressive resource management policy should be required (larger pool,  preload CFs)
The following steps can be used to monitor the connection pool usage to inspect the effective load and ensure that size is appropriate


Monitoring

To verify and monitor resource settings and availability at runtime use the jboss-cli command line management tool or a JMX client like JConsole
Find below usage instruction for both cases:
  • jboss-cli

    Commands executed with OOTB prpc_j2ee14_jboss61JBM.ear

    c:\jboss-eap-6.3\bin>jboss-cli.bat
If disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect
[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/PRAdapterCF/:write-attribute(name=statistics-enabled,value=true)
{"outcome" => "success"}
[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/PRAdapterCF/:read-attribute(name=AvailableCount)
{
    "outcome" => "success",
    "result" => "10"
}
[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters:read-resource(recursive=true)
{
    "outcome" => "success",
    "result" => {
        "ironjacamar" => {"ironjacamar" => {"resource-adapter" => {"prpc_j2ee14_jboss61JBM.ear#pradapter" => {
            "archive" => "prpc_j2ee14_jboss61JBM.ear#pradapter",
            "beanvalidationgroups" => undefined,
            "bootstrap-context" => undefined,
            "config-properties" => undefined,
            "module" => undefined,
            "transaction-support" => "NoTransaction",
            "admin-objects" => undefined,
            "connection-definitions" => {"eis/PRAdapterCF" => {
                "allocation-retry" => undefined,
                "allocation-retry-wait-millis" => undefined,
                "background-validation" => false,
                "background-validation-millis" => undefined,
                "blocking-timeout-wait-millis" => undefined,
                "class-name" => "com.pega.pegarules.ra.spi.PRManagedConnectionFactoryImpl",
                "enabled" => true,
                "flush-strategy" => "FAILING_CONNECTION_ONLY",
                "idle-timeout-minutes" => undefined,
                "interleaving" => false,
                "jndi-name" => "eis/PRAdapterCF",
                "max-pool-size" => 10,
                "min-pool-size" => 0,

                "no-recovery" => false,
                "no-tx-separate-pool" => false,
                "pad-xid" => false,
                "pool-prefill" => false,
                "pool-use-strict-min" => false,
                "recovery-password" => undefined,
                "recovery-plugin-class-name" => undefined,
                "recovery-plugin-properties" => undefined,
                "recovery-security-domain" => undefined,
                "recovery-username" => undefined,
                "same-rm-override" => undefined,
                "security-application" => true,
                "security-domain" => undefined,
                "security-domain-and-application" => undefined,
                "use-ccm" => true,
                "use-fast-fail" => false,
                "use-java-context" => true,
                "use-try-lock" => undefined,
                "wrap-xa-resource" => true,
                "xa-resource-timeout" => undefined,
                "config-properties" => {
                    "asyncConnectionFactory" => {"value" => "java:comp/env/jms/tcf/Async"},
                    "asyncQueue" => {"value" => "java:comp/env/jms/topic/AsyncTrigger"}
                }
            }}
        }}}},
        "statistics" => {"statistics" => {"connection-definitions" => {"java:/eis/PRAdapterCF" => {}}}}
    }
}
[standalone@localhost:9999 /] quit

Press any key to continue . . .
 
Commands executed after increasing max-pool-size in ironjacamar.xml

c:\jboss-eap-6.3\bin>jboss-cli.bat
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /] connect
[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters:read-resource(recursive=true)
{
    "outcome" => "success",
    "result" => {
        "ironjacamar" => {"ironjacamar" => {"resource-adapter" => {"prpc_j2ee14_jboss61JBM.ear#pradapter" => {
            "archive" => "prpc_j2ee14_jboss61JBM.ear#pradapter",
            "beanvalidationgroups" => undefined,
            "bootstrap-context" => undefined,
            "config-properties" => undefined,
            "module" => undefined,
            "transaction-support" => "NoTransaction",
            "admin-objects" => undefined,
            "connection-definitions" => {"eis/PRAdapterCF" => {
                "allocation-retry" => undefined,
                "allocation-retry-wait-millis" => undefined,
                "background-validation" => false,
                "background-validation-millis" => undefined,
                "blocking-timeout-wait-millis" => undefined,
                "class-name" => "com.pega.pegarules.ra.spi.PRManagedConnectionFactoryImpl",
                "enabled" => true,
                "flush-strategy" => "FAILING_CONNECTION_ONLY",
                "idle-timeout-minutes" => undefined,
                "interleaving" => false,
                "jndi-name" => "eis/PRAdapterCF",
                "max-pool-size" => 100,
                "min-pool-size" => 0,

                "no-recovery" => false,
                "no-tx-separate-pool" => false,
                "pad-xid" => false,
                "pool-prefill" => false,
                "pool-use-strict-min" => false,
                "recovery-password" => undefined,
                "recovery-plugin-class-name" => undefined,
                "recovery-plugin-properties" => undefined,
                "recovery-security-domain" => undefined,
                "recovery-username" => undefined,
                "same-rm-override" => undefined,
                "security-application" => true,
                "security-domain" => undefined,
                "security-domain-and-application" => undefined,
                "use-ccm" => true,
                "use-fast-fail" => false,
                "use-java-context" => true,
                "use-try-lock" => undefined,
                "wrap-xa-resource" => true,
                "xa-resource-timeout" => undefined,
                "config-properties" => {
                    "asyncConnectionFactory" => {"value" => "java:comp/env/jms/tcf/Async"},
                    "asyncQueue" => {"value" => "java:comp/env/jms/topic/AsyncTrigger"}
                }
            }}
        }}}},
        "statistics" => {"statistics" => {"connection-definitions" => {"java:/eis/PRAdapterCF" => {}}}}
    }
}
[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/PRAdapterCF/:write-attribute(name=statistics-enabled,value=true)
{"outcome" => "success"}

[standalone@localhost:9999 /] /deployment=prpc_j2ee14_jboss61JBM.ear/subdeployment=pradapter.rar/subsystem=resource-adapters/statistics=statistics/connection-definitions=java\:\/eis\/PRAdapterCF/:read-attribute(name=AvailableCount)
{
    "outcome" => "success",
    "result" => "100"
}
  • JConsole
Connect with JConsole to the process running the JBoss AS then open the MBeans Tab and expand the following path to inspect the pool size:

jboss.as/prpc_j2ee14_jboss61JBM.ear/pradapter.rar/resource-adapters/ironjacamar/prpc_j2ee14_jboss61JBM.ear#pradapter/eis/PRAdapterCF/attributes

The following screenshot was taken after the ironjacamar.xml was modified



In JConsole expand the following path to inspect the pool usage statistics:


jboss.as/prpc_j2ee14_jboss61JBM.ear/pradapter.rar/resource-adapters/statistics/attributes

 

 

Published July 23, 2018 - Updated October 8, 2020

Was this useful?

100% 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