2011-07-20 45 views
3

有沒有辦法使用JMX或使用HTTP請求啓動,停止或重新啓動運行在tcserver中的應用程序?例如,在Tomcat的6.0,下面可以做啓動應用程序:使用JMX/Hyperic代理程序在tc服務器啓動/停止應用程序

http://localhost:8080/manager/start?path=/examples 

當我開始Hyperic公司代理,我無法看到在代理過程中,開始定義的任何Mbean的/停止中的運行實例一個tcserver。

回答

2

一個Tomcat(和可能的tcServer也一樣)註冊一個MBean的每一個WebModule它看起來像

Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/jolokia

在域名和名稱屬性取決於您的安裝和WebModule。 這些MBean中的每一個都有一個start()stop()操作。

如果您使用的是Jolokia agent,你可以直接使用像

 
    wget -O - -q 
     http://localhost:8080/jolokia/exec/Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=/--/localhost/-/jolokia/start 

HTTP調用(斜槓需要進行轉義,用/單斜槓 - /雙斜線與/ - /見詳情請見Jolokia reference manual)。

+0

+1用於引用Jolokia - 節省我的時間 – powerMicha

+0

我無法從jconsole找到任何特定於我的運行時實例的MBean。我不明白兩件事:1)通過使用來自jconsole的jmx url作爲遠程進程連接,雖然一切都在同一臺機器上運行,但我可以訪問我的tcserver運行時實例mbeans。 2)現在,當我的tcserver關閉時,我想我可以通過JMX使用hyperic agent啓動它,即使這似乎是不可能的。 – Prasanna

+1

對於jconsole,我不知道每個MBean是否在所有模式下都可用。對於基於JSR-160的通信(即,連接JMX服務URL),如果您在URL中指定了適當的MBeanServer,則它們應該可用。可以有多個MBeanServer pro JVM(例如,Weblogic至少使用3個)。對於第二點,您顯然無法通過JMX啓動JVM,因爲JMX僅在JVM運行時纔可用。我不知道一個Hyperic代理是否可以啓動一個Java進程,但如果是這樣,不通過JMX。 –

相關問題