データベースと対話するメッセージ・フローを作成する場合は、現行ノードの処理が完了するときに更新をコミットするのか、メッセージ・フローの現在の呼び出しが終了するときに更新をコミットするのかを選択できます。
ノードごとに、「トランザクション」プロパティーに適切なオプションを選択し、いつデータベース更新をコミットするかを指定します。
ここで選択した値が、更新したデータベース表にインプリメントされます。 表ごとに異なった値を選択することはできません。
「トランザクション」を「コミット」に設定した場合は、PROPAGATE ステートメントを使用することによって、メッセージ・フローの動作およびデータベース更新のコミットメントが影響を受ける場合があります。
ノードから 1 つ以上の出力メッセージを生成するノードの ESQL に PROPAGATE ステートメントを組み込む場合は、出力メッセージのパス全体が完了するまで、PROPAGATE ステートメントの処理は完了したとみなされません。 このパスには、1 つ以上の出力ノードを含む他の複数のノードが含まれている場合があります。 その後、PROPAGATE ステートメントを発行するノードに制御が戻り、ESQL が終了します。 この時点で、必要に応じてデータベースのコミットが実行されます。
伝搬されたパス上のノードの 1 つがエラーを検出して例外をスローすると、PROPAGATE ステートメントをコーディングしたノードの処理は完了しません。 エラー処理の結果がロールバックになる場合は、メッセージ・フローおよびこのノード内のデータベース更新がロールバックされます。 この動作は、「コミット」オプションの規定の動作と整合していますが、期待する動作ではない可能性があります。