读书人

hibernate配置c3p0的有关问题

发布时间: 2011-12-01 22:07:01 作者: rapoo

hibernate配置c3p0的问题
我在hibernate中配置c3p0的 xml 如下:
<?xml version= '1.0 ' encoding= 'utf-8 '?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN "
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<hibernate-configuration>
<session-factory>
<property name= "connection.driver_class "> net.sourceforge.jtds.jdbc.Driver </property>
<property name= "connection.url "> jdbc:jtds:sqlserver://localhost:1433/login </property>

<property name= "connection.password "> sa </property>
<property name= "connection.username "> sa </property>

<property name= "hibernate.connection.provider_class "> org.hibernate.connection.C3P0ConnectionProvider </property>
<property name= "hibernate.c3p0.max_size "> 20 </property>
<property name= "hibernate.c3p0.min_size "> 5 </property>
<property name= "hibernate.c3p0.timeout "> 120 </property>
<property name= "hibernate.c3p0.max_statements "> 100 </property>
<property name= "hibernate.c3p0.idle_test_period "> 120 </property>
<property name= "hibernate.c3p0.acquire_increment "> 2 </property>

<property name= "dialect "> org.hibernate.dialect.SQLServerDialect </property>
<property name= "show_sql "> true </property>



<mapping resource= "ExLogin.hbm.xml " />
</session-factory>
</hibernate-configuration>

但在运行的是报出
org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:82)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:70)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:301)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:110)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:88)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1162)
at org.hibernate.loader.Loader.doQuery(Loader.java:390)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
at org.hibernate.loader.Loader.doList(Loader.java:1593)
at org.hibernate.loader.Loader.list(Loader.java:1577)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at business_logic.ExLoginServlet.doGet(ExLoginServlet.java:40)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)


at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:35)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:298)
... 28 more
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.awaitAvailable(BasicResourcePool.java:1307)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:551)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:471)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
... 31 more
这个异常 单独用hibernate 连接数据库没有问题 只是加上了c3p0才出现的这个异常
请各位高手指点一下 不胜感激

[解决办法]
up
[解决办法]
<property name= "connection.url "> jdbc:jtds:sqlserver://localhost:1433/login </property>

改成

jdbc:jtds:sqlserver://localhost:1433;DatabaseName=login
[解决办法]
Connections could not be acquired from the underlying database!
估计问题还是出在配置上
[解决办法]
<property name= "connection.provider_class "> net.sf.hibernate.connection.C3P0ConnectionProvider </property>
<property name= "c3p0.max_size "> 10 </property>
<property name= "c3p0.min_size "> 5 </property>
<property name= "c3p0.timeout "> 5000 </property>
<property name= "c3p0.max_statements "> 1000 </property>
<property name= "c3p0.idle_test_period "> 3000 </property>


<property name= "c3p0.acquire_increment "> 5 </property>
<property name= "c3p0.idle_test_period "> 3000 </property>
[解决办法]
<property name= "connection.driver_class "> net.sourceforge.jtds.jdbc.Driver </property>
<property name= "connection.url "> jdbc:jtds:sqlserver://localhost:1433/login </property>

改成:

<property name= "connection.driver_class ">
net.sourceforge.jtds.jdbc.Driver
</property>
<property name= "connection.url ">
jdbc:jtds:sqlserver://localhost:1433/login
</property>

========
net.sourceforge.jtds.jdbc.Driver这些各占一行..
试试

读书人网 >Java Web开发

热点推荐