Forguncy 8 オンラインヘルプ
Forguncyの使い方 / テーブルの操作 / 内部データベースの同時実行制御
このトピックで
    内部データベースの同時実行制御
    このトピックで

    同時実行制御とは、複数のユーザーが同時に更新を実行しているときにデータベースの整合性を保つことを意味します。たとえば、データの一貫性が失われるダーティライトや、同じ問い合わせなのに同じ結果になると保証されないファントムリードなど、このような問題を発生させないために同時実行制御が行われます。

    内部データベースを使用している場合、特別な設定をしなくとも楽観的同時実行制御が行われます。「楽観的同時実行制御」は、 データを更新する直前に他のユーザーによって更新されていないかどうかをチェックし、更新されていない場合にデータをロックし更新します。更新されていた場合は、更新処理をキャンセルします。

    この同時実行制御が行われるのは以下の場合のみとなり、それ以外の場合には同時実行制御は行われません。

    同時実行制御の動作

    同時実行制御が働いた場合、次のような警告メッセージが表示されます。

    たとえば、次の図に示すように、ユーザーAとユーザーBの両方が商品一覧ページを表示します。

    ユーザーAとユーザーBは、両者とも商品コード「NWTB-1」を編集用のポップアップウィンドウで開き、ユーザー1の変更が完了した後のタイミングで、ユーザー2が「変更」ボタンをクリックします。

    この場合、ユーザーBの画面には、データベースの更新に失敗したことを示すメッセージがダイアログウィンドウによって表示されます。