Apahce 의 timeout 숫자를 increase 했던 client 쪽에서 이번에는 에러가 발생한다고 연락이 왔다.
로그를 Review 해 보니 timeout인것 같은데, 정확히 어디서 나왔는지를 모르겠다는 것이다.
02/28/2014 13:37:37,393 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_18] - TransactionReaper::check timeout for TX a830b16:916:5310bf91:c in state RUN
02/28/2014 13:37:37,394 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_58] - Abort of action id a830b16:916:5310bf91:c invoked while multiple threads active within it.
02/28/2014 13:37:37,394 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.CheckedAction_2] - CheckedAction::check - atomic action a830b16:916:5310bf91:c aborting with 1 threads active!
02/28/2014 13:37:37,804 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TransactionReaper_7] - TransactionReaper::doCancellations worker Thread[Thread-7,5,jboss] successfully canceled TX a830b16:916:5310bf91:c
02/28/2014 13:37:37,824 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
02/28/2014 13:37:37,824 ERROR [JDBCExceptionReporter] Transaction TransactionImple < ac, BasicAction: a830b16:916:5310bf91:c status: ActionStatus.ABORTED > cannot proceed STATUS_ROLLEDBACK; - nested throwable: (javax.transaction.RollbackException: Transaction TransactionImple < ac, BasicAction: a830b16:916:5310bf91:c status: ActionStatus.ABORTED > cannot proceed STATUS_ROLLEDBACK)
02/28/2014 13:37:37,824 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
02/28/2014 13:37:37,824 ERROR [JDBCExceptionReporter] Transaction TransactionImple < ac, BasicAction: a830b16:916:5310bf91:c status: ActionStatus.ABORTED > cannot proceed STATUS_ROLLEDBACK; - nested throwable: (javax.transaction.RollbackException: Transaction TransactionImple < ac, BasicAction: a830b16:916:5310bf91:c status: ActionStatus.ABORTED > cannot proceed STATUS_ROLLEDBACK)
02/28/2014 13:37:38,548 ERROR [STDERR] org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode
...
결국 googling을 한 결과 jboss db pooling의 경우 arjuna 모듈을 사용하고 있고, 해당 모듈의 timeout 설정은 deploy/transaction-jboss-beans.xml에서 설정하게 되어 있다.
참조 : https://community.jboss.org/message/95336#95336
일단 기본 값은 10분 인데 더 늘려서, 실행이 되는 것 까지는 확인하였는데..
문제는 transaction이 더 길어 지면 결국은 또 timeout은 발생할 수 있다는 거..
결국은 program이나 시스템 structure를 바꿔야 한다는 얘기..
이번 case는 client측의 사용 패턴을 바꿔야 할 듯 한데..
Tech Support에서 어떻게 유도해 나갈지는 모르겠다..
'개발자세상 > 자바세상' 카테고리의 다른 글
java.lang.OutOfMemoryError: unable to create new native thread (0) | 2015.08.15 |
---|---|
Control character in XML (0) | 2014.05.28 |
ResultSet FetchSize (0) | 2014.02.25 |
Timeout increase for axis soap client (0) | 2014.02.25 |
자바 DEBUGGING (0) | 2013.11.20 |