オンラインタスク、レコードロック解除待ち
いつもお世話になっております。
バッチタスクでデッドロックしてしまうPGを作ってしまう事があります。
それは置いといて、オンラインタスクのレコードロック解除待ちは
Magic任せで画面左下に表示される状態です。
自分でハンドリングして、メッセージ出したりする方もおられますか?
WindowsRIAはやっておりません。
オンラインタスクについてお願いします。
-
DBロックを利用するか、あるいはMagicロックを利用するか、あるいはロジックでロックを制御するかは、ケースバイケースですね。一番簡単なのは、従来通りのMagicロックですね。34年前からずっと同じ形態です。
-
ISHIJIMAさん、tandaさん レスありがとうございます。
今日はあるお客様から、入金伝票入力画面から領収書発行をしようとしたら動かないと電話がありました。
画面左下に、入金伝票レコードロック解除待ちが小さく出ていましたが、お客様は気付いておりませんでした。
誰それが編集中ですよ!と表示されていたらいいのかもな、と思い投稿しました。
ISHIJIMAさんのリソースロックは
Lock('受注番号='&Trim(Str(受注番号,'9')),0) みたいなのと
その情報を記録する為にDBにも書いている物と想像します。 -
今日私が遭遇した分は、Magicロックですね。
-
レコードロック解除待ちが実際に起きているかどうかは複数台で実験しないとわからないですよね。
大昔、他社作者行方不明販売管理の今では懐かしいSCSI HDサーバーが壊れて、当方意欲作新販売管理初リリースしたシステムがレコードロック多発で使い物にならなかった事がありました。
そのdbMAGIC V8システムはその後、改善してまだ数社残っています。 -
ありがとうございます。そうですね。
Lock関数にオプションパラメータが増えて、
そのLockに関する「備考」も記述、表示されるといいかもしれませんね。
Lockの度にDBに書き込めば、立派なログにもなりそうですね。 -
アプリの表向きの動きやエラーメッセージを見ただけでは、それがMagicロックで動作しているのか、あるいはDBロックで動作しているのかは分からないですよ。とくに、近年のバージョンのMagicはデフォルトがDBロックの設定になっていますし。
ただ、Magicロックの良いところは、遅延トランザクションで動いているプログラムでさえ、悲観的ロックを実現できるという点です。ただし、オンラインタスクのみです。RIAの遅延は楽観的ロックのみです。
サインインしてコメントを残してください。
コメント
6件のコメント