簡體   English   中英

JMX-應用程序部署中的MBean自動注冊

[英]JMX - MBean automated registration on application deployment

我需要有關JMX和Java EE的指導。

我知道(經過幾周的研究),就部署而言,缺少JMX規范。 對於我要尋找的供應商,幾乎沒有特定的實現,但是沒有一個是跨供應商的。 我想自動化MBean的部署並向服務器注冊。 我需要服務器在部署應用程序時加載和注冊我的MBeand,並在取消部署應用程序時將其刪除。

我使用以下工具開發:NetBean 6.7.1,GlassFish 2.1,Java EE 5,EJB 3

更具體地說,我需要一種管理計時器服務運行的方法。 我的應用程序需要運行不同的歸檔代理和批處理報告。 我希望JMX可以給我遠程訪問權限,以創建和管理計時器服務,並使用戶能夠創建自己的日程表。 如果JMX在應用程序部署中自動注冊,則用戶可以立即連接並管理時間表。 另一方面,EJB如何連接/訪問MBean?

提前謝謝了。 加迪。

幾年前,我在Glassfish中研究了JMX和EJB,所以我不記得所有的細節。 但這可能仍然有幫助。

  1. Glassfish專用的JMX Glassfish具有AMX ,可以部署自定義MBean AFAIK,此類bean旨在監視服務器本身,而不是與特定應用程序緊密交互。 可以使此類bean持久化,並且Glassfish將在重新啟動時將其值存儲在某個位置。 也許看看。

  2. 注冊和查找 您可以隨時使用MBeanPlatformMBeanServer在應用程序中注冊MBean。 看到鏈接,我不記得確切了。 您還可以查找其他JMX bean並對其進行調用。 查找的名稱有些瘋狂。 您可以在應用程序注冊MBean。 ServletContextListener內部開始。

  3. 類加載器和部署 MBean和EJB實例位於不同的Classloader 我認為您需要將帶有MBean實現的.jar放在Glassfish部署目錄結構中,或者通過管理控制台在類路徑中將.jar的列表添加到該目錄中。 您可以相對容易地從EJB模塊中管理一個Bean的注冊,但是至少從我的經驗來看,一個Bean無法輕松地訪問EJB。

我設法使用普通的JMX來公開我的EJB應用程序中的統計信息,並且效果相對較好。 但是我不知道進行更多交互是足夠的,例如,在您希望讓EJB根據使用JMX配置的計時器更改其行為的情況下。 我擔心您會遇到這種方法的麻煩。

希望它能有所幫助,盡管我記得的內容還很模糊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM