[Seasar-user:3133] S2Tx 機能を使用した場合のロックについて

?橋透友 yuk-takahashi
2006年 2月 2日 (木) 15:40:53 JST


高橋と申します。
はじめて投稿させていただきます。

S2Tx機能を使用した場合のテーブルの行ロックで下記現象が発生しています。
この現象についての解決方法をご存知の方がいらっしゃいましたら、
ご教授願います。


-----------------------------------------------------------------
○環境
・JDK:1.4.2_03
・S2Container:2.2.10
・S2Dao:1.0.27
・DB:Microsoft SQL Server


○現象
『トランザクション属性にj2ee.requiredTxをAspectしたクラスから、
テーブルの行ロックをかけようとしたところ、
行ロックではなく、テーブルロックになる。』


テーブルの行ロックをかけるため下記SQLを実行し、
「SQL Server Enterprise Manager」からロック状況を確認したところ、
テーブル内の全レコードに対して更新ロックがかかります。

SELECT * FROM テーブル名 with(UPDLOCK,ROWLOCK)
WHERE aaaa = 'aa';
※aaaa:プライマリキー

S2Tx機能をはずした状態
(BEGIN TRANSACTION、COMMIT TRANSACTIONを使用した場合)で同一SQLを実行した
ところ、
対象行にのみ更新ロックがかかっていることことから、
S2Tx機能に原因があるのではと考えています。

-----------------------------------------------------------------

以上、よろしくお願い致します。






Seasar-user メーリングリストの案内