オンラインとバッチタスク
オンラインとバッチタスクでは、トランザクション処理に対応した4つのモード設定があります。
D=遅延 データ操作(DM)ステートメントが一時的にキャッシュに保存され、すぐには物理データベースに送信されません。他のユーザはそのデータにアクセスすることはできません。このトランザクションが終了した時点で、トランザクション間に記録された様々な処理コマンドによって、データベースが更新されます。データベースの更新は、[更新レコードの識別]特性の設定内容に従って実行されます。キャッシュに蓄積されたすべてのDMステートメントはすぐに実行され、トランザクションはクローズされます。修正内容がコミットされる前に、選択されたデータが修正された場合、エラーメッセージが表示され、更新内容が失われます。この場合、更新処理をやり直すしか方法はありません。更新されたデータが遅延トランザクションモード内にある場合、失われる可能性があることに注意してください。
N=ネスト遅延 新規に遅延トランザクションがオープンされ、タスク終了時にコミットされます。
W=親と同じ タスクは親タスクのトランザクション内で実行されます。親が物理トランザクションであれば、子タスクも物理になります。
P=物理 DMステートメントは、[レコード後]で発行されます。DMステートメント内の処理コマンドは、すべて物理データベースのロールバックセグメント内に記録されます。他のユーザは、分離レベルの定義内容に従って更新データの内容を参照することができます。この結果として、更新されたデータを失うことが少なくなる可能性があります。ODBCとキャッシュのDBMSシステムでは、物理ロックがなく、すべてのトランザクションはMagicによって実装されることに注意してください。
ブラウザタスク
ブラウザタスクでは、以下のモードが選択できます。
D=遅延 (上記を参照)
N=ネスト遅延 (上記を参照)
W=親と同じ タスクは親タスクのトランザクション内で実行されます。
O=なし トランザクションはオープンされません。メニュー画面のようにテーブルを使用しないタスクや、読込モードでテーブルをオープンする場合など、トランザクションをオープンする必要がない場合は、この設定にしてください。
リッチクライアントタスク
リッチクライアントタスクでは、以下のモードが選択できます。
W=有効な遅延トランザクション内 デフォルト。このモードは、上記の遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、([トランザクション開始]特性に基づいて)以下のようにトランザクションが開始されます。
トランザクションが開始されている場合は、タスクはそのトランザクションの一部になります。
トランザクションが開始されていない場合、新規の遅延トランザクションを開始します。
N=新規の遅延トランザクション このモードは、上記のネスト遅延トランザクションモードと同じような動作になります。このモードで定義されたタスクを実行すると、([トランザクション開始]特性に基づいて)以下のようにトランザクションが開始されます。
新しい遅延トランザクションが開始されます。
(コールトランザクションにかかわらず、)トランザクションが終了した後に、このトランザクションによるどのような更新内容もコミットされます。
トランザクションがまだオープン中の場合、コールトランザクションを終了させることができます。コールトランザクションを終了させても、このトランザクションには影響しません。
新規のトランザクションは、独自のトランザクションキャッシュを持っています。トランザクションキャッシュはトランザクション間で共有することができず、一方のトランザクション内での更新内容は他のトランザクションで参照することはできません。
O=なし トランザクションはオープンされません。
参考: |
サブフォームやフレーム上で実行しているタスクは、上記のリッチクライアントタスクでのトランザクションモードのどれかを設定することができます。 [出力先]特性を設定した[コール]処理コマンドを使用した場合、サブフォームやフレーム内で実行しているタスクは終了します。
|
詳細は、「トランザクション処理」を参照してください。