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
Posted by headiron
,