nested exception is com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: Connection is closed。

使用场景
WAS6.1.0.21
数据库为Sybase15
数据源为WAS的jtds的sybase,数据源最大数50
使用spring2.5.6和hibernate3.3.1
是用spring的jdbctemplate调用Sybase的存储过程。
用loadrunner进行压力测试
报错如下
ERROR: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; DSRA9110E: 关闭 Connection。; nested exception is com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; DSRA9110E: 关闭 Connection。; nested exception is com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:349)

Caused by: com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.runtimeXIfNotClosed(WSJdbcConnection.java:2657)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareCall(WSJdbcConnection.java:2022)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareCall(WSJdbcConnection.java:1914)
at sun.reflect.GeneratedMethodAccessor247.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:74)
at $Proxy41.prepareCall(Unknown Source)
at sun.reflect.GeneratedMethodAccessor246.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.invoke(JdbcTemplate.java:1292)
at $Proxy42.prepareCall(Unknown Source)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:342)

解决办法,由于是多线程并发访问,在调用存储过程的方法上加上synchronized,避免多线程并发。

文章的脚注信息由WordPress的wp-posturl插件自动生成

此条目发表在javaee, websphere分类目录,贴了, , , , , , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论链接可以 移除 nofollow.