トランザクション開始

この特性は、以下のいずれかを設定できます。

オプション

内容

オンライン

バッチ

ブラウザ

リッチクライアント

T=タスク前の前

トランザクションは[タスク前]の前にオープンされ、[タスク前]の後でクローズされます。

このオプションが選択された場合、以下のように動作します。

  • タスク起動前にトランザクションをオープンします。

  • データファイルの更新後にのみトランザクションがコミットされます(これは[タスク後]が実行された後で処理されます)。

  • サブタスクを含む、オープンとコミットの間のすべての処理コマンドをがトランザクション範囲になります。

タスクレベルのトランザクションの使用を参照してください。

a

a

a

a

G=グループ

トランザクションは[グループ前]の前にオープンさます。グループトランザクションのトリガとなる項目を指定する必要があります。この項目は、タスクの「グループレベル」のロジックユニットが定義されている必要があります。

大きなテーブルの処理を、レコードグループで分割して処理する場合にこのトランザクションを使用することができます。この方法を使用してトランザクションの範囲を減らすことで、トランザクション処理の利点が維持されます。

 

a

 

 

L=レコードロック時

トランザクションはレコードがロックされる前にオープンされ、レコードが更新された後にクローズされます。

a

a

a

 

P=レコード前の前

トランザクションは[レコード前]の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • レコードをフェッチする前に、トランザクションはオープンされます。

  • [レコード後]の実行に続いていてデータファイルを更新した後でのみ、トランザクションはコミットされます。

  • サブタスクを含め、オープンとコミットの間のすべての処理コマンドがトランザクション範囲内として含まれます。

トランザクションはユーザとの対話状態でオープンされているため、トランザクションはロックを伴い、同じレコードやテーブルにアクセスしようとしている他のユーザに対して問題を発生させる可能性があります。このため、マルチユーザー環境では、通常、オンラインタスクの前処理レベルでのトランザクションを定義するべきでありません。

a

a

a

a

S=レコード後の前

トランザクションは[レコード後]の前にオープンされ、レコードが更新された後にクローズされます。

このオプションが選択された場合、以下のように動作します。

  • [レコード後]を実行する前に、トランザクションがオープンされます。

  • [レコード後]が実行された後でデータビューが更新された後でのみトランザクションがコミットされます。

サブタスクの呼び出し処理を含むすべての[レコード後]での処理コマンドはトランザクション内に含められています。

トランザクションが失敗した場合、[エラー発生時]特性の設定にしたがって、エンジンの実行処理は復旧または中断します。この設定の動作の代わりに、タスクに[エラー]ロジックユニットを定義することで対応させることもできます。

a

a

a

 

U=レコード更新前

トランザクションはデータベースに対して物理更新処理が送られる前にオープンさます。

このオプションが選択された場合、以下のように動作します。

  • トランザクションは、データファイルの更新処理の直前で[レコード後]の実行後にオープンされます。

  • データファイルの更新が実行された後でのみ、トランザクションはコミットされます。

このオプションを選択すると、トランザクションはレコードを更新する直前にオープンされます。この場合のみ、[更新レコードの識別]特性の設定内容に従って、レコードをロックする要求を送信します。

このオプションの有利な点は、トランザクション範囲が最小(並行性が最大)になることです。しかし、ロックが最後の瞬間に実行されるため、別のユーザがデータを更新することも考えられます。この場合、更新されたデータが失われる可能性があります。

「更新」と定義されたレコードレベルのトランザクションは、[レコード後]の処理コマンドを含まないことに注意してください。これによってエンドユーザ間での並行処理での潜在的な問題を減らすため、「更新」と定義されたトランザクションは、マルチユーザ処理のアプリケーションで最も推薦されます。

 

a

a

a

 

N=なし

トランザクションはオープンされません。トランザクションをオープンしたタスクからこのタスクが起動された場合、そのトランザクションを使用しているように動作します。

a

a

a

a

 

注意:

[トランザクションモード]が「O=なし」の場合、[トランザクション開始]オプションは無効になります。

メインソースが変更された場合、「トランザクション開始」特性は、SQL DBMSにおけるロックとトランザクションに関する一般的な制限規則(ロックに先立って、必ずトランザクションが開始されていなければならない)に適合するように、以下のように自動的に変更されます。

  1. 「トランザクションモード」、「トランザクション開始」、「ロック方式」、「タスクタイプ」などの特性をチェックします。

  2. もし設定が上記制限規則に適合していなければ、この制限規則を満たし、かつトランザクションが最小になるような設定に「トランザクション開始」特性が設定されます。

  3. もし現在の設定で制限規則をすでに満たしている場合には、設定は変更されません。

関連トピック: