50,549
社区成员
发帖
与我相关
我的任务
分享
...
final CountDownLatch countDownLatch = new CountDownLatch(
moduleTableList.size());
for (final ModuleTable moduleTable : moduleTableList) {
Thread t = new Thread(moduleTable.getTableName()) {
@Override
public void run() {
TransactionStatus transactionStatus = null;
try {
transactionStatus = beginTransaction();
...//更新数据
} catch (Throwable t) {
orgChangeInfo.setError(true);
...
} finally {
countDownLatch.countDown();
try {
countDownLatch.await();
} catch (InterruptedException e) {
logger.error("InterruptedException", e);
}
if (transactionStatus != null) {
if (orgChangeInfo.isError()) {
jtaTransactionManager
.rollback(transactionStatus);
} else {
jtaTransactionManager
.commit(transactionStatus);
}
}
}
}
};
t.start();
}
...
名称: TEST
状态:WAITING 在 java.util.concurrent.CountDownLatch$Sync@18fee1a 上
阻塞总数:3 等待总数: 1
堆栈追踪:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(Unknown Source)
java.util.concurrent.CountDownLatch.await(Unknown Source)
com.tianque.plugin.orgchange.service.OrgChangeHandlerServiceImpl$1.run(OrgChangeHandlerServiceImpl.java:280)
名称: TESTTABLE
状态: RUNNABLE
阻塞总数:5 等待总数: 0
堆栈追踪:
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(Unknown Source)
oracle.net.ns.Packet.receive(Unknown Source)
oracle.net.ns.DataPacket.receive(Unknown Source)
oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.net.ns.NetInputStream.read(Unknown Source)
oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1104)
oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1075)
oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:480)
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:966)
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3445)
- 已锁定 oracle.jdbc.driver.T4CPreparedStatement@14c7b84
- 已锁定 oracle.jdbc.driver.T4CConnection@9fd14a
com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:989)
com.ibatis.sqlmap.engine.execution.DefaultSqlExecutor.executeUpdate(DefaultSqlExecutor.java:77)
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216)
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94)
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:468)
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:413)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:411)
com.tianque.plugin.orgchange.dao.CommonHandlerDAO$Impl.updateData(Unknown Source)
com.tianque.plugin.orgchange.handler.AbstractOrgChangeHandler.execute(AbstractOrgChangeHandler.java:123)
com.tianque.plugin.orgchange.handler.AbstractOrgChangeHandler.transfer(AbstractOrgChangeHandler.java:64)
com.tianque.plugin.orgchange.service.OrgChangeHandlerServiceImpl.moduleChange(OrgChangeHandlerServiceImpl.java:342)
com.tianque.plugin.orgchange.service.OrgChangeHandlerServiceImpl.access$3(OrgChangeHandlerServiceImpl.java:307)
com.tianque.plugin.orgchange.service.OrgChangeHandlerServiceImpl$1.run(OrgChangeHandlerServiceImpl.java:272)