| EAA カタログ |

悲観的オフラインロック

David Rice 著

一度に 1 つのビジネス取引のみがデータにアクセスできるようにすることで、同時並行のビジネス取引間の競合を防ぎます。

詳細な説明については、P of EAA426 ページを参照してください

オフライン同時並行性は複数の要求にまたがるビジネス取引のデータを操作することに関連するため、最も簡単な方法はビジネス取引全体に対してシステムトランザクションを開くことだと思われるでしょう。ただし残念なことに、トランザクションシステムは長いトランザクションでの動作に適していないため、必ずしもうまく機能しません。そのため、複数のシステムトランザクションを使用する必要があります。この時点で、データへの同時アクセスを管理する独自のデバイスに任されています。

最初に試みるべきアプローチは、楽観的オフラインロック (416) です。ただし、そのパターンには問題があります。ビジネス取引内で複数のユーザーが同じデータにアクセスする場合、1 人は簡単にコミットできますが、その他は競合して失敗します。競合はビジネス取引の最後にしか検出されないため、被害者はトランザクションの作業をすべて行いますが、最後の最後にすべてが失敗し、時間が無駄になったことがわかります。ビジネス取引が長く続くとこのようなことが頻繁に発生した場合、そのシステムはすぐに非常に人気がなくなります。

悲観的オフラインロックは、そもそも競合を回避することで競合を防ぎます。ビジネス取引は、データを使用する前にそのデータのロックを取得するように強制されるため、ほとんどの場合、ビジネス取引を開始すると、同時実行制御によってバウンスされずに完了できる可能性が高くなります。