国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

使用WebLogic JMX進(jìn)行定制調(diào)試

2019-11-18 12:25:08
字體:
供稿:網(wǎng)友

  維護(hù)復(fù)雜的遺留系統(tǒng)是一項挑戰(zhàn),而文檔、理性設(shè)計以及編碼實踐的缺乏通常會使情況變得更為糟糕。遺憾的是,幾乎所有的軟件開發(fā)人員在其職業(yè)生涯中都會碰到此類任務(wù)。

  對于任何使用數(shù)據(jù)庫的應(yīng)用程序,跟蹤應(yīng)用程序所生成的SQL語句是非常有益的。這樣的跟蹤有助于分析性能瓶頸和調(diào)試錯誤,還可以幫助開發(fā)人員了解與應(yīng)用程序相關(guān)的業(yè)務(wù)流程。

  對于遺留的應(yīng)用程序,我們希望可以進(jìn)行這樣的跟蹤而不必修改任何代碼或應(yīng)用程序配置。利用WebLogic的JMX API,我們可以快速地編寫出跟蹤大型復(fù)雜遺留應(yīng)用程序的JDBC調(diào)用的少量代碼,而不會對現(xiàn)有代碼和應(yīng)用程序配置產(chǎn)生影響。此外,這種小項目有助于我們理解JMX以及在幕后WebLogic是如何使用JMX的。在本文中,我將展示利用WebLogic JMX跟蹤SQL語句的細(xì)節(jié)。

  什么是JMX?

  JMX全稱為java Management Extensions(Java治理擴(kuò)展)。MBean(即managed bean,托管bean)是可以通過JMX API進(jìn)行治理的資源。大多數(shù)應(yīng)用服務(wù)器使用JMX來提供治理控制臺并治理資源。此外,應(yīng)用程序開發(fā)人員可以在他們的定制應(yīng)用程序中使用JMX來提供治理和審計功能。

  WebLogic的JMX實現(xiàn)為開發(fā)人員和治理員提供了哪些優(yōu)點?

  WebLogic Server使用JMX MBeans進(jìn)行配置和治理。每個WebLogic Server會有一個自己的MBean的副本,它由治理服務(wù)器負(fù)責(zé)更新。治理服務(wù)器維護(hù)它所治理的所有服務(wù)器的MBeans的正本。一旦治理服務(wù)器發(fā)生故障,托管服務(wù)器將根據(jù)本地的MBean副本運行,直到治理服務(wù)器可以再次更新該服務(wù)器的本地MBean。

  WebLogic不僅提供了一個使用JMX MBeans的治理控制臺,它還提供了一個API以便答應(yīng)應(yīng)用程序開發(fā)人員配置和研究WebLogic資源。利用WebLogic JMX的最輕易的方式就是使用WebLogic控制臺來更改WebLogic資源的配置,以及查看控制臺中的技術(shù)指標(biāo)。雖然WebLogic控制臺的監(jiān)控和配置功能相當(dāng)強大,可以滿足運行在WebLogic上的大多數(shù)應(yīng)用程序的需要,WebLogic JMX API還是提供了一種更為強大的工具來治理運行在WebLogic平臺上的應(yīng)用程序。WebLogic JMX API的使用使得配置和擴(kuò)展WebLogic資源成為可能,還可以從WebLogic的子系統(tǒng)接收通知。例如,一個JDBC連接的最小和最大數(shù)設(shè)為n的應(yīng)用程序可能希望有一個監(jiān)聽器,以便監(jiān)聽來自WebLogic JMX MBeans的通知,并且在有n-x個并發(fā)JDBC連接使用應(yīng)用程序時,會向治理員發(fā)送電子郵件,從而使治理員可以決定增加n值并重新配置JDBC連接池(這里x是一個由治理員決定的任意數(shù)字)。應(yīng)用程序開發(fā)人員進(jìn)一步使用JMX的例子包括WebLogic子系統(tǒng)中的跟蹤事件,包括EJB事件和服務(wù)器啟動/停止事件。

  在分析JDBC語句方面,WebLogic應(yīng)用程序中有哪些可用選項?

  在WebLogic應(yīng)用程序中,有多種技術(shù)可以用來創(chuàng)建對JDBC語句的動態(tài)跟蹤。為來自java.sql包的Statement、PReparedStatement和CallableStatement類創(chuàng)建子類,以便使用Log4J或WebLogic記錄之類的記錄系統(tǒng)打印跟蹤信息,然后在應(yīng)用程序中使用這些子類,這是一個可行方案,但是并不適用于遺留代碼。也可以使用類似于TOAD的工具來實現(xiàn)這種跟蹤,但是此類工具對于應(yīng)用程序開發(fā)人員而言可能不輕易得到,而且可能無法提供所需的全部信息。AOP技術(shù)是打印JDBC語句的另一種可行方案。然而在撰寫本文時,BEA WebLogic還沒有正式支持AOP,盡管關(guān)于WebLogic AOP的文章已經(jīng)在dev2dev網(wǎng)站上出現(xiàn)。在撰寫本文時,在WebLogic上實現(xiàn)AOP也并不是一項輕而易舉的任務(wù)。使用WebLogic 6.1或8.1的WebLogic JMX不需要使用任何附加的類庫和配置,因為所需的所有類均可在weblogic.jar中得到,而且代碼實現(xiàn)起來相當(dāng)簡單。況且WebLogic JMX是一項非常成熟的技術(shù),可以通過不改變?nèi)魏魏诵膽?yīng)用程序代碼或者字節(jié)碼來實現(xiàn)。

  使用WebLogic JMX API

  WebLogic javadoc可以通過http://e-docs.bea.com/wls/docs81/javadocs/在線獲得。該API包括幾個名稱中包含management的包,這些包就是WebLogic的JMX實現(xiàn)(參見表1)。

使用WebLogic JMX進(jìn)行定制調(diào)試(圖一)

  使用JMX跟蹤JDBC調(diào)用

  一種編寫跟蹤代碼并提供一個用戶界面來查看SQL的簡單方法是編寫一個jsp、一個Servlet以及一個Java Bean或?qū)ο蟆N覀儗⒄故綽ean/POJO的全部細(xì)節(jié),而省去用戶界面/控制器方面的大多數(shù)細(xì)節(jié),因為大多數(shù)WebLogic開發(fā)人員對此已有很深的了解。注重,無需修改任何部署描述符、數(shù)據(jù)庫連接池或數(shù)據(jù)源來實現(xiàn)跟蹤,所有對應(yīng)用程序的更改將在運行時進(jìn)行。

  步驟1

  首先我們將創(chuàng)建一個名為MyTracerBean.java的類,并導(dǎo)入所需的WebLogic JMX包和類。
import javax.naming.Context;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.configuration.JDBCConnectionPoolMBean;
import weblogic.management.runtime.JDBCStatementProfile;
import weblogic.management.runtime.JDBCConnectionPoolRuntimeMBean;
import javax.management.InstanceNotFoundException;
import javax.management.InvalidAttributeValueException;
import javax.naming.NamingException;

使用WebLogic JMX進(jìn)行定制調(diào)試(圖二)



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿拉善盟| 普兰店市| 金川县| 南汇区| 遂昌县| 大姚县| 安仁县| 天峻县| 兖州市| 个旧市| 年辖:市辖区| 宁乡县| 黄石市| 广东省| 棋牌| 湾仔区| 呼图壁县| 屯门区| 贡觉县| 师宗县| 永新县| 建宁县| 吴堡县| 南汇区| 鲁山县| 华蓥市| 静海县| 德州市| 思茅市| 营口市| 九台市| 环江| 米泉市| 富顺县| 马关县| 福建省| 大荔县| 阿拉善盟| 诸城市| 新乡市| 永顺县|