m.ejs.j2c.PoolManager$SubjectHashCode.run(PoolManager.java:4948)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:63)
at com.ibm.ejs.j2c.PoolManagerputeHashCode(PoolManager.java:4623)
at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2190)
at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1063)
at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:700)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:668)
at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:635)
从日志看,线程挂起在获取数据源连接的地方。问题可能是由于集群环境下获取数据源出现死锁,从而导致资源无法释放,最终线程池被耗尽,线程挂起。 最后只能重启WAS服务。
这个问题的解决办法是:在数据源里面增加一个参数 useRRASetEquals 设置为 true
添加路径:
资源 -> JDBC -> XXX数据源->定制属性 -> 新建
增加参数: useRRASetEquals ,值为 true , 类型为 java.lang.Boolean
加上这个参数之后,再做测试,则上述问题解决。 集群环境下能够支撑200并发提交工作流请求,持续运行2天。
这个参数应该是WAS7新加的,因为加这个参数有版本要求,必须是 7.0.0.13 之后的版本,否则会报错。
3、附件上传数据流量测试
这个模块目前正在测试,如有问题再说。