Magic xpiトレーニングテキスト
17. トランザクションの指定

17.1 トランザクションの指定

【トランザクションの指定】

  • トランザクションの指定を行うことで、Magic xpiがDBMSを更新する際のコミットのタイミングを指定することができます。
  • 指定方法は以下の3通りです。

    ① データマッパー マッパー単位

    ② データマッパー レコード単位

    ③ フロー単位

 

17.2 データマッパー マッパー単位

【データマッパー マッパー単位】

  • フロー内のデータマッパー単位でコミットを発行する。
  • 例えばデータマッパーでDBMSに対し、更新(Insert、Update、Delete) が1000件行われる場合、その1000件が正常に処理されたときにコミットが発行される。
  • 900件目でエラーが発生した場合、先に処理された899件はロールバックされる。

 

【設定方法】

  • データマッパーのプロパティで以下のように設定
  • マッパー単位の場合は、エラー動作は必ず「Exit」とします。

設定方法

 

 

エラー動作 Exit
DBトランザクション データベースリソースを選択
DBトランザクションレベル Mapper

※データマッパー内で使用している全てのデータベースリソースを選択

17.3 データマッパー レコード単位

【データマッパー レコード単位】

  • フロー内のデータマッパーの各レコード単位でコミットを発行する。
  • 例えばデータマッパーでDBMSに対し、更新(Insert、Update、Delete) が1000件行われる場合、1件処理が行われるたびにコミットが発行される。
  • 900件目でエラーが発生した場合、先に処理された899件はすでにコミットされているため、更新済みとなる。
  • 各レコードごとにコミットされるため、処理時間はマッパー単位と比べて長くなる場合が多い。

 

【設定方法】

  • データマッパーのプロパティで以下のように設定
  • レコード単位の場合は、エラー動作は「Exit」または「Continue」とします。

 

設定方法

 

 

エラー動作 Exit または Continue
DBトランザクション データベースリソースを選択
DBトランザクションレベル Record

※データマッパー内で使用している全てのデータベースリソースを選択

17.4 フロー単位

【フロー単位】

  • フローが正常終了した時に初めてDBMSに対しコミットを発行する。
  • 例えば、フロー内に以下の3つのデータマッパーがある場合、これら3つの処理が正常終了し、フロー全体が正常終了するときに初めてDBMSに対しコミットが発行される。

     MSSQLにInsert

     OracleにUpdate

     DB2/400にDelete

  • いずれかのデータマッパーでエラーが発生したら、対象のDBMSに対する変更はすべてロールバックされる。

 

【設定方法】

  • フローのプロパティで以下のように設定

 

 

DBトランザクション Yes
DBリソースリスト データベースリソースを選択

※フロー内で使用している全てのデータベースリソースを選択

 

 

 

 

 

 

フロー内の各データマッパーのプロパティ

 

 

エラー動作 Exit
DBトランザクション (選択を解除)
DBトランザクションレベル どちらでも可(無視される)