Hello,
I know that this is old problem and many threads ahave laready discussed that i have read all that but facing a problem. I am extending my DAO from HibernateDAOSupport and have exposed the dataSource property. Everything is working fine but i am getting connection close exception. The stack trace is as (using spring 1.1 Rc 2, Hibernate 2.1.6, JBoss 3.2.3, I am using SLSB + EJB CMT.
I am getting following exception of connection not closing
12:39:37,071 INFO [CachedConnectionManager] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@ 17e53c9
java.lang.Exception: STACKTRACE
at org.jboss.resource.connectionmanager.CachedConnect ionManager.registerConnection(CachedConnectionMana ger.java:282)
at org.jboss.resource.connectionmanager.BaseConnectio nManager2.allocateConnection(BaseConnectionManager 2.java:506)
at org.jboss.resource.connectionmanager.BaseConnectio nManager2$ConnectionManagerProxy.allocateConnectio n(BaseConnectionManager2.java:814)
at org.jboss.resource.adapter.jdbc.WrapperDataSource. getConnection(WrapperDataSource.java:102)
at org.springframework.orm.hibernate.LocalDataSourceC onnectionProvider.getConnection(LocalDataSourceCon nectionProvider.java:66)
at net.sf.hibernate.impl.BatcherImpl.openConnection(B atcherImpl.java:286)
at net.sf.hibernate.impl.SessionImpl.connect(SessionI mpl.java:3326)
at net.sf.hibernate.impl.SessionImpl.connection(Sessi onImpl.java:3286)
at net.sf.hibernate.impl.BatcherImpl.prepareStatement (BatcherImpl.java:61)
at net.sf.hibernate.impl.BatcherImpl.prepareStatement (BatcherImpl.java:56)
at net.sf.hibernate.impl.BatcherImpl.prepareBatchStat ement(BatcherImpl.java:109)
at net.sf.hibernate.persister.EntityPersister.insert( EntityPersister.java:460)
at net.sf.hibernate.persister.EntityPersister.insert( EntityPersister.java:439)
at net.sf.hibernate.impl.ScheduledInsertion.execute(S cheduledInsertion.java:29)
at net.sf.hibernate.impl.SessionImpl.executeAll(Sessi onImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionI mpl.java:2371)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImp l.java:2240)
at com.sequelsys.server.common.dao.TestDAO$1.doInHibe rnate(TestDAO.java:81)
at org.springframework.orm.hibernate.HibernateTemplat e.execute(HibernateTemplate.java:176)
at com.sequelsys.server.common.dao.TestDAO.insert(Tes tDAO.java:101)
at com.shoaib.ejb.session.TestingTransactionSessionBe an.save(TestingTransactionSessionBean.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.ejb.StatelessSessionContainer$ContainerI nterceptor.invoke(StatelessSessionContainer.java:6 83)
at org.jboss.resource.connectionmanager.CachedConnect ionInterceptor.invoke(CachedConnectionInterceptor. java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInte rceptor.invoke(StatelessSessionInstanceInterceptor .java:72)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invoke Next(AbstractTxInterceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTran sactions(TxInterceptorCMT.java:267)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxIn terceptorCMT.java:128)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(S ecurityInterceptor.java:118)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInt erceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderIntercepto r.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.StatelessSessionContainer.internalIn voke(StatelessSessionContainer.java:331)
at org.jboss.ejb.Container.invoke(Container.java:700)
at org.jboss.ejb.plugins.local.BaseLocalProxyFactory. invoke(BaseLocalProxyFactory.java:375)
at org.jboss.ejb.plugins.local.StatelessSessionProxy. invoke(StatelessSessionProxy.java:83)
at $Proxy35.save(Unknown Source)
at com.shoaib.ejb.session.facade.session.ApplicationF acadeSessionBean.saveTest(ApplicationFacadeSession Bean.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.ejb.StatelessSessionContainer$ContainerI nterceptor.invoke(StatelessSessionContainer.java:6 83)
at org.jboss.resource.connectionmanager.CachedConnect ionInterceptor.invoke(CachedConnectionInterceptor. java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInte rceptor.invoke(StatelessSessionInstanceInterceptor .java:72)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invoke Next(AbstractTxInterceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTran sactions(TxInterceptorCMT.java:267)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxIn terceptorCMT.java:128)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(S ecurityInterceptor.java:118)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInt erceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderIntercepto r.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.StatelessSessionContainer.internalIn voke(StatelessSessionContainer.java:331)
at org.jboss.ejb.Container.invoke(Container.java:700)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.jboss.mx.capability.ReflectedMBeanDispatcher.i nvoke(ReflectedMBeanDispatcher.java:284)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanSe rverImpl.java:546)
at org.jboss.invocation.jrmp.server.JRMPInvoker.invok e(JRMPInvoker.java:367)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:261)
at sun.rmi.transport.Transport$1.run(Transport.java:1 48)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport. java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages( TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:534)
My DAO is as follows.
-------------
DAO
---------------
Code:package com.sequelsys.server.common.dao; import javax.sql.*; import org.springframework.jdbc.core.*; import org.springframework.jdbc.oracle.*; import org.springframework.orm.hibernate.*; import airline.hibernate.*; import net.sf.hibernate.*; import org.springframework.orm.hibernate.support.HibernateDaoSupport; public class TestDAO extends HibernateDaoSupport{ private DataSource dataSource; public void setDataSource(DataSource dataSource) { this.dataSource = dataSource; } public DataSource getDataSource() { return dataSource; } public TestDAO() { } public void insert() { HibernateCallback hibernateCallback = new HibernateCallback() { public Object doInHibernate(Session session) { try { session.flush(); } catch (HibernateException ex) { ex.printStackTrace(); } return null; } }; Test test = new Test(); test.setId(new Long("18")); test.setName("BS"); this.getHibernateTemplate().save(test); Test test2 = new Test(); test2.setId(new Long("19")); test2.setName("BS"); this.getHibernateTemplate().save(test2); this.getHibernateTemplate().execute(hibernateCallback); // To flush the session so that jdbc can see this JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource); System.out.println((jdbcTemplate.queryForInt("SELECT COUNT(*) FROM test"))); System.out.println("Running Update" ); jdbcTemplate.update("Update Test set name='Benzi' where id = 18"); jdbcTemplate.update("delete from test where id = 18"); System.out.println((jdbcTemplate.queryForInt("SELECT COUNT(*) FROM test"))); System.out.println("Ran Update" ); } }
and applicationContetx is as follows
---------
If i only use one of them (hibernatetemplate or jdbctemplate) i get no exception at all. Though this exception is coming all other things are working kindly help me asap.Code:<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "file:///C:/jboss-3.2.3/server/default/lib/spring-beans.dtd"> <!--Application context definition for EMR Relase 1.0 maintained by Shoaib on Hibernate.--><beans> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"><value>java:/OracleDS</value></property> </bean> <!-- Hibernate SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"> <property name="dataSource"><ref local="dataSource" /></property> <!-- Mapping Resources for Hibernate Session Factory (Specify the hbm.xml to be used here) --> <property name="mappingResources"> <list> <value>airline/hibernate/Test.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">net.sf.hibernate.dialect.Oracle9Dialect</prop> <prop key="hibernate.transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</prop> <prop key="hibernate.transaction.manager_lookup_class">net.sf.hibernate.transaction.JBossTransactionManagerLookup</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.cglib.use_reflection_optimizer">true</prop> </props> </property> </bean> <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) --> <bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <property name="sessionFactory"><ref local="sessionFactory" /></property> <property name="dataSource"><ref local="dataSource" /></property> </bean> <!-- Refereces of DAOs to be used by Session beans--> <bean id="testDAO" class="com.sequelsys.server.common.dao.TestDAO" autowire="byName" /> </beans>


Reply With Quote
