项目之前运行非常的稳定,没有异常情况
但是项目自从换了服务器之后就出现这样的异常了。1、项目分成两部分,主站和论坛(论坛与主站的数据库是分开的)。
2、主站首页需要显示论坛的内容(所以连接论坛时又新增了一个数据库连接,是用C3PO连接的)。
3、在主站注册会员的时候,同时把会员信息添加到论坛中(下面的异常就是注册会员添加到论坛时抛出的异常)。
疑点:主站首页显示论坛信息的时候没有发生异常,如果是C3PO连接有问题的话,那主站显示论坛信息的也应该发生异常,
但是只有会员注册的时候发生了异常,这是小弟迷惑的地方,希望各位大哥帮帮忙,谢谢!!!!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)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at com.czsoft.tax.bbs.DBPool.getConnection(DBPool.java:43)
at com.czsoft.tax.bbs.UserDB.insert(UserDB.java:14)
at com.czsoft.tax.web.action.UserAction.add(UserAction.java:309)
at sun.reflect.GeneratedMethodAccessor709.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
但是项目自从换了服务器之后就出现这样的异常了。1、项目分成两部分,主站和论坛(论坛与主站的数据库是分开的)。
2、主站首页需要显示论坛的内容(所以连接论坛时又新增了一个数据库连接,是用C3PO连接的)。
3、在主站注册会员的时候,同时把会员信息添加到论坛中(下面的异常就是注册会员添加到论坛时抛出的异常)。
疑点:主站首页显示论坛信息的时候没有发生异常,如果是C3PO连接有问题的话,那主站显示论坛信息的也应该发生异常,
但是只有会员注册的时候发生了异常,这是小弟迷惑的地方,希望各位大哥帮帮忙,谢谢!!!!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)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at com.czsoft.tax.bbs.DBPool.getConnection(DBPool.java:43)
at com.czsoft.tax.bbs.UserDB.insert(UserDB.java:14)
at com.czsoft.tax.web.action.UserAction.add(UserAction.java:309)
at sun.reflect.GeneratedMethodAccessor709.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
我们是用代码直接easyjforum的数据库,与论坛程序无关.
连接代码:package com.czsoft.tax.bbs;import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;import com.mchange.v2.c3p0.ComboPooledDataSource;public class DBPool { private static DBPool dbPool;
private ComboPooledDataSource dataSource; static{
dbPool = new DBPool();
} public DBPool(){
try{
dataSource = new ComboPooledDataSource();
BbsProperties bbs = new BbsProperties();
dataSource.setUser(bbs.readValue("connection.username"));
dataSource.setPassword(bbs.readValue("connection.password"));
dataSource.setJdbcUrl(bbs.readValue("connection.url"));
dataSource.setDriverClass(bbs.readValue("connection.driver_class"));
dataSource.setInitialPoolSize(2);
dataSource.setMinPoolSize(1);
dataSource.setMaxPoolSize(10);
dataSource.setMaxStatements(50);
dataSource.setMaxIdleTime(60);
}catch(PropertyVetoException e){
System.out.println("DBPool init ------> exception");
throw new RuntimeException(e);
}
} public final static DBPool getInstance(){
return dbPool;
} public final Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
System.out.println("DBPool ----> getConnection() exception");
throw new RuntimeException("Connection is error!",e);
}
}}
因为项目在以前的服务器上跑一点问题都没有,自从换了服务器和数据库后就出现问题了,代码应该没问题,Tomcat的版本与以前的版本一样,剩下就数据库不一样了!有谁知道具体是数据库哪里原因吗?因为我还得找服务器那边的人,就好能一次性弄好!麻烦大家了!
把ComboPooledDataSource这个类的代码贴出来看看
获取连接的时候没资源还是什么? 确认代码connection都关闭增加连接数试下。 确认URL都正确?
dataSource = new ComboPooledDataSource();
BbsProperties bbs = new BbsProperties();
dataSource.setUser(bbs.readValue("connection.username"));
dataSource.setPassword(bbs.readValue("connection.password"));
dataSource.setJdbcUrl(bbs.readValue("connection.url"));
dataSource.setDriverClass(bbs.readValue("connection.driver_class"));
dataSource.setInitialPoolSize(2);
dataSource.setMinPoolSize(1);
dataSource.setMaxPoolSize(10);
dataSource.setMaxStatements(50);
dataSource.setMaxIdleTime(60);真不行改下DBPool, 直接DBpool.getConnection都每次开一个连接,直接使用JDBC调试下
这是资源文件的内容:就是 代码里 bbs.readValue("connection.username")读取的内容。
connection.url=jdbc:mysql://x01.jspwebhost.cn:3306/xa00074?useUnicode=true&characterEncoding=EUC_CN
connection.username=aaaaaaa
connection.password=xxxxxxx
connection.driver_class=com.mysql.jdbc.Driver
bbsmessage.display=yes这是hibernate的配置文件
<?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"><!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory>
<property name="hibernate.connection.provider_class">
org.hibernate.connection.C3P0ConnectionProvider
</property>
<property name="c3p0.min_size">5</property>
<property name="c3p0.max_size">300</property>
<property name="c3p0.time_out">1800</property>
<property name="c3p0.max_statement">50</property>
<property name="c3p0.acquire_increment">1</property>
<property name="c3p0.idle_test_period">120</property>
<property name="c3p0.validate">true</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://192.168.1.13:3306/tax
</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="myeclipse.connection.profile">zhuji</property>
<property name="connection.characterEncoding">utf8</property>
<property name="connection.useUnicode">false</property>
<property name="show_sql">false</property> <mapping
resource="com/czsoft/tax/domain/entity/QuestionT.hbm.xml" />
<mapping
resource="com/czsoft/tax/domain/entity/LawCateT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/LinkT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/LogT.hbm.xml" />
<mapping
resource="com/czsoft/tax/domain/entity/QaCateT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/UserT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/LawT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/InfoT.hbm.xml" />
<mapping
resource="com/czsoft/tax/domain/entity/AnswerT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/MainT.hbm.xml" />
<mapping resource="com/czsoft/tax/domain/entity/AdminT.hbm.xml" />
<mapping
resource="com/czsoft/tax/domain/entity/InfoCateT.hbm.xml" /> </session-factory></hibernate-configuration>
看看插入sql语句怎样的
这应该是数据库连接有问题
如果是连接问题的话那主站的首页读取论坛信息这么没有问题,用的都是这样类的链接!
哎, 临时没时间就直接把下面的改成
DriverManager.getConnection()用着先了。===============================================================public final Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
System.out.println("DBPool ----> getConnection() exception");
throw new RuntimeException("Connection is error!",e);
}
}
这个帖子是英文的,我没本事翻译过来。希望楼主有那个能力。期待问题的解决方案。
记得贴上来。
http://lists.jboss.org/pipermail/hibernate-issues/2006-November/002418.html
http://translate.google.cn/translate?hl=zh-CN&sl=en&u=http://opensource.atlassian.com/projects/hibernate/browse/HHH-2032&ei=d6cLS-vcH43Y7APrwMGBAw&sa=X&oi=translate&ct=result&resnum=2&ved=0CAsQ7gEwATgK&prev=/search%3Fq%3Dcom.mchange.v2.resourcepool.CannotAcquireResourceException:%2BA%2BResourcePool%2Bcould%2Bnot%2Bacquire%2Ba%2Bresource%2Bfrom%2Bits%2Bprimary%2Bfactory%2Bor%2Bsource.%26hl%3Dzh-CN%26sa%3DN%26start%3D10%26newwindow%3D1
----------------------------三个解决办法?---------------
14:43:58,253 WARN BasicResourcePool:1222 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@edf4c8 – 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).There are three workarounds to the problem:1。 Revert back to Hibernate 3.2.0.cr3 (not really an option)恢复到休眠3.2.0.cr3(不是一个真正的选项)
2. 2。 Increase the 'max connections' setting for the database加大对数据库中的'最大的连接设置
3. 3。 Disable c3p0 by removing it from hibernate.cfg.xml禁用C3P0的通过从它的hibernate.cfg.xml
数据库移服务器可能发生索引失效或丢失的问题
调试一下,找出哪个表的索引失效
将其重建
Good Luck
数据库移服务器可能发生索引失效或丢失的问题
调试一下,找出哪个表的索引失效
将其重建
Good Luck