[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - CachedConnectionManager:Closing a connection for you

skymic do-not-reply at jboss.com
Thu Jun 7 07:12:48 EDT 2007


Hello,

I am using a clsutered JBoss4.0.5 with EJB3 profile.
I have defined an Oracle10 datasource.
The datasource is defoned in the following file SDOCI-ds.xml:
<?xml version="1.0" encoding="UTF-8"?>
  | 
  | <!-- ===================================================================== -->
  | <!--                                                                       -->
  | <!--  JBoss Server Configuration                                           -->
  | <!--                                                                       -->
  | <!-- ===================================================================== -->
  | 
  | <!-- $Id: oracle-ds.xml 23720 2004-09-15 14:37:40Z loubyansky $ -->
  | <!-- ==================================================================== -->
  | <!--  Datasource config for Oracle originally from Steven Coy             -->
  | <!-- ==================================================================== -->
  | 
  | 
  | <datasources>
  |   <local-tx-datasource>
  |     <jndi-name>idmDS</jndi-name>
  |     <connection-url>jdbc:oracle:oci:@myDatabase</connection-url>
  |         <!--
  | 
  |                 Here are a couple of the possible OCI configurations.
  |                 For more information, see http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/java.920/a96654/toc.htm
  | 
  |         <connection-url>jdbc:oracle:oci:@youroracle-tns-name</connection-url>
  |                 or
  |         <connection-url>jdbc:oracle:oci:@(description=(address=(host=youroraclehost)(protocol=tcp)(port=1521))(connect_data=(SERVICE_NAME=yourservicename)))</connection-url>
  | 
  |                 Clearly, its better to have TNS set up properly.
  |          -->
  |     <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
  |      <user-name>user</user-name>
  |     <password>password</password>
  |     <min-pool-size>1</min-pool-size>
  |     <max-pool-size>20</max-pool-size>
  |     <idle-timeout-minutes>40</idle-timeout-minutes>
  |     <!-- Uses the pingDatabase method to check a connection is still valid before handing it out from the pool -->
  |     <!--valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name-->
  |     <!-- Checks the Oracle error codes and messages for fatal errors -->
  |     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
  |         <!-- sql to call when connection is created
  |         <new-connection-sql>some arbitrary sql</new-connection-sql>
  |         -->
  | 
  |         <!-- sql to call on an existing pooled connection when it is obtained from pool - the OracleValidConnectionChecker is prefered
  |         <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
  |         -->
  | 
  |       <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
  |       <metadata>
  |          <type-mapping>Oracle10i</type-mapping>
  |       </metadata>
  |   </local-tx-datasource>
  | 
  | </datasources>
  | 

The datasource is injected in a stateful session bean:




Every time after I use this datasource in the login business method of the SFSB I get the following exception:

2007-06-07 12:42:36,399 INFO  [org.jboss.resource.connectionmanager.CachedConnectionManager] Closing a connection for you.  Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection at 2fc479
  | java.lang.Throwable: STACKTRACE
  |         at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:290)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:417)
  |         at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
  |         at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
  |         at ch.skyguide.aim.interfaces.businesslogic.SDOCIBusinessServiceImpl.login(Unknown Source)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |         at java.lang.reflect.Method.invoke(Method.java:597)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
  |         at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
  |         at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)
  |         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |  

I do not close the underlying connection of the datasource explicitly.

Does anyone know why this exception happens and if I should open/close connections in datasources explicitly?

Thanks for helping.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4052062#4052062

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4052062



More information about the jboss-user mailing list