MyBatisCursorItemReaderについてTerasolunaバッチのガイドには以下のようにあります。
MyBatisCursorItemReaderはselectステートメントを発行する際に、ステップ処理の一部として生成された他のトランザクション(チャンクモデルにおけるチャンクごとのトランザクション)には参加しない。 これは、MyBatisCursorItemReaderが異なるコネクションを利用しているためである。そのため、適切に排他制御を行っていない場合、デッドロックが発生する可能性があるため留意すること。
しかし、実際にはMyBatisCursorItemReaderのカーソルオープン中(Selectによる共有ロック中、或いはSelect for updateによる更新ロック中)でもWriterによる当該レコードの更新が可能です。
①Readerによるロックが最初から取れていないのか
②Readerによるロックが既に開放されているのか
③ReaderとWriterのトランザクションが同一なのか
④他の理由なのか
どなたか知見がある方がいらっしゃいましたらよろしくお願いいたします。
あなたの回答
tips
プレビュー