- ベストアンサー
レコードに対するオープンの管理
レコード単位でそのレコードを既にオープンしている かどうかを判断するには一般的にどのように管理すれば よいのでしょうか? 実際は、1番最初に顧客をオープンした人は更新可能とし、 既に同一の顧客をオープンしている人がいる場合はアクセス したときに、処理を読み取り専用で動作するようにしたい のです。 現在の開発環境はVS2003+SQLAnywhere9なのですが、他のDB の場合でもいいですので、一般的な手法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>>実際は、1番最初に顧客をオープンした人は更新可能とし、 既に同一の顧客をオープンしている人がいる場合はアクセス したときに、処理を読み取り専用で動作するようにしたい のです。 私がタッチした業務では、こんな仕様のプログラムは目にすることはなかったのですが・・・。こういいう仕様なら、単純なところでは、mutexとかセマフォーなどを使用して、最初のプロセスだけがロックを獲得できて更新可能、それ以降のプロセスは、ロックが得られないので、読込専用でオープンするようにプログラムを作ると思います。 ただ、プログラムのトラブル等でロック解放が残ってしまう頻度とか、その対処方法を考えておかないと、障害が起こったとき、それ以降は誰も更新できなくなる可能性がありますので。
お礼
ありがとうございます。 調べてみます。