XPA4.8 SQLserverでの排他制御について
XPA4.8、SQLSERVERにて排他制御の確認を取っているのですが
以前、このフォーラムで拝見したMgLock.datを使用したレコードロックを試しておりました。
EDPでは想定した通り、レコードがロックされメッセージが表示されるのですが、
ECFで実行するとレコードロックが発生せずに後書きが優先されてしまいます。
なにかECFにした際に設定しなければいけないものがあるのでしょうか?
ご教示お願い致します。
-
加藤聡さん、
1枚目の画像はフォーカスがおかしなところにあるようですが、どのレコードを修正しようとして「レコードロック」のメッセージが出ているのでしょうか?
レコードロックのメッセージが表示されたときに、カーソルがそのレコードにフォーカスされたままの状態のスクリーンショットを上げてください。
そうでないと、正しい動きなのかどうかが確認ができませんので。。。
-
加藤聡さん、
あと、もう1点ですが、APGでラインモードの別プログラムを作成して、レコードロックが正常に掛かるかどうかもチェックしてみてください。
-
加藤聡さん、
> 1枚目の画像はフォーカスがおかしなところにあるようですが、どのレコードを修正しようとして
>「レコードロック」のメッセージが出ているのでしょうか?失礼、この画像はテーブルが上下2段に分かれていたんですね。上記の質問は無視してください。
APGでラインモードのプログラムを作ったときの動作だけ確認してみてください。
-
tanda様

以上の通り
ラインモードではロックがかかります。
同様のことをスクリーンモードでやろうとしても行えないのはなぜでしょうか?
-
tanda様
ちなみにSQLserverのバージョンは何を使用されていますでしょうか?
-
加藤聡さん、
私のところでは全然問題なく動いていますよ。使用しているSQL Serverは2019です。
テストプログラムですが、階層構造のものではなく、データリポジトリから作っただけの最も単純な構造のAPGプログラムで試されることをお勧めします。階層構造が悪さをしている可能性もありますので。
-
加藤聡さん、
ちなみに、私のところでは今回、下記の4つのパターンを構築して排他制御のテストを行いました。
すべてのパターンで、正常にレコードロックが掛かっています。パターン1:
2台のPCのそれぞれにMagicクライアント実行版をインストールし、それぞれから同時に入力操作を行う。パターン2:
2台のPCにサーバ環境共有型のクライアント環境を作り、それぞれから同時に入力操作を行う。パターン3:
1台のPCからMagicクライアント実行版を2セッション起動し、それぞれから同時に入力操作を行う。パターン4:
1台のPCからサーバ共有型のクライアント環境で2セッションを起動し、それぞれから同時に入力操作を行う。加藤聡さんのところでは、上記のどのパターンでテストされていますか?
-
加藤聡さん、
ちなみに、排他制御の動作検証は上記のパターン3とパターン4のように、1台のパソコンでも一応確認することはできるのですが、納品に際しての最終確認は、やはり2台以上のパソコン実機でテストされることをお勧めします。
サインインしてコメントを残してください。
コメント
38件のコメント