weblogic.common.resourcepool.ResourceLimitException is Thrown when Using a Non-XA Driver (Doc ID 1075712.1)

Last updated on OCTOBER 24, 2016

Applies to:

Oracle Business Process Management Suite - Version 10.3.1 to 10.3.1 [Release AS10gR3]
Information in this document applies to any platform.
***Checked for relevance on 04-Nov-2011***
***Checked for relevance on 05-Apr-2013***


Symptoms

In BPM, when using Remote-JDBC to access an external database, the resource seems not to be freed when used in a loop, if the loop has more loops than connections in pool.

For example, the following PBL code is defined in an automatic activity:

int i = 0;

for (i=0 ; i < 15 ; i++ ) {
logMessage ("Starting loop " + i);
DbEntries.DbEntries.getRunEntries();
}


which calls the following BPM object method:

String sqlQuery;
Iterator<Any[Any]> sqlResult;

sqlQuery = "SELECT * FROM SOME_EXTERNAL_TABLE";

sqlResult = DynamicSQL.executeQuery(sentence : sqlQuery,
implname : "External_Database",
inParameters : { });

foreach (result in sqlResult ) {
logMessage("DescriptionID: " + (String)result["DESCRIPTION_ID"]);
}



The WLS datasource that the Remote-JDBC external resource will call is defined as follows:

<?xml version="1.0" encoding="UTF-8"?>
<jdbc-data-source xsi:schemaLocation="http://www.bea.com/ns/weblogic/jdbc-data-source http://www.bea.com/ns/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd" xmlns="http://www.bea.com/ns/weblogic/jdbc-data-source" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<name>obpm_services_ds</name>
<jdbc-driver-params>
<url>jdbc:oracle:thin:@ignite.domain.com:1521:ignite</url>
<driver-name>oracle.jdbc.OracleDriver</driver-name>
<properties>
<property>
<name>user</name>
<value>SERVICES</value>
</property>
</properties>
<password-encrypted>{3DES}lNWfidZkeH2AnVcZdM4f3Q==</password-encrypted>
</jdbc-driver-params>
<jdbc-connection-pool-params>
<initial-capacity>10</initial-capacity>
<max-capacity>10</max-capacity>
<capacity-increment>5</capacity-increment>
<shrink-frequency-seconds>900</shrink-frequency-seconds>
<highest-num-waiters>2147483647</highest-num-waiters>
<connection-creation-retry-frequency-seconds>0</connection-creation-retry-frequency-seconds>
<test-frequency-seconds>120</test-frequency-seconds>
<test-connections-on-reserve>true</test-connections-on-reserve>
<ignore-in-use-connections-enabled>true</ignore-in-use-connections-enabled>
<inactive-connection-timeout-seconds>0</inactive-connection-timeout-seconds>
<test-table-name>SQL SELECT 1 FROM DUAL</test-table-name>
<login-delay-seconds>0</login-delay-seconds>
<statement-cache-size>10</statement-cache-size>
<statement-cache-type>LRU</statement-cache-type>
<seconds-to-trust-an-idle-pool-connection>10</seconds-to-trust-an-idle-pool-connection>
<statement-timeout>-1</statement-timeout>
<pinned-to-thread>false</pinned-to-thread>
</jdbc-connection-pool-params>
<jdbc-data-source-params>
<jndi-name>obpm_services_ds</jndi-name>
<global-transactions-protocol>None</global-transactions-protocol>
</jdbc-data-source-params>
</jdbc-data-source>


Since a non-XA driver has been selected, and the max-capacity has been set to 10, the following error is thrown to Engine Logs, after loop #10:

Caused by: weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool obpm_services_ds to allocate to applications, please increase the size of the pool and retry..
at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:251)
at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiDataSource.java:327)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:343)
at fuego.connector.impl.RemoteJDBCConnector.getConnection(RemoteJDBCConnector.java:87)
at fuego.connector.impl.RemoteJDBCConnector.getConnection(RemoteJDBCConnector.java:64)
at fuego.connector.impl.RemoteJDBCConnector.getResource(RemoteJDBCConnector.java:147)
at fuego.connector.ConnectorTransaction.getResource(ConnectorTransaction.java:319)



Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms