• ベストアンサー

レコードに対するオープンの管理

レコード単位でそのレコードを既にオープンしている かどうかを判断するには一般的にどのように管理すれば よいのでしょうか? 実際は、1番最初に顧客をオープンした人は更新可能とし、 既に同一の顧客をオープンしている人がいる場合はアクセス したときに、処理を読み取り専用で動作するようにしたい のです。 現在の開発環境はVS2003+SQLAnywhere9なのですが、他のDB の場合でもいいですので、一般的な手法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>実際は、1番最初に顧客をオープンした人は更新可能とし、 既に同一の顧客をオープンしている人がいる場合はアクセス したときに、処理を読み取り専用で動作するようにしたい のです。 私がタッチした業務では、こんな仕様のプログラムは目にすることはなかったのですが・・・。こういいう仕様なら、単純なところでは、mutexとかセマフォーなどを使用して、最初のプロセスだけがロックを獲得できて更新可能、それ以降のプロセスは、ロックが得られないので、読込専用でオープンするようにプログラムを作ると思います。 ただ、プログラムのトラブル等でロック解放が残ってしまう頻度とか、その対処方法を考えておかないと、障害が起こったとき、それ以降は誰も更新できなくなる可能性がありますので。

rakudan
質問者

お礼

ありがとうございます。 調べてみます。

関連するQ&A