DB2へのRDBPutバッチ処理でエラーが発生する場合がある。

「ASTERIA Warp」「ASTERIA 3」「ASTERIA On Demand」の
インストール・動作環境・パイプライン機能・フロー機能など全般について

DB2へのRDBPutバッチ処理でエラーが発生する場合がある。

投稿記事by nakamura08 » 2016年3月16日(水) 11:25

--- 環境 ---
ASTERIA WARP 4.7
データ移行元DB:Oracle 11g
データ移行先DB:DB2 v9.7
-------------

--- フロー ---
 「RDBGet1」 ※ループ時に取出す件数:100
   \
   「Mapper1」
    |
   「RDBPut1」 ※バッチ処理件数:100
   /
 「LoopEnd1」
--------------


上記フローを実行すると、「RDBPut1」の実行時に以下のエラーが発生する場合があります。

-----
com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][3.61.65] バッチが失敗しました。
バッチは実行されましたが、バッチの個々のメンバーで少なくとも 1 つの例外が発生しました。
getNextException() を使用して、バッチ処理された特定のエレメントの例外を取得してください。 ERRORCODE=-4229, SQLSTATE=null
at com.ibm.db2.jcc.am.ed.a(ed.java:404)
at com.ibm.db2.jcc.am.o.a(o.java:365)
at com.ibm.db2.jcc.am.hn.a(hn.java:4347)
at com.ibm.db2.jcc.am.hn.c(hn.java:4130)
at com.ibm.db2.jcc.am.hn.executeBatch(hn.java:2447)
at com.infoteria.asteria.util.rdb.Table.post(Table.java:337)
-----

移行元・先のデータが同一の状況で、発生する場合としない場合があるため、原因が解決できない状況です。

<トライした内容>
・DB2ドライバの不具合の可能性あり ⇒ v.9.7で公開されている最新のFix Packを使用しても解決せず
・「RDBPut1」のバッチ処理件数を「1」に変更すると問題は発生しない。 ⇒Batch処理が被疑対象

同様の処理内容で、「移行元DB:Oracle、移行先DB:Oracle」という環境では
一度も発生したことがありません。

類似事象(DB2に対するBatchUpdate(RDBPutでバッチ処理件数2件以上)でエラー)に関するご助言を頂きたく、
よろしくお願いいたします。
nakamura08
 
記事: 6
登録日時: 2015年1月15日(木) 18:16

Return to 聞きたい、知りたい、教えます

オンラインデータ

このフォーラムを閲覧中のユーザー: Google [Bot] & ゲスト[2人]

cron