关于java对于weblogic的一些监控方式(一)

刚入门编程,在weblogic实现监控处碰到了许多问题。在网上找了些相关的资料做了一些整合,和大家分享下。

1.关于jar包的引用
    网上找了很多人,发现大家用的都是weblogic.jar,wlclient.jar(wljmxclient.jar),wls-api之类的包,这些包能在 WL_HOME/server/lib 下面能够找到。其实在官方文档里面也说明了,只要一个wlfulclient.jar包就够了,这个包并不是安装完就能找到的。而要进行如下操作

    首先用cmd,或者用terminal进入 WL_HOME/server/lib
  
    jdk1.6的用户敲入 java -jar wljarbuilder.jar
    jdk1.5的用户敲入 java -jar wljarbuilder.jar -profile wlfullclient5

    键入命令后就会在该目录下多出一个wlfulclient.jar的包(前提是已经配好了java环境变量 否则java命令要打全)。之后再配置下classpath就可以正常进行调用

2.常用监控指标


JVMRuntime

HeapSizeCurrent 返回当前JVM堆中内存数,单位时字节
HeapFreeCurrent 返回当前JVM堆中空闲内存数,单位时字节


ExecuteQueueRuntime

ExecuteThreadCurrentIdleCount 返回队列中当前空闲线程数
PendingRequestOldestTime 返回队列中最长的等待时间
PendingRequestCurrentCount 返回队列中等待的请求数
Queue Length 队列长度


JDBCConnectionPoolRuntime   

WaitingForConnectionHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大等待连接数
WaitingForConnectionCurrentCount 返回当前等待连接的总数
MaxCapacity 返回JDBC池的最大能力
WaitSecondsHighCount 返回等待连接中的最长时间等待者的秒数
ActiveConnectionsCurrentCount 返回当前活动连接总数
ActiveConnectionsHighCount 返回本JDBCConnectionPoolRuntimeMBean 上最大活动连接数

    在进行检测的时候主要关注两种Mbeans:配置Mbeans 与运行时Mbeans。(本文暂不对配置Mbeans进行分析)

    运行时Mbeans 则提供了诸如JVM 内存资源使用状况以及WebLogic 服务器状态等资源的信息快照。当域中的某一资源实例化时(例如Web 应用),相应地就会创建一个Mbeans 实例来收集该资源的信息。我们要做的就是如何用java对这些可视化的资源进行收集。


3.用java进行连接weblogic
    weblogic的链接也有多种方式。此处提供官方推荐的方式:
public class MyConnection {
   private static MBeanServerConnection connection;
   private static JMXConnector connector;
   private static final ObjectName service;

   
   /*
   * 实例化与 Domain Runtime MBean Server 的连接。
   */
   public static void initConnection(String hostname, String portString,
      String username, String password) throws IOException,
      MalformedURLException {
      String protocol = "t3";
      Integer portInteger = Integer.valueOf(portString);
      int port = portInteger.intValue();
      String jndiroot = "/jndi/";
      String mserver = "weblogic.management.mbeanservers.domainruntime";
      JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port,
      jndiroot + mserver);
      Hashtable h = new Hashtable();
      h.put(Context.SECURITY_PRINCIPAL, username);
      h.put(Context.SECURITY_CREDENTIALS, password);
      h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
         "weblogic.management.remote");
      connector = JMXConnectorFactory.connect(serviceURL, h);
      connection = connector.getMBeanServerConnection();
   }
    public static void main(String[] args) throws Exception {
      String hostname = args[0];
      String portString = args[1];
      String username = args[2];
      String password = args[3];
       MyConnection c= new MyConnection();
      initConnection(hostname, portString, username, password);
...
      connector.close();
   }
}

以上操作可以初始化MBeanServerConnection 当然获得的对象是DomainRuntimeServiceMBean

   // 实例化 DomainRuntimeServiceMBean 对象名
   // 这样可以通过类使用此对象名。
   static {
      try {
         service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean");
      }catch (MalformedObjectNameException e) {
         throw new AssertionError(e.getMessage());
      }
   }


下一篇为大家介绍jxm的注册方式

PS.1.weblogic 在安装完后会有一个jrockit。是weblogic自带的一个很好的jvm监控工具。
此处献上jmx笔记 http://m.oschina.net/blog/719

你可能感兴趣的:(weblogic,监控)