Problem Note 54393: Database connection-pool errors occur in SASĀ® 9.3 when the JBoss web application server is handling a closed database connection
In SAS 9.3, database connection-pool errors occur when JBoss Shared Services is handling a closed, external database connection and the JBoss web application server is in clustered environment. When the problem occurs, the following errors appear in the server log file:
2014-07-10 13:44:38,133 INFO [STDOUT] (CLUSTERNODE-SASSERVER2) ERROR [CLUSTERNODE-SASSERVER2] - FAILED TO EXECUTE SQL (STACKTRACE ON DEBUG LOG LEVEL)
JAVA.SQL.SQLRECOVERABLEEXCEPTION: CLOSED CONNECTION
AT ORACLE.JDBC.DRIVER.PHYSICALCONNECTION.PREPARESTATEMENT(PHYSICALCONNECTION.JAVA:3331)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.BASEWRAPPERMANAGEDCONNECTION.DOPREPARESTATEMENT(BASEWRAPPERMANAGEDCONNECTION.JAVA:466)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.BASEWRAPPERMANAGEDCONNECTION.PREPARESTATEMENT(BASEWRAPPERMANAGEDCONNECTION.JAVA:461)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.WRAPPEDCONNECTION.PREPARESTATEMENT(WRAPPEDCONNECTION.JAVA:244)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.REALLYEXEC(CONNECTIONHELPER.JAVA:347)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.ACCESS$5(CONNECTIONHELPER.JAVA:337)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER$3.CALL(CONNECTIONHELPER.JAVA:330)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER$RETRYMANAGER.DOTRY(CONNECTIONHELPER.JAVA:449)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.EXEC(CONNECTIONHELPER.JAVA:333)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.DATABASEJOURNAL.GETRECORDS(DATABASEJOURNAL.JAVA:308)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.ABSTRACTJOURNAL.DOSYNC(ABSTRACTJOURNAL.JAVA:186)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.ABSTRACTJOURNAL.SYNC(ABSTRACTJOURNAL.JAVA:173)
AT ORG.APACHE.JACKRABBIT.CORE.CLUSTER.CLUSTERNODE.SYNC(CLUSTERNODE.JAVA:303)
AT ORG.APACHE.JACKRABBIT.CORE.CLUSTER.CLUSTERNODE.RUN(CLUSTERNODE.JAVA:274)
AT JAVA.LANG.THREAD.RUN(THREAD.JAVA:662)
2014-07-10 13:44:38,239 INFO [STDOUT] (CLUSTERNODE-SASSERVER2) ERROR [CLUSTERNODE-SASSERVER2] - FAILED TO EXECUTE SQL (STACKTRACE ON DEBUG LOG LEVEL)
JAVA.SQL.SQLRECOVERABLEEXCEPTION: CLOSED CONNECTION
AT ORACLE.JDBC.DRIVER.PHYSICALCONNECTION.PREPARESTATEMENT(PHYSICALCONNECTION.JAVA:3331)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.BASEWRAPPERMANAGEDCONNECTION.DOPREPARESTATEMENT(BASEWRAPPERMANAGEDCONNECTION.JAVA:466)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.BASEWRAPPERMANAGEDCONNECTION.PREPARESTATEMENT(BASEWRAPPERMANAGEDCONNECTION.JAVA:461)
AT ORG.JBOSS.RESOURCE.ADAPTER.JDBC.WRAPPEDCONNECTION.PREPARESTATEMENT(WRAPPEDCONNECTION.JAVA:244)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.REALLYEXEC(CONNECTIONHELPER.JAVA:347)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.ACCESS$5(CONNECTIONHELPER.JAVA:337)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER$3.CALL(CONNECTIONHELPER.JAVA:330)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER$RETRYMANAGER.DOTRY(CONNECTIONHELPER.JAVA:449)
AT ORG.APACHE.JACKRABBIT.CORE.UTIL.DB.CONNECTIONHELPER.EXEC(CONNECTIONHELPER.JAVA:333)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.DATABASEJOURNAL.GETRECORDS(DATABASEJOURNAL.JAVA:308)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.ABSTRACTJOURNAL.DOSYNC(ABSTRACTJOURNAL.JAVA:186)
AT ORG.APACHE.JACKRABBIT.CORE.JOURNAL.ABSTRACTJOURNAL.SYNC(ABSTRACTJOURNAL.JAVA:173)
AT ORG.APACHE.JACKRABBIT.CORE.CLUSTER.CLUSTERNODE.SYNC(CLUSTERNODE.JAVA:303)
AT ORG.APACHE.JACKRABBIT.CORE.CLUSTER.CLUSTERNODE.RUN(CLUSTERNODE.JAVA:274)
AT JAVA.LANG.THREAD.RUN(THREAD.JAVA:662)
In order for the JBoss Shared Services connection pool to handle a closed database connection pool without errors, you need to implement the following changes in SharedServices-ds.xml file:
- Navigate to the folder JBoss-home-folder/server/SASServerx/deploy.
- Edit the SharedServices-ds.xml file by adding three additional tags (shown below in bold) to the <local-tx-datasource> tag:
<local-tx-datasource>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
<connection-url>jdbc:-Oracle:thin:@(DESCRIPTION=(ENABLE=broken)(ADDRESS=(PROTOCOL=TCP)(HOST=host-name)(PORT=port-number))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=ESDSAS))) </connection-url>
<security-domain>webinfpltfm-encryptDBPassword</security-domain>
<jndi-name>sas/jdbc/SharedServices</jndi-name>
<check-valid-connection-sql>select 1 from dual</check-valid-connection-sql>
<background-validation>true</background-validation>
<background-validation-minutes>1</background-validation-minutes>
</local-tx-datasource>
- Then restart the JBoss web application server.
Operating System and Release Information
| SAS System | JBoss Application Server | Microsoft Windows Server 2008 R2 | 5.1.1 | | 9.3 TS1M2 | |
| Linux for x64 | 5.1.1 | | 9.3 TS1M2 | |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Problem Note |
| Priority: | medium |
| Date Modified: | 2014-12-16 14:19:17 |
| Date Created: | 2014-10-21 10:45:31 |