2

Windows 上の Java アプリケーションで繰り返し発生する問題の 1 つは、顧客が Java -Xrs フラグを指定せずに Windows サービスとしてアプリケーションを実行していることです。このようにして、管理者が Windows マシンからログオフすると、Java プロセスが終了信号を受信して​​終了し、ランダムなプロダクション ダウンのように見える状況を引き起こします。

サーバーのログ ファイルと監視ツールに、この構成の問題に関する警告を追加したいと考えています。1. 私の Java アプリケーションは Windows サービスとして実行されていますか? 2. java.exe コマンドの一部として -Xrs フラグが指定されていますか? これを達成する方法についてのアイデアは大歓迎です。

4

1 に答える 1

1

-Xrs フラグを確認する方法を見つけましたが、サービスとして実行されているかどうかを判断する必要があります。

import java.lang.management.ManagementFactory;
import java.util.List;

public class GetCommandLineFlags {

   public static void main(String[] args) {
       System.out.println(new GetCommandLineFlags().isReducedSignal());
   }

   public boolean isReducedSignal() {
      List<String> flags = ManagementFactory.getRuntimeMXBean().getInputArguments();
      for (String flag : flags) {
         if ("-Xrs".equals(flag)) {
            return true;
         }
      }
      return false;
   }

}
于 2013-04-25T11:59:31.260 に答える