LoginSignup
30
28

More than 5 years have passed since last update.

ORACLEと接続するJavaで作ったバッチ処理が動かないときの対処方法

Last updated at Posted at 2015-07-26

JavaからOracleデータベースに接続するバッチで去年度以下のような経験をしました。
その対処方法です。
発生するのはLinuxのみでWindowsだと起こりません。

現象

  • Javaで作ったバッチを動かすと1回目はさらっと流れる。
  • 2回目を動かすと、なんか起動にやたらと時間がかかる。
  • 2回目以降、そもそも起動エラーになることもある。
  • でも時間を置くと1度目に動かしたときと同じようにさらっと流れる。

原因

動いていない(ように見えている)箇所でスレッドダンプを取って出てきたクラスを
片っ端からGoogle検索に突っ込んで調べた結果、
ここのページに遭遇できました。
DBコネクション取得時にOracle JDBCドライバ内から呼び出しているSecureRandomクラスでのシード生成で時間がかかるらしいです。
バグレポートにも上がっていました。

対処方法

Javaの起動引数に以下を追加してあげればOK。

起動オプション
-Djava.security.egd=file:/dev/./urandom

2016/12/12追記

環境が書いてなかったですね、すみません。

環境

  • OS : Redhat6.7
  • Java : 1.8_45
  • Oracle : 11g xe
30
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
30
28