成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于JMX監控下的JBoss數據庫連接池

開發 前端
JMX(Java Management Extensions, Java管理擴展)是一個為應用程序植入管理功能的框架。JMX是一套標準的代理和服務,實際上,用戶可以在任何Java應用程序中使用這些代理和服務實現管理。

一、JMX簡介

JMX(Java Management Extensions,Java管理擴展)是一個為應用程序植入管理功能的框架。JMX是一套標準的代理和服務,實際上,用戶可以在任何Java應用程序中使用這些代理和服務實現管理。

Jboss的成功就在于采用了JMX,從零開始、模塊化開發了Jboss服務器和容器,實現了模塊化、嵌入式的技術架構。JMX作為集成中心(總線),可以很方便的熱插拔新的模塊和組件。JMX服務可以通過HTTP、RMI、SNMP等多種協議進行訪問,使其適合作為一個網絡管理、監控平臺的技術架構。

二、JMX構架中的各層及相關的組件

1.工具層(Instrumentation Level)

(a)MBeans(標準的,動態的,開放的和模型MBeans)

(b)通知模型:Notification、NotificationListener等類

(c)MBean元數據類:Attribute、Opreator等類

2.代理層(Agent Level)

(a)MBean Server

(b)代理服務。如jboss jmx-console下的HtmlAdaptorServer等。

MBean:是Managed Bean的簡稱。在JMX中MBean代表一個被管理的資源實例,通過MBean中暴露的方法和屬性,外界可以獲取被管理的資源的狀態和操縱MBean的行為。事實上,MBean就是一個Java Object,同JavaBean模型一樣,外界使用自醒和反射來獲取Object的值和調用Object的方法,只是MBean更為復雜和高級一些。

MBeanServer:MBean生存在一個MBeanServer中。MBeanServer管理這些MBean,并且代理外界對它們的訪問。并且MBeanServer提供了一種注冊機制,是的外界可以通過名字來得到相應的MBean實例。

JMX Agent:Agent只是一個Java進程,它包括這個MBeanServer和一系列附加的MbeanService。當然這些Service也是通過MBean的形式來發布。

Protocol Adapters and Connectors

JMX Agent通過各種各樣的Adapter和Connector來與外界(JVM之外)進行通信。同樣外界(JVM之外)也必須通過某個Adapter和Connector來向JMX Agent發送管理或控制請求。

Adapter和Connector的區別在于:Adapter是使用某種Internet協議來與JMX Agent獲得聯系,Agent端會有一個對象(Adapter)來處理有關協議的細節。比如SNMP Adapter和HTTP Adapter。而Connector則是使用類似RPC的方式來訪問Agent,在Agent端和客戶端都必須有這樣一個對象來處理相應的請求與應答。比如RMI Connector。

JMX Agent可以帶有任意多個Adapter,因此可以使用多種不同的方式訪問Agent。#p#

三、監控jboss數據庫連接池的實現

TABLE cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=#999999 border=1>
import java.util.Iterator; 
 
import java.util.Properties;

import java.util.Set;

import javax.management.MBeanInfo;

import javax.management.MBeanOperationInfo;

import javax.management.MBeanParameterInfo;

import javax.management.ObjectInstance;

import javax.management.ObjectName;

import javax.naming.InitialContext;

import org.jboss.jmx.adaptor.rmi.RMIAdaptor;

public class DataSourceManger {

public static void main(String[] args) {

// TODO 自動生成方法存根

try {

// Get RMIAdaptor Object

Properties pro = new Properties();

pro.setProperty("java.naming.factory.initial",

"org.jnp.interfaces.NamingContextFactory");

pro.setProperty("java.naming.provider.url", "jnp://localhost:1099");

pro.setProperty("java.naming.factory.url.pkgs",

"org.jboss.naming:org.jnp.interfaces");

InitialContext ic = new InitialContext(pro);

RMIAdaptor server = (RMIAdaptor) ic.lookup("jmx/rmi/RMIAdaptor");

ObjectName name = new ObjectName(

"jboss.jca:name=jdbc/baosigpo,service=ManagedConnectionPool");

ObjectName lname = new ObjectName(

"jboss.jca:name=jdbc/baosigpo,service=LocalTxCM");

String AvailableConnectionCount = server.getAttribute(name,

"AvailableConnectionCount").toString();

System.out.println("===========avlide============"

+ AvailableConnectionCount);

String InUseConnectionCount = server.getAttribute(name,

"InUseConnectionCount").toString();

System.out.println("===========InUseConnectionCount============"

+ InUseConnectionCount);

String ConnectionCreatedCount = server.getAttribute(name,

"ConnectionCreatedCount").toString();

System.out.println("===========ConnectionCreatedCount============"

+ ConnectionCreatedCount);

String ConnectionDestroyedCount = server.getAttribute(name,

"ConnectionDestroyedCount").toString();

System.out

.println("===========ConnectionDestroyedCount============"

+ ConnectionDestroyedCount);

ConnectionDestroyedCount = server.getAttribute(name,

"ConnectionDestroyedCount").toString();

System.out

.println("===========ConnectionDestroyedCount============"

+ ConnectionDestroyedCount);

String[] argTypes = new String[0];

int i=0;

i=Integer.parseInt(AvailableConnectionCount);

Object opReturn=null;

if(i<1) {//監控可用連接數。

StringBuffer sb=new StringBuffer();

sb.append("oper before DataSource Pool info : \r\n");

sb.append("AvailableConnectionCount="

+ AvailableConnectionCount);

sb.append("InUseConnectionCount="+InUseConnectionCount);

sb.append("ConnectionCreatedCount="

+ ConnectionCreatedCount);

sb.append("ConnectionDestroyedCount="

+ ConnectionDestroyedCount);

sb.append("\r\n");

//opReturn=server.invoke(name,"flush",argTypes,argTypes);

/*調用mbean的方法釋放連接 begin 本實現方法對應jboss3.2.3

對于jboss4以后的版本只需調用

//opReturn=server.invoke(name,"flush",argTypes,argTypes);

**/

opReturn=server.invoke(name,"stop",argTypes,argTypes);

opReturn=server.invoke(name,"start",argTypes,argTypes);

opReturn=server.invoke(lname,"stop",argTypes,argTypes);

opReturn=server.invoke(lname,"start",argTypes,argTypes);

/*調用mbean的方法釋放連接 end **/

AvailableConnectionCount=server.getAttribute(name,

"AvailableConnectionCount").toString();

InUseConnectionCount=server.getAttribute(name,

"InUseConnectionCount").toString();

ConnectionCreatedCount=server.getAttribute(name,

"ConnectionCreatedCount").toString();

ConnectionDestroyedCount =server.getAttribute(name,

"ConnectionDestroyedCount").toString();

ConnectionDestroyedCount=server.getAttribute(name,

"ConnectionDestroyedCount").toString();

sb.append("oper afer DataSource Pool info :\r\n");

sb.append("AvailableConnectionCount="

+ AvailableConnectionCount);

sb.append("InUseConnectionCount="+InUseConnectionCount);

sb.append("ConnectionCreatedCount="

+ ConnectionCreatedCount);

sb.append("ConnectionDestroyedCount="

+ ConnectionDestroyedCount);

//writeLog(sb.toString()); 操作日志信息

System.out.println("===========op SUCCESS============");

}

}catch(Exception ex){

ex.printStackTrace();

}

}

}

【編輯推薦】

  1. JBoss應用服務器5.0正式發布
  2. JBoss Web和Tomcat的區別
  3. JBoss推出Developer Studio 1.0和Tools 2.0
責任編輯:田超 來源: IT專家網論壇
相關推薦

2009-06-16 09:25:31

JBoss配置

2009-06-24 07:53:47

Hibernate數據

2010-03-18 15:09:15

python數據庫連接

2019-11-27 10:31:51

數據庫連接池內存

2017-06-22 14:13:07

PythonMySQLpymysqlpool

2018-10-10 14:27:34

數據庫連接池MySQL

2011-05-19 09:53:33

數據庫連接池

2018-01-03 14:32:32

2009-07-17 13:32:49

JDBC數據庫

2011-08-09 15:25:14

線程池數據庫連接池

2021-08-12 06:52:01

.NET數據庫連接池

2020-04-30 14:38:51

數據庫連接池線程

2009-06-16 11:11:25

JBoss目錄數據庫連接

2009-07-03 17:37:54

JSP數據庫

2009-07-29 09:33:14

ASP.NET數據庫連

2025-01-16 10:30:49

2011-07-29 15:11:42

WeblogicOracle數據庫連接

2010-03-18 14:55:17

Python數據庫連接

2010-10-26 16:15:33

連接Oracle數據庫

2009-06-15 13:56:02

linux下安裝JBo
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品1区| 中文字幕一区二区三区乱码在线 | 香蕉视频在线播放 | 久久精品久久精品久久精品 | 日韩一区二区三区在线播放 | 日韩国产精品一区二区三区 | 我要看黄色录像一级片 | 91资源在线| 国产91精品久久久久久久网曝门 | 久久久精品视频一区二区三区 | 亚洲一区二区不卡在线观看 | 久久精品亚洲国产 | 99r在线 | 成人免费网站视频 | 国产福利在线 | 蜜桃官网| 国产在线一区观看 | 久久久久久999 | 一区二区伦理电影 | 国产一级毛片视频 | 99久久日韩精品免费热麻豆美女 | 天天操网 | a免费视频| 九九热精 | 国产精品欧美精品日韩精品 | 日韩精品一区二区三区高清免费 | 黄网站在线播放 | 精品欧美一区二区三区久久久 | 国产日韩精品在线 | 国产乱人伦精品一区二区 | 国产成人99久久亚洲综合精品 | 亚洲最大的黄色网址 | 久久亚洲国产精品 | 国产精品视频网 | 中文字幕精 | 久久久久国产一级毛片高清网站 | 91网站视频在线观看 | 久久久综合精品 | 国产高清在线 | av色在线 | 国产在线小视频 |