熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

使用JMX監控應用程序內、外部的狀況

2022-06-13   來源: JSP教程 

  自WebLogic 以來Java管理API (JMX)對管理WebLogic服務器而言是必需的通過這個API你可以在應用程序服務器裡搜索管理beans (mbeans) 並且通過它們你既可以查詢配置信息又可以查詢runtime監控信息 此外通過這個API還可以用來改變服務器的配置 事實上這個API 已在控制台和其他的管理工具上使用著用來完成它們的工作和提供報告數據
  這個API是一個強大的監控工具讓我們來看一個例子 在這個應用程序中有大部分的靜態內容一些你的個性化的JSP頁面一個注冊系統一個基於JMS(Java Messaging ServicesJava消息服務)的數據系統以及一個小付費應用系統在這個應用程序中在哪裡使用JMX對我們有利呢?在靜態頁面上你可以為FileServlet存取信息並且可以看到花費了多少時間用來服務靜態內容時間可能比你預期的要少因為浏覽器自動的在客戶端緩存了部分內容大多數對靜態內容的請求將會是HEAD請求用來檢查變化對於動態頁面在系統中的每個servlet是被分別計算地這個數據不能很好的反映用戶的經驗 (因為用戶在他們送出請求和接到頁面的返回之間存在延遲)但是這些數據告知了平均每個servlet花在一個請求上的時間以及多少個請求被完成我們的注冊系統是一個實體bean而付費系統是一個由外部服務返回的無狀態會話bean 兩個bean都能被監控而且通過這些監控信息可以幫助我們用來優化緩存和池的大小我們的數據同樣能有助於決定是否我們已經得到了所需要的信息或是決定多少用戶正在使用數據吞吐量也可以使用JMS的topic和queue類型的mbean的屬性來計算此外所有的JDBC連接都可以被監控而且從它們的mbeans你能發現多少連接池被爭用舉例來說這將幫助你判斷是否需要更多的數據庫客戶端授權
  
  mbeans 在WebLogic服務器中的第二種用途是用於配置信息通過配置mbeans所有資源的配置都被包含在runtime中這些mbeans本質上是被包含在configxml文件裡的信息的表示部署在服務器監聽端口上的應用程序的所有內容都包括在這些接口中大多數個別的屬性是直接相關直接然而描述一個部署單元的屬性集合是復雜的並且為了方便它們被集合在weblogicDeployer類中直接訪問它們是可能的但是除了看配置以及不改變它之外的操作是不被推薦的其余的屬性是隨意的但要小心但如果組件(如JDBC池)被重新部署或服務器重新啟動大多數這些屬性實際上只改變運行時的行為這些配置性的mbeans 應用的作用范圍從決定為某一特定應用使用資源到調整基於來自監mbeans的反饋數值
  
  正如你所看到的這有許多信息――但是如果你對JMS和WebLogic服務器都不熟悉你如何著手呢? 它實際上不那麼難 只要你能使用JNDI並且可以閱讀JavaDocs你就會發現操縱 mbeans是相當容易的在下面你所看見的代碼示例中會告訴你如何得到本地服務器的mbean home接口以及JDBC池
  
  MBeanHome home = (MBeanHome) new
  InitialContext()lookup(MBeanHomeLOCAL_JNDI_NAME);
  Set pools = homegetMBeansByType(JDBCConnectionPool);
  
  上面的代碼給出了對於JDBC(Java DataBase ConnectivityJava數據庫連接)池的配置mbean如果你想監控連接池而不考慮它們的配置只要通過添加Runtime來改變mbean的類型就可以完成從這個mbean你可以確定重要的信息比如是否有連接洩漏――你甚至可以得到一個堆棧追蹤找到該連接的具體位置
  
  如果你不想做任何Java編程就像從一個腳本文件中一樣的使用JMX mbean系統怎麼辦?幸運的是我們有一個命令行工具它能讓你以命令行的方式直接查看和改變mbean-weblogicAdmin除了PINGing服務器得到JNDI列表重置連接池以及關閉服務器外它給出了直接訪問mbean的分層結構在下面的代碼示例中你將看到這樣的一個weblogicAdmin的指令
  
  java weblogicAdmin username system password [password] url [url] GET
  pretty type JDBCConnectionPool
  
  相比於在這些mbeans上加上屬性的類型描述器這段代碼給出了關於mbean的簡單易讀的描述同樣的有一個SET命令會在系統中改變任何mbean的屬性
  
  擁有這種工具你應該能夠在Java內部以及從腳本外部監控你的應用程序
  

From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19346.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.