2009年02月05日

ポートの競合

今日、JBossAS が起動できなかった。問題はポートの競合。

Caused by: java.rmi.server.ExportException: Port already in use: 1098; nested exception is:
java.net.BindException: Address already in use: JVM_Bind

1098ポートの競合なんて初めて見た。で、実際何が使ってるかを調べた。

Linuxなら、netstat でプロセスの確認して、killでそのプロセスを殺せばいいのだけど、

今回はWindows環境で起きた。で、Windowsではどうやるのかを調べてみた。

まず、netstatはWindowsにもあった。
プロセスIDも表示したい場合はオプション -o で出来る。

次に kill に該当するコマンドは、taskkill というものがあった。
プロセスIDを指定する場合は、taskkill /PID 1345 という風にする。

ということで解決出来たつもりだったのだけど、今回の場合はStateがCLOSE_WAITという状態だった。

どういう状態かというと、

・ローカル側のポート1098を使って、
・プロトコルhttpsで接続(ESTABLISHED)したあと、
・リモート側のソケットがクローズされたが
・ローカル側はまだクローズされていない

というものらしい。

で、これはカーネルレベルの問題でkillとかはできないものらしい。

通常はしばらく経ったら消えるのらしいけど、今回はなかなか消えなかったので、結局再起動した。。。

ちなみに、1098をずっと占領していたのは、Akamaiっての。​アクセスした覚えないなぁ。

posted by hana at 21:00| Comment(0) | TrackBack(0) | Windows関連 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。