2012年2月9日木曜日

SQLServer2008へのJDBC接続が応答しない

久しぶりにハマったので、書き留めておきます。

プロジェクトでSQL Server2008にJDBCで接続する必要があったのだが、リリース環境で全く応答しなくなるという症状がでた。
ローカル環境での接続やテストは全てうまくいっており、単純にFWの設定かと思いながら対策を始めたのが、事の始まり。
FWをあけても症状が変わらず。tcpdumpやiptablesを使いながらいろいろ試すが解決しない。試しにと思い、PHP+dblibによるテストを行うと正常に接続できる。

うーん。これはドライバまたは接続プロパティだなと思い、あらゆる組み合わせで試してみるがいっこうに解決できない。海外のコミュニティ等もあさるが情報がみつからない。

時間だけがすぎ、途方に暮れていたころ、ようやく以下の記事を発見。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7105007

Java1.6.0_29のSSLの実装にバグがあり、JDBCドライバーにうまく接続できずにハングするとのこと。

解決策として使用するJVMを一つ前のバージョン、1.6.0_27にダウングレードする。


あっさり「解決」




「JVMのバグかよ!」

って、おもわず叫んでた。