【Magic xpa 連載最新号のご案内】 2023年11月6日
Magic xpa 開発者ユーザの皆様へ
【1】 Magic xpa 連載のご案内
------------------------------------------------
本日、Magic xpa の連載、「Magic xpa で作るイベントドリブン型プログラム」の第188回目「物理トランザクションと遅延トランザクションの違い」を連載コーナーにアップいたしました。
物理トランザクションと遅延トランザクションの違いを一言でいえば、物理トランザクションはDBが持つ伝統的なトランザクションそのものであり、遅延トランザクションはこれを補うものとしてMagic社が独自に開発した、先進的なトランザクションであるという点です。
また、両者の機能の違いを排他制御の面から見ると、物理トランザクションはリアルタイムの悲観的ロックを実現するものであり、これに対して遅延トランザクションは、並行実行を可能せしめながら整合性維持に重点を置いた楽観的ロックを実現するものとなります。
したがって、物理トランザクションは一般的にローカルの小規模なネットワーク(同一敷地内程度のネットワーク)を対象としたものであり、遅延トランザクションは地方の事業所間を結ぶ中規模なネットワークから始まって、地球レベルの大規模なネットワークまでをもカバーするものとなります。
ちなみに、いずれのトランザクションを用いた場合でも、旧来のワークファイルやテンポラリファイルなどの概念を置き換えるものとしての導入が可能であり、遅延トランザクションに至ってはネスト遅延が可能であるという点で、より一層、細やかなプログラム作りを実現することができます。
本稿ではこれらの違いを皆さんとご一緒に体験しながら、システムの用途や規模に合わせたアプリケーション作りを目指してまいりたいと思います。ここでは併せて、遅延トランザクションを用いた場合の「更新レコードの識別」特性についても学びます。
なお、本記事の検証で使用する環境は、2台のWindows 10 Home + Magic xpa Studio 4.8.1(体験版でも可)+ Microsoft SQL Server Express(無料版)です。
画面1は、オンラインタスクのタスク特性において、どちらのトランザクションを利用するかの選択画面になります。ここで物理トランザクションを選んだ場合はトランザクションをDBに一任するものとなり、ここで遅延トランザクションを選んだ場合は、Magic独自の遅延トランザクションが機能するものとなります。
ただし、ここで遅延トランザクションを選択した場合でも、DBへの書き込み時には物理トランザクションが連動して実行されるようになります。つまり、物理トランザクションを経由しないデータの書き込みは、SQLではあり得ないからです。
※リッチクライアントでは物理トランザクションの選択はできません。また、メニュープログラムや照会プログラム等で、データの書き込みが不要なタスクにおいては、トランザクション開始を「なし」の設定にするのが合理的となります。
画面1 トランザクションモードの選択
※このあと、本号における排他制御を検証するには本連載の第186回「SQL Server に複数の PC から接続する(2023年8月31日)」の環境設定が必要です。あらかじめ、SQL Serverへの複数PC接続の設定を行なってください(後略)。
目次
1. 用途と規模に合わせたトランザクション設定
2. 2台のパソコンで排他制御の検証を行う
3. APGプログラムで基本的な動作を確認
4. 2台のパソコンで同じプログラムを実行
5. パソコンAでカラムデータを編集
6. パソコンBでも同じカラムデータを編集
7. Aさんが編集を終えてレコードを移動
8. Bさんの画面はロックが解除される
9. 物理トランザクションによる悲観的ロック
10. 遅延トランザクションによる楽観的ロック
11. 2台のパソコンでそれぞれを実行
12. レコードロック解除待ちは表示されない
13. 楽観的ロックによる画面の自動更新
14. 楽観的ロックの意味するところ
15. 更新レコードの識別特性オプション
16. デフォルト設定の動作
17. 更新レコードの識別設定の場所
18. データソース特性の設定
19. 3つのオプションの意味を理解
次回は、「プルダウンメニューとツールバーボタンの編集」をお送りします。
皆様のお越しをお待ちいたしております。
サインインしてコメントを残してください。
コメント
0件のコメント