OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

排他制御の方法

  • 暇なときにでも
  • 質問No.188026
  • 閲覧数736
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 55% (11/20)

現在、PWS+ASP+ACCESSを使用し開発を行っていますが排他制御で悩んでいます。
ASPは、ステートレスなセッションでの制御しか出来ないため、ページを表示後のデータの変更はスタンドアロンでの更新のような形になってしまうと思います。

以下のような方法で行っている実例を見たことがありますが、少なからず問題も抱えていると思います。
・レコード毎に排他フラグを保持する ~ 処理がアベンドした場合にフラグが残る(一定時間後に解除という方法もありますが)
・レコード毎に更新時間を持ち、読込時の更新時間と更新時の更新時間とを比較し更新されていない時だけ更新をかける ~ 後に更新をかけようとした変更が無駄になる


上記の方法以外で、排他制御を実現させる良い方法はないのでしょうか。他の方法で実現しているときは、その方法を教えて頂けませんでしょうか。
※PWS→IIS、ACCESS→SQLServerに変更する可能性はあります。
(セッションオブジェクト・アプリケーションオブジェクト等を使用しての実現方法など)
宜しくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 65% (242/372)

無難なのはApplication変数を利用した方法かなぁ~と 手抜きなソースですけど On Error Resume Next Application.Lock Application("lock") = True '--- データベースの更新処理など Application.Unlock If Err.Number <> 0 Then & ...続きを読む
無難なのはApplication変数を利用した方法かなぁ~と
手抜きなソースですけど

On Error Resume Next
Application.Lock
Application("lock") = True
'--- データベースの更新処理など
Application.Unlock

If Err.Number <> 0 Then
'--- エラー処理(終了処理など)
End If
On Error Goto 0

こんなのじゃ駄目でしょうか?
参考までに
  • 回答No.2
レベル10

ベストアンサー率 42% (79/186)

排他制御なのですが、これは、データベースのデータ整合性をとるための排他制御と考えてよいのでしょうか? もしそうであるなら、排他制御自身をデータベースに任せてはどうでしょうか?もちろんデータベース自身の排他制御にもいくつかの問題点はありますが・・・ たとえば、Webに表示させたデータに対して、更新を行うときに、表示用データを取り出したときに取り出したデータに対し、排他的読み取りをするのであれば、同時 ...続きを読む
排他制御なのですが、これは、データベースのデータ整合性をとるための排他制御と考えてよいのでしょうか?
もしそうであるなら、排他制御自身をデータベースに任せてはどうでしょうか?もちろんデータベース自身の排他制御にもいくつかの問題点はありますが・・・

たとえば、Webに表示させたデータに対して、更新を行うときに、表示用データを取り出したときに取り出したデータに対し、排他的読み取りをするのであれば、同時ユーザー数の問題で、非常にレスポンスの遅いものになってしまいます。

それでよければ、セッションオブジェクトにロックをかけたレコードセットを格納してはどうでしょうか?もちろん、ロックをかけたレコードセットの開放も忘れないようにしなければなりません。

具体的には、
Set Session("[適当な名前]")=objRecordset
とすることで、ロックをかけたレコードセットをステートフルにあつかうことができます。
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ