AKAI TSUKI

System development or Technical something

別スレッドからのアクセスはできない。。。

トランザクション試してみました。
別のスレッドから横槍いれられるのか!?

で、結局だめみたいです。
トランザクションの状態が別スレッドからだとアクセスできない。

ってかトランザクションが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