Amazon

2015年3月7日土曜日

talendで20,000件を超えるデータをコピーするとOracle JDBCドライバのバグを踏みます。

オープンソースのETLツールのTalend 5.6でテーブルのデータをコピーしたところ20,000件をコピーしたところで下記のようなエラーがでました。
Oracle JDBCドライバのバグが原因のようで、最新のJDBCドライバに入れ替えることで改善しました。

発生したエラーは、下記のようなエラーメッセージです。
ジョブ CopyMasterData を 20:05 05/03/2015 に開始しました。
[statistics] connecting to socket on port 4053
[statistics] connected
Exception in component tOracleOutput_12
java.lang.ArrayIndexOutOfBoundsException: -32383
at oracle.jdbc.driver.OraclePreparedStatement.setupBindBuffers(OraclePreparedStatement.java:2677)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9270)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:210)
at proj.copymasterdata_0_1.CopyMasterData.tOracleInput_38Process(CopyMasterData.java:8051)
at proj.copymasterdata_0_1.CopyMasterData.runJobInTOS(CopyMasterData.java:10379)
at proj.copymasterdata_0_1.CopyMasterData.main(CopyMasterData.java:10200)
[statistics] disconnected
ジョブ CopyMasterData が 20:06 05/03/2015 に終了しました。 [終了コード=1]

OTNに同じような現象のKROWN:128350がありました。
Oracle JDBC Driver 11.1.0.6, 10.2.0.4が該当していてTalendにバンドルされているJDBCドライバも該当しました。
Oracle JDBC Driver 11.2.0では解決されているのでTalendのJDBCドライバを入れ替えたところ改善しました。

TalendのJDBCドライバは、インストールディレクトリ/configuration/lib/javaにあります。
Modulesビューで選択しているJDBCドライバのjarファイルがojdbc6.jarであることを確認して、下記の通り入れ替えました。
C:\talend\TOS_DI-Win32-20141207_1530-V5.6.1\configuration\lib\java>dir \temp\ojdbc6.jar

C:\temp のディレクトリ

2015/03/05  15:36         1,977,444 ojdbc6.jar
1 個のファイル           1,977,444 バイト
0 個のディレクトリ  137,509,433,344 バイトの空き領域

C:\talend\TOS_DI-Win32-20141207_1530-V5.6.1\configuration\lib\java>dir ojdbc6.ja
r
ドライブ C のボリューム ラベルは S3A7926D004 です
ボリューム シリアル番号は 5E89-0EAE です

C:\talend\TOS_DI-Win32-20141207_1530-V5.6.1\configuration\lib\java のディレクト
リ

2015/03/05  20:27         2,739,670 ojdbc6.jar
1 個のファイル           2,739,670 バイト
0 個のディレクトリ  137,509,433,344 バイトの空き領域

C:\talend\TOS_DI-Win32-20141207_1530-V5.6.1\configuration\lib\java>

11gのJDBCドライバは、下記からダウンロードしました。
http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

0 件のコメント: