第21回 更新レコード特性の「位置と更新項目」
前回は、遅延トランザクションにおいても Magic ロックを使用すれば正しくレコードレベルの排他制御が行えることの解説をしました。ただし、リッチクライアントのアプリケーション上では Magic ロックが使用できないことの補足も説明しました。
今回は、遅延トランザクションを使用した場合の、更新レコードの識別特性について解説します。更新レコードの識別特性を活用すれば、リッチクライアントを含めたすべての遅延トランザクションにおいて、更新の喪失を防ぐことが可能となります。
Pervasive における更新の喪失の問題点
はじめに、Pervasive の物理トランザクションを用いて、排他制御をまったく行わなかった場合に起こる問題点について見ていきます。
画面1と画面2はユーザ A さんとユーザ B さんがほぼ同時に商品ファイル更新プログラムを起動してレコードを修正しようとしている場合の例です。排他を解除するために、ロック方式は「N=なし」にしてあります。 (以降、本編に続きます。本編ご購読のお申込みはこちらです) |