教你如何用jmx 檢測應(yīng)用程序_第1頁
已閱讀1頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、教你如何用教你如何用JMXJMX檢測應(yīng)用程序檢測應(yīng)用程序提示:本文檔由本文檔由91913網(wǎng)址導(dǎo)航(網(wǎng)址導(dǎo)航()整理,供大家學(xué)習(xí)。)整理,供大家學(xué)習(xí)。如果你想用JMX檢測應(yīng)用程序,其實只需添加bean就可實現(xiàn),立即可視結(jié)合平臺內(nèi)的JMX支持和jconsoleJMX客戶機可以提供一種向應(yīng)用程序添加管理和監(jiān)視功能的輕松方式。即使是沒有具體管理需求的應(yīng)用程序,為它們構(gòu)建這些功能也會讓您對程序的運行及其所處理的數(shù)據(jù)的性質(zhì)獲得深入了解,而且不需太多

2、的工作和努力。如果應(yīng)用程序?qū)С龉芾斫涌?,此接口讓您可以查看它操作的?nèi)容,那么您就會更加了解它的運行狀態(tài)——對它是否按預(yù)期的方式工作也會更有信心——而不必求助于額外的工具(例如添加日志代碼或使用調(diào)試器或分析器)。調(diào)試器和分析器可以提供對應(yīng)用程序的行為的深入觀察,但在出現(xiàn)嚴重問題之前,這些工具通常用不上。將監(jiān)視掛鉤(hook)構(gòu)建到應(yīng)用程序內(nèi),會使理解程序的執(zhí)行變得更容易而且不會破壞調(diào)試器。既然Java管理擴展(JMX)已經(jīng)構(gòu)建進了Java

3、?SE平臺,而且jconsole查看器提供了統(tǒng)一的監(jiān)視GUI,那么用JMX為應(yīng)用程序提供一個窗口,要比以前更加容易而且更為有效。有多少次您曾經(jīng)注視著運行中的應(yīng)用程序,問自己:“它到底在做什么?為什么用了這么長時間呢?”在這些時刻,您可能會想如果自己在應(yīng)用程序中構(gòu)建了更多的監(jiān)視功能就好了。例如,在服務(wù)器應(yīng)用程序中,能夠查看排隊等候處理的任務(wù)的數(shù)量和類型、當(dāng)前正在處理的任務(wù)、過去一分鐘或一小時內(nèi)的吞吐量統(tǒng)計、平均任務(wù)處理時間等。這些統(tǒng)計值容

4、易搜集,但是在需要數(shù)據(jù)的時候,如果沒有非侵入性的數(shù)據(jù)檢索機制,那么這些值就不太有用??梢杂迷S多方式導(dǎo)出操作性數(shù)據(jù)——可以把周期性統(tǒng)計快照寫入日志文件、創(chuàng)建SwingGUI、使用內(nèi)嵌的HTTP服務(wù)器在Web頁面上顯示統(tǒng)計值或者發(fā)布可以用來查詢應(yīng)用程序的Web服務(wù)。但是在缺少監(jiān)視和數(shù)據(jù)發(fā)布基礎(chǔ)設(shè)施的情況下,多數(shù)應(yīng)用程序開發(fā)人員都做不到這些,因此造成對應(yīng)用程序工作情況的了解要比預(yù)期的少很多。JMX:在Java5.0中,類庫和和JVM提供了一種

5、全面的管理和監(jiān)視基礎(chǔ)設(shè)施——JMX。JMX是一種用來提供可以遠程訪問的管理接口的標(biāo)準措施,也是一種向應(yīng)用程序添加靈活且強大的管理接口的簡易方式。被稱作受管bean(MBean)的JMX組件,是提供與實體的管理有關(guān)的訪問器和業(yè)務(wù)方法的JavaBean。每個受管的實體(可能是整個應(yīng)用程序或應(yīng)用程序中的服務(wù))實例化一個MBean并用可讀懂的名稱注冊它。支持JMX的應(yīng)用程序依賴于MBeanServer,它充當(dāng)MBean的容器,提供遠程訪問、命名

6、空間管理和安全服務(wù)。在客戶端,jconsole工具可以充當(dāng)統(tǒng)一的JMX客戶機。結(jié)合兩者,對JMX的平臺支持極大地降低了使應(yīng)用程序支持外部管理接口所需的工作和努力。除了提供MBeanServer實現(xiàn),JavaSE5.0還提供JVM以更方便地了解內(nèi)存管理、類裝入、活動線程、日志和平臺配置的狀態(tài)。多數(shù)平臺服務(wù)的監(jiān)視和管理在默認情況下都是開啟的(性能影響最小),所以只需要連接應(yīng)用程序與JMX客戶機即可。圖1給出了jconsoleJMX客戶機(J

7、DK的一部分),它顯示了其中一個內(nèi)存管理視圖——一段時間內(nèi)的堆使用情況。PerfmGC按鈕則證明了JMX可以提供除了查看操作統(tǒng)計值之外的初始化操作的功能。publicclassWebServerimplementsWebServerMBean......WebServerws=newWebServer(...)MBeanServerserver=ManagementFacty.getPlatfmMBeanServer()server.r

8、egisterMBean(wsnewObjectName(“myapp:type=webservername=Pt8080“))傳遞給registerMBean()的ObjectName標(biāo)識了受管實體。因為預(yù)見到指定應(yīng)用程序可能包含許多受管實體,所以名稱包含域(清單2中的“myapp”)和許多標(biāo)識域中的受管資源的鍵值對?!皀ame”和“type”這兩個鍵是常用的,在使用的時候,name應(yīng)當(dāng)在域中所有的同類MBean中能夠唯一地標(biāo)識受管實

9、體。也可以指定其他鍵值對,而且JMXAPI還包含進行對象名稱通配匹配的工具。創(chuàng)建并注冊了MBean之后,立即就可以把jconsole指向應(yīng)用程序(在命令行輸入jconsole)并在“MBeans”視圖中查看它的管理屬性和操作。圖2顯示了jconsole中針對新MBean的Attributes標(biāo)簽,圖3顯示了Operations標(biāo)簽。使用反射,JMX可以指出哪個屬性是只讀的(Started、Pt),哪個屬性是可讀寫的(LogLevel),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論