トランザクション試してみました。
別のスレッドから横槍いれられるのか!?
で、結局だめみたいです。
トランザクションの状態が別スレッドからだとアクセスできない。
ってかトランザクションがThreadLocalで管理されてる。。。
System start Status.STATUS_ACTIVE : 0 Status.STATUS_MARKED_ROLLBACK : 1 Status.STATUS_PREPARED : 2 Status.STATUS_COMMITTED : 3 Status.STATUS_ROLLEDBACK : 4 Status.STATUS_UNKNOWN : 5 Status.STATUS_NO_TRANSACTION : 6 Status.STATUS_PREPARING : 7 Status.STATUS_COMMITTING : 8 Status.STATUS_ROLLING_BACK : 9 DEBUG 2011-03-11 01:39:09,125 [main] S2Containerを作成します。path=jp/person/akai/tsuki/samplechecker/dicon/alldao.dicon DEBUG 2011-03-11 01:39:09,228 [main] S2Containerを作成します。path=dao.dicon DEBUG 2011-03-11 01:39:09,242 [main] S2Containerを作成します。path=j2ee.dicon DEBUG 2011-03-11 01:39:09,251 [main] S2Containerを作成します。path=jta.dicon DEBUG 2011-03-11 01:39:09,386 [main] S2Containerを作成しました。path=jta.dicon DEBUG 2011-03-11 01:39:09,386 [main] S2Containerを作成します。path=jdbc.dicon DEBUG 2011-03-11 01:39:09,467 [main] S2Containerを作成します。path=jdbc-extension.dicon DEBUG 2011-03-11 01:39:09,476 [main] S2Containerを作成します。path=convention.dicon DEBUG 2011-03-11 01:39:09,531 [main] S2Containerを作成しました。path=convention.dicon DEBUG 2011-03-11 01:39:09,540 [main] S2Containerを作成しました。path=jdbc-extension.dicon DEBUG 2011-03-11 01:39:09,585 [main] S2Containerを作成しました。path=jdbc.dicon DEBUG 2011-03-11 01:39:09,595 [main] S2Containerを作成しました。path=j2ee.dicon DEBUG 2011-03-11 01:39:09,648 [main] S2Containerを作成しました。path=dao.dicon DEBUG 2011-03-11 01:39:09,648 [main] S2Containerを作成します。path=aop.dicon DEBUG 2011-03-11 01:39:09,685 [main] S2Containerを作成しました。path=aop.dicon DEBUG 2011-03-11 01:39:09,698 [main] S2Containerを作成しました。path=jp/person/akai/tsuki/samplechecker/dicon/alldao.dicon Status ( in Main )>> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca DEBUG 2011-03-11 01:39:10,007 [main] トランザクションを開始しました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca Status( in TimeoutThread ) >> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca DEBUG 2011-03-11 01:39:10,010 [main] BEGIN jp.person.akai.tsuki.samplechecker.dao.SampleInfoDao#update([/checkNumber=29189/sendTime=100/recvTime=null/resendTime=500/resendCounter=15]) DEBUG 2011-03-11 01:39:10,208 [main] 物理的なコネクションを取得しました DEBUG 2011-03-11 01:39:10,211 [main] 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,232 [main] 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,233 [main] 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,289 [main] 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,356 [main] 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,356 [main] 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,362 [main] 論理的なコネクションを取得しました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,365 [main] UPDATE "SAMPLE_INFO" SET "RESEND_TIME" = 500, "SEND_TIME" = 100, "RECV_TIME" = null, "RESEND_COUNTER" = 15 WHERE "CHECK_NUMBER" = '29189' DEBUG 2011-03-11 01:39:10,397 [main] 論理的なコネクションを閉じました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] DEBUG 2011-03-11 01:39:10,398 [main] END jp.person.akai.tsuki.samplechecker.dao.SampleInfoDao#update([/checkNumber=29189/sendTime=100/recvTime=null/resendTime=500/resendCounter=15]) : 1 update実行 Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca Status( in TimeoutThread ) >> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca TRAN STATUS:6 rollbackします。 Status( in TimeoutThread ) >> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca rollbackしました。 Status( in TimeoutThread ) >> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca 10秒 Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca 20秒 Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca 30秒 Status ( in Main )>> 0 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca DEBUG 2011-03-11 01:39:40,413 [main] トランザクションをコミットしました。tx=[FormatId=4360, GlobalId=1299775150006/0, BranchId=] commit実行 Status ( in Main )>> 6 : org.seasar.extension.jta.UserTransactionImpl@1bbf1ca System stop