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っての。アクセスした覚えないなぁ。