今日は18:00頃にサーバがフリーズしていた模様。ぱじさんが再起動してくれたのでダウンしていた時間は30分程度だった。
発生している問題を少し詳しく。サーバがフリーズしているときに「kill -3」でスレッドダンプを取ると,「java.net.SocketOutputStream.socketWrite0(Native Method)」で止まっている。これはソケットにWriteでいくつかデータを書き込み,後にFlushすると,JVM内部でネイティブメソッドを呼び出し,実際にソケットWriteするわけだが,そこでフリーズしてしまうということだ。ネットで調べてみると同じような現象で困ってる事例はあるが,解決策は見つからない。今のところお手上げ状態。せめて例外を出してくれるのならなんとかなるのに。