进行性能测试的时候经过一段时间的运行,系统停止响应
从数据库端看,连接全部sleep状态,没有阻塞
导出线程信息,发现存在一些阻塞信息
不知哪位大哥碰到过这种情况,请帮忙分析一下
系统配置如下:
tomcat 5.5
spring 2.0.6
hibernate 3.2.5
c3p0 0.9.1-pre-9
mysql 5.0.22具体线程信息如下:名称: TP-Processor12
状态:WAITING 在 com.mchange.v2.resourcepool.BasicResourcePool@13e4a5a 上
阻塞总数:36 等待总数: 4,702堆栈追踪:
java.lang.Object.wait(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1155)
com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:405)
com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:351)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:466)
com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:125)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:510)
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
从数据库端看,连接全部sleep状态,没有阻塞
导出线程信息,发现存在一些阻塞信息
不知哪位大哥碰到过这种情况,请帮忙分析一下
系统配置如下:
tomcat 5.5
spring 2.0.6
hibernate 3.2.5
c3p0 0.9.1-pre-9
mysql 5.0.22具体线程信息如下:名称: TP-Processor12
状态:WAITING 在 com.mchange.v2.resourcepool.BasicResourcePool@13e4a5a 上
阻塞总数:36 等待总数: 4,702堆栈追踪:
java.lang.Object.wait(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1155)
com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:405)
com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:351)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:466)
com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:125)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:510)
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:262)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
解决方案 »
- org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter是哪个jar包的
- Glassfish里应用出现WebappClassLoader unable to load resource问题
- 用MyEclipse测试jsp程序,有的找不到该页?
- 求助一个javascript的问题
- hibernate的错误org.hibernate.tuple.AbstractEntityTuplizer.createProxy~这是什么错误呀!
- struts包含另一个页面时传参问题
- webservice用附件传送文件的问题
- 使用javamail的一些问题,在这里提问对么?
- xslt怎么写出一个循环?(在线等,解决后马上算分)
- 100分!跪求hibernate4 用户、组、权限模块,双向一对多增、删、改、查,操作实例!
- 求jquery弹出一个表单的代码,
- 运行Maven的命令mvn活着建立maven项目出现错误
能否把比较全的JavaCore放上来一下。
建议升级Spring到spring 2.5.4以上看看
static String driver_2005="com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String url_2005="jdbc:sqlserver://localhost:1433;databasename=pubs";
static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
static String url = "jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs";
static String user = "sa";
static String password = null; static ComboPooledDataSource cpds = null; static {
try {
cpds = new ComboPooledDataSource();
//driver 2000
//cpds.setDriverClass(driver);
//cpds.setJdbcUrl(url);
//driver2005
cpds.setDriverClass(driver_2005);
cpds.setJdbcUrl(url_2005);
cpds.setUser(user);
cpds.setPassword(password);
} catch (Exception e) {
e.printStackTrace();
}
} //获取连接
public static Connection getConnection() {
Connection conn = null;
try {
conn = cpds.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
Connection conn = C3p0Util.getConnection();
System.out.println(conn);
}
}
at java.lang.Object.wait(long)
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAcquire(long)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(long)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection()
at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection()
at com.mchange.v2.c3p0.ComboPooledDataSource.getConnection()
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(javax.sql.DataSource)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(javax.sql.DataSource)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(java.lang.String, java.lang.Object)类似的线程很多这样的,全部在等待,没有释放连接,c3p0使用0.9.0版本