Hi! all
i was using COM.ibm.db2.jdbc.app.DB2Driver and was getting following exception :
10:57:18,124 WARN BasicResourcePool:1222 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@966905 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30).
10:57:18,124 WARN BasicResourcePool:1222 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@c8ccb1 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30).
10:57:18,202 WARN SettingsFactory:109 - Could not obtain connection metadata
java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:104)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:236)
at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.java:94)
at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:76)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.createSessionFactory(PersistenceEnvBaseImpl.java:90)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.<init>(PersistenceEnvBaseImpl.java:43)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.getInstance(PersistenceEnvBaseImpl.java:53)
at com.ibm.tmds.model.persistence.PersistenceAdapterForHibernate.startPersistenceEnvironment(PersistenceAdapterForHibernate.java:51)
at com.ibm.tmds.model.persistence.PersistenceAdapterForHibernate.<clinit>(PersistenceAdapterForHibernate.java:43)
at com.ibm.tmds.view.util.TMDSStart$1.run(TMDSStart.java:600)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAcquire(BasicResourcePool.java:970)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:208)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:232)
... 18 more
SQLException information
Error msg:
No suitable driver SQLSTATE: 08001
Error code: 0
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(DriverManager.java:545)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.ibm.tmds.model.jdbc.helper.DatabaseConnectionFastrac.getConnection(DatabaseConnectionFastrac.java:73)
at com.ibm.tmds.model.jdbc.helper.JDBCSearchDB.<init>(JDBCSearchDB.java:27)
at com.ibm.tmds.model.user.User.<init>(User.java:342)
at com.ibm.tmds.model.user.UserDAO.<init>(UserDAO.java:29)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at org.hibernate.engine.UnsavedValueFactory.instantiate(UnsavedValueFactory.java:22)
at org.hibernate.engine.UnsavedValueFactory.getUnsavedIdentifierValue(UnsavedValueFactory.java:44)
at org.hibernate.tuple.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:44)
at org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.java:118)
at org.hibernate.persister.entity.AbstractEntityPersister.<init>(AbstractEntityPersister.java:425)
at org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1291)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.createSessionFactory(PersistenceEnvBaseImpl.java:90)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.<init>(PersistenceEnvBaseImpl.java:43)
at com.ibm.tmds.model.persistence.PersistenceEnvBaseImpl.getInstance(PersistenceEnvBaseImpl.java:53)
at com.ibm.tmds.model.persistence.PersistenceAdapterForHibernate.startPersistenceEnvironment(PersistenceAdapterForHibernate.java:51)
at com.ibm.tmds.model.persistence.PersistenceAdapterForHibernate.<clinit>(PersistenceAdapterForHibernate.java:43)
at com.ibm.tmds.view.util.TMDSStart$1.run(TMDSStart.java:600)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
then i changed the driver to : com.ibm.db2.jcc.DB2Driver in my config file:
and now i get an OutOfMemoryError. which i am working on..
Can i assume that since its not giving me driver exception, my current driver is fine.
we had an application with OJB which we are now converting to hibernate.
I also want to know that is it possible to have hibernate along with the normal
jdbc connection as because of some performance issue some part of the application was changed to normal jdbc routine and some of the database quries are handled through that.
here is my config file:
<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- database connection settings -->
<property name="connection.driver_class">
com.ibm.db2.jcc.DB2Driver
</property>
<property name="connection.url">
jdbc
b2://rivaldo:50000/COAPP </property>
<property name="connection.username">admindb</property>
<property name="connection.password">admindb</property>
<!-- end database connection settings -->
<!-- jdbc connection pool - use the built-in one -->
<!--<property name="connection.pool_size">1</property>-->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>
<!-- SQL Dialect -->
<property name="dialect">
org.hibernate.dialect.DB2Dialect
</property>
<!-- enable hibernate's automatic session context management -->
<property name="current_session_context_class">
thread</property>
<!-- disable the second level cache -->
<property name="cache.provider_class">
org.hibernate.cache.NoCacheProvider
</property>
<!-- Echo all the executed sql to stdout -->
<property name="show_sql">true</property>
<property name="use_sql_comments">true</property>
<!-- Other configuration parameters -->
<property name="max_fetch_depth">3</property>
<property name="order_updates">true</property>
<!-- mapping resources -->
<mapping resource="hibtable.hbm.xml" />
</session-factory>
</hibernate-configuration>
any help would be much appreciated.
thanks in advance..