溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用JMX監(jiān)控應(yīng)用程序內(nèi)、外部的狀況

發(fā)布時間:2021-11-02 16:35:36 來源:億速云 閱讀:114 作者:小新 欄目:編程語言

這篇文章主要介紹如何使用JMX監(jiān)控應(yīng)用程序內(nèi)、外部的狀況,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

Java管理API (JMX)對管理WebLogic服務(wù)器而言是必需的。通過這個API,你可以在應(yīng)用程序服務(wù)器里搜索管理beans (mbeans) 并且通過它們你既可以查詢配置信息又可以查詢runtime監(jiān)控信息。 此外,通過這個API還可以用來改變服務(wù)器的配置。 事實上,這個API 已在控制臺和其他的管理工具上使用著,用來完成它們的工作和提供報告數(shù)據(jù)。
這個API是一個強(qiáng)大的監(jiān)控工具。讓我們來看一個例子。 在這個應(yīng)用程序中,有大部分的靜態(tài)內(nèi)容,一些你的個性化的JSP頁面,一個注冊系統(tǒng),一個基于JMS(Java Messaging Services,Java消息服務(wù))的數(shù)據(jù)系統(tǒng),以及一個小付費應(yīng)用系統(tǒng)。在這個應(yīng)用程序中在哪里使用JMX對我們有利呢?在靜態(tài)頁面上,你可以為FileServlet存取信息并且可以看到花費了多少時間用來服務(wù)靜態(tài)內(nèi)容。時間可能比你預(yù)期的要少,因為瀏覽器自動的在客戶端緩存了部分內(nèi)容。大多數(shù)對靜態(tài)內(nèi)容的請求將會是HEAD請求,用來檢查變化。對于動態(tài)頁面,在系統(tǒng)中的每個servlet是被分別計算地。這個數(shù)據(jù)不能很好的反映用戶的經(jīng)驗 (因為用戶在他們送出請求和接到頁面的返回之間存在延遲),但是這些數(shù)據(jù)告知了平均每個servlet花在一個請求上的時間,以及多少個請求被完成。我們的注冊系統(tǒng)是一個實體bean,而付費系統(tǒng)是一個由外部服務(wù)返回的無狀態(tài)會話bean。 兩個bean都能被監(jiān)控,而且通過這些監(jiān)控信息可以幫助我們用來優(yōu)化緩存和池的大小。我們的數(shù)據(jù)同樣能有助于決定是否我們已經(jīng)得到了所需要的信息,或是決定多少用戶正在使用數(shù)據(jù)。吞吐量也可以使用JMS的topic和queue類型的mbean的屬性來計算。此外,所有的JDBC連接都可以被監(jiān)控,而且從它們的mbeans你能發(fā)現(xiàn)多少連接池被爭用,舉例來說,這將幫助你判斷是否需要更多的數(shù)據(jù)庫客戶端授權(quán)。

mbeans 在WebLogic服務(wù)器中的第二種用途是用于配置信息。通過配置mbeans,所有資源的配置都被包含在runtime中。這些mbeans本質(zhì)上是被包含在config.xml文件里的信息的表示。部署在服務(wù)器監(jiān)聽端口上的應(yīng)用程序的所有內(nèi)容都包括在這些接口中。大多數(shù)個別的屬性是直接相關(guān)直接;然而,描述一個部署單元的屬性集合是復(fù)雜的并且為了方便它們被集合在weblogic.Deployer類中。直接訪問它們是可能的,但是除了看配置以及不改變它之外的操作是不被推薦的。其余的屬性是隨意的,但要小心,但如果組件(如JDBC池)被重新部署或服務(wù)器重新啟動,大多數(shù)這些屬性實際上只改變運行時的行為。這些配置性的mbeans 應(yīng)用的作用范圍從決定為某一特定應(yīng)用使用資源,到調(diào)整基于來自監(jiān)mbeans的反饋數(shù)值。

正如你所看到的,這有許多信息――但是如果你對JMS和WebLogic服務(wù)器都不熟悉,你如何著手呢? 它實際上不那么難。 只要你能使用JNDI并且可以閱讀JavaDocs你就會發(fā)現(xiàn)操縱 mbeans是相當(dāng)容易的。在下面你所看見的代碼示例中,會告訴你如何得到本地服務(wù)器的mbean home接口以及JDBC池。

MBeanHome home = (MBeanHome) new
InitialContext().lookup(MBeanHome.LOCAL_JNDI_NAME);
Set pools = home.getMBeansByType("JDBCConnectionPool");

上面的代碼給出了對于JDBC(Java DataBase Connectivity,Java數(shù)據(jù)庫連接)池的配置mbean。如果你想監(jiān)控連接池而不考慮它們的配置,只要通過添加"Runtime"來改變mbean的類型就可以完成。從這個mbean你可以確定重要的信息,比如是否有連接泄漏――你甚至可以得到一個堆棧追蹤,找到該連接的具體位置。

如果你不想做任何Java編程,就像從一個腳本文件中一樣的使用JMX mbean系統(tǒng),怎么辦?幸運的是我們有一個命令行工具,它能讓你以命令行的方式直接查看和改變mbean-weblogic.Admin。除了PINGing服務(wù)器,得到JNDI列表,重置連接池,以及關(guān)閉服務(wù)器外,它給出了直接訪問mbean的分層結(jié)構(gòu)。在下面的代碼示例中你將看到這樣的一個weblogic.Admin的指令。

java weblogic.Admin -username system -password [password] -url [url] GET
-pretty -type JDBCConnectionPool

相比于在這些mbeans上加上屬性的類型描述器,這段代碼給出了關(guān)于mbean的簡單易讀的描述。同樣的,有一個SET命令會在系統(tǒng)中改變?nèi)魏蝝bean的屬性。

以上是“如何使用JMX監(jiān)控應(yīng)用程序內(nèi)、外部的狀況”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

jmx
AI