Talend Open Studio for Data Integration で Oracle 接続が失敗あるいは遅い

Oracle 接続が失敗あるいは遅い問題

Talend Open Studio for Data Integration v6.4.1 で作成したジョブから Oracle10g への接続を行いデータを取得するバッチ処理を作成したところ、おおよそ5回に1回程度の割合でデータベース接続が失敗あるいは接続が確立されるまでとても時間が掛るという事象に遭遇した。

Talend のジョブと Oracle10g との間のネットワークには問題はなく、またファイアウォールのタイムアウトによる問題でもないことまでは調査したが、全く原因が掴めませんでした。

しかし色々調べたところ下記の記事にあるように Oracle との接続時の乱数生成に問題があるらしいとのことで、解決策も示されている。なお Oracle が対応していない理由は不明。
https://kb.sos-berlin.com/display/PKB/ORACLE+IO+exception+-+Connection+reset+or+Timeout+reached+-+30s+-+for+process

[関連記事]
Talend Data Integration で処理を迅速かつ効率良く開発する (ETL ツール)
Talend Open Studio for Data Integration (Version 6.4.1) のインストール
Talend Open Studio for Data Integration の拡張機能インストール
Talend Open Studio for Data Integration でのジョブ作成方法Talend Open Studio for Data Integration で Oracle 接続が失敗あるいは遅い
Talend Open Studio Data Integration でのエラー処理の基本
Talend Open Studio Data Integration のジョブで発生したエラー情報をメールで送信する



解決策

しかし不規則にデータベース接続が失敗したり、または接続に非常に時間が掛るようではミッションクリティカルなシステムや失敗しては困るジョブの実行には使えない。そこで前述の URL で提示されている解決策を Talend Open Studio for Data Integration でも実装してみる。
(日本語モードで起動)

(英語モードで起動)

上図のように Java VM のパラメータに下記設定を追加すると良い。
-Djava.security.egd=file:/dev/./urandom

上記設定を加えてジョブを再デプロイしておよそ2ヶ月程度様子を見ているが、以前はおよそ1週間に1度の頻度で接続が失敗していたものが、今ではおよそ2ヶ月程度の間まったく接続失敗や接続遅延がなくなった。