この特性は、以下のいずれかを設定できます。
オプション |
内容 |
オンライン |
バッチ |
リッチクライアント |
T=タスク前の前 |
トランザクションは[タスク前]の前にオープンされ、[タスク前]の後でクローズされます。 このオプションが選択された場合、以下のように動作します。
タスクレベルのトランザクションの使用を参照してください。 |
✓ |
✓ |
✓ |
G=グループ |
トランザクションは[グループ前]の前にオープンさます。グループトランザクションのトリガとなる項目を指定する必要があります。この項目は、タスクの「グループレベル」のロジックユニットが定義されている必要があります。 大きなテーブルの処理を、レコードグループで分割して処理する場合にこのトランザクションを使用することができます。この方法を使用してトランザクションの範囲を減らすことで、トランザクション処理の利点が維持されます。 |
|
✓ |
|
L=レコードロック時 |
トランザクションはレコードがロックされる前にオープンされ、レコードが更新された後にクローズされます。 |
✓ |
✓ |
|
P=レコード前の前 |
トランザクションは[レコード前]の前にオープンされ、レコードが更新された後にクローズされます。 このオプションが選択された場合、以下のように動作します。
トランザクションはユーザとの対話状態でオープンされているため、トランザクションはロックを伴い、同じレコードやテーブルにアクセスしようとしている他のユーザに対して問題を発生させる可能性があります。このため、マルチユーザ環境では、通常、オンラインタスクの前処理レベルでのトランザクションを定義するべきでありません。 |
✓ |
✓ |
✓ |
S=レコード後の前 |
トランザクションは[レコード後]の前にオープンされ、レコードが更新された後にクローズされます。 このオプションが選択された場合、以下のように動作します。
サブタスクの呼び出し処理を含むすべての[レコード後]での処理コマンドはトランザクション内に含められています。 トランザクションが失敗した場合、[エラー発生時]特性の設定にしたがって、エンジンの実行処理は復旧または中断します。この設定の動作の代わりに、タスクに[エラー]ロジックユニットを定義することで対応させることもできます。 |
✓ |
✓ |
|
U=レコード更新前 |
トランザクションはデータベースに対して物理更新処理が送られる前にオープンさます。 このオプションが選択された場合、以下のように動作します。
このオプションを選択すると、トランザクションはレコードを更新する直前にオープンされます。この場合のみ、[更新レコードの識別]特性の設定内容に従って、レコードをロックする要求を送信します。 このオプションの有利な点は、トランザクション範囲が最小(並行性が最大)になることです。しかし、ロックが最後の瞬間に実行されるため、別のユーザがデータを更新することも考えられます。この場合、更新されたデータが失われる可能性があります。 「更新」と定義されたレコードレベルのトランザクションは、[レコード後]の処理コマンドを含まないことに注意してください。これによってエンドユーザ間での並行処理での潜在的な問題を減らすため、「更新」と定義されたトランザクションは、マルチユーザ処理のアプリケーションで最も推薦されます。
|
✓ |
✓ |
|
N=なし |
トランザクションはオープンされません。トランザクションをオープンしたタスクからこのタスクが起動された場合、そのトランザクションを使用しているように動作します。 |
✓ | ✓ | ✓ |
注意: |
[トランザクションモード]特性が「O=なし」の場合、[トランザクション開始]特性は無効になります。 メインソースが変更された場合、「トランザクション開始」特性は、SQL DBMSにおけるロックとトランザクションに関する一般的な制限規則(ロックに先立って、必ずトランザクションが開始されていなければならない)に適合するように、以下のように自動的に変更されます。
[トランザクションモード]特性が「P=物理」の場合、[トランザクション開始]特性が「N=なし」または「L=レコードロック時」に設定すると[キャンセル]イベントが発行されても変数項目の値が初期化されません。 |