質問: サーバ内(RHEL7/CentOS7ベース)で動いてるJavaVM(1.8.0_222)のアプリ起動コマンドを取得する為、jcmd(jdk1.8.0_66)をVM.command_lineオプションを付けて下記のように(1分に1回継続的に)実行しています。 jcmd {プロセスID} VM.command_line これがJavaVM(1.8.0_222)のアプリ再起動直後から下記のエラーが返ってくるようになります。 ``` java.io.IOException: Connection refused at sun.tools.attach.LinuxVirtualMachine.connect(Native Method) at sun.tools.attach.LinuxVirtualMachine.(LinuxVirtualMachine.java:124) at sun.tools.attach.LinuxAttachProvider.attachVirtualMachine(LinuxAttachProvider.java:63) at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:208) at sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:147) at sun.tools.jcmd.JCmd.main(JCmd.java:131) ``` 1分に1度「jcmd {プロセスID} PerfCounter.print」も実行しておりそちらは正常に動いておりま。 同一の環境で実行しているサーバは他に100台以上ありますが、当事象が発生指定しているのは1台だけになります。 前回の質問では `/tmp/` ディレクトリ配下のファイルが消失していた事が原因でエラーが発生していましたが、今回は `/tmp/` ディレクトリ配下のファイルが消失している様子はありません。 jcmdのVM.command_lineオプションが時間経過で使用できなくなる 原因が特定できず、困窮しております。
回答: 接続先のサーバーが落ちているまたは通信で使用しているポートが閉じているのが原因だと 思います。