2017-09-25 16 views
2

私はJBoss 6.1.0_finalからWildFly 10に移行しています。特定の状況で、私は自分のサーバーを停止したいと思います。ようこそ:WildFly 10をプログラム的に停止

if (condition == true) 
    System.exit(1); 

上記のコードはJBossで正常に動作し、すぐにサーバーをシャットダウンします。 しかし、私がWildFly10に同じコードを実行すると、サーバーは直ちに停止しません。

シャットダウン信号を送信し、次にdatasourceをアンバインドし、次にJMXなどとします。私はMBeansで行うことができますが、ここでは働いていないことがわかりました:https://developer.jboss.org/thread/198579私はすぐに私のWildFly10サーバーを停止したい

のparamsと説明が

異なる長さを持っていますようにこれは、いくつかのエラーが発生します。いずれかの人がこれのような何かをしましたか?

+0

なぜjboss-cliまたはその管理APIを使用しないのですか? – ehsavoie

+0

私はプログラムでそれを停止したいと思います。 –

+0

Hum、どうやってAPIを呼び出すのですか、あるいはクライアントヘルパーのJavaコードをプログラムではなく使用していますか?上記のコードを持つ – ehsavoie

答えて

1

次は動作するはずです(ただ例外を処理):

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer(); 
ObjectName objectName = new ObjectName("jboss.as:management-root=server"); 
mBeanServer.invoke(objectName, "shutdown", new Object[] { false, 0 }, 
     new String[] { boolean.class.getName(), int.class.getName() }); 
+0

の場合、エラーはなくなり、サーバーは処理を先に停止します。 ActiveMQに関連するすべてのスレッドが開始されて以来、Javaはまだ実行されています。 1000ミリ秒後にタイムアウト例外がスローされます。そしてサーバはまだ動いています。 :-( –

0

あなたは直接のJBoss-CLIコマンドを使用してWildflyサーバーを停止してみてください。サーバーを停止したい場合は、サーバーが稼働中であることを確認してください。

try { 
    String jbossBinDir = System.getProperty("jboss.server.base.dir").replace("standalone", "bin"); 
    Runtime.getRuntime().exec(jbossBinDir+"/" + "jboss-cli.bat --connect --controller=192.168.1.2 -c command=:shutdown"); 
    } 
    catch(IOException e) 
    { 
     e.printStackTrace(); 
    } 
関連する問題