利用spring和JMX监测程序运行

原创 2006年06月11日 20:19:00

    最近参加短信网关的开发,开发技术采用了spring+hibernate+mule+jms;从业务层发送到手机用户的信息先发送到JMS服务器的一个队列里(jms:queue_MT),短信网关一直监测该队列(jms:queue_MT),如果发现队列中有新的信息就取出准备发送;这样可以实现了架构的松耦合。

   但是由于移动方面规定的滑动窗口大小只有16,如果几个不同的业务同时向用户群发信息的话就会造成有很多信息堵塞。上个星期五,我的师兄告诉我由于发送信息的速度比较慢,已经上行了20000条信息,但是只收到5000条信息的回复,也就是说有15000条信息在等待发送。为了实时监测短信网关发送信息的情况,周末决定利用JMX实现对网关的监测。主要是监测待发送信息的数量。

1.导出的MBean为ConnectionBean,该类有一size的属性标识待发送信息的数量
<beans>
 <bean id="connection" class="com.ll.smsbeans.ConnectionBean">
      <constructor-arg index ="0" ><value>900509</value></constructor-arg>
   <constructor-arg index ="1"><value>1234</value></constructor-arg>
    </bean>
 
 2.配置MbeanExporter类并传入需要导出的MBean

代码:
 <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
  <property name="beans">
   <map>
    <entry key="bean:name=connectionBean">
      <ref local="connection"/>
    </entry>
   </map>
  </property>
  <property name="server" ref="mbeanServer"/>
 </bean>
   

3.注意当使用一个RMI-based连接器时,你需要启动lookup服务(tnameserv或rmiregistry)用来完成名称注册。如果你通过RMI使用Spring发布远程服务,Spring还要构造一个RMI注册项。如果没有,你可以容易地使用下面的配置项启动一个注册:

代码:
  <bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> 
   <property name="port" value="9875"/>
  </bean>

4.创建一个MBeanServer
如上所示的配置中假定该应用运行在一个有且只有一个MbeanServer正在运行的环境中。在这种情况下,Spring将定位正在运行的MbeanServer并注册你的beans到其中。这在你的应用运行在一个拥有自己的MbeanServer的容器内如Tomcat或者IBM WebSphere时很有用。
然而,这个方法无法用于独立环境中,或者当它运行在一个没有提供MbeanServer的容器时。为了克服这种困难,你可以通过在配置中声明添加一个org.springframework.jmx. support.MbeanServerFactoryBean的实例来创建MbeanServer的实例。通过设置MbeanExporter的server属性为MbeanServerFactoryBean,你同样可以确保这个MbeanServer被使用。如下所示:
 代码:
 <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"/>
 

5.服务端连接器
Spring JMX使用下面的配置创建、启动和发布一个JSR-160 JMXConnectorServer

代码:
 <bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
       <property name="objectName" value="connector:name=rmi"/>
      <property name="serviceUrl"  value="service:jmx:rmi://localhost/jndi/rmi://localhost:9875/myconnector"/>
   </bean>

  最后,可以利用JDK5.0附带的JMX工具JConsole.exe作为客户端连接到服务器中实时参考信息的发送情况。在JConsole.exe的 连接->高级->service地址中填写:service:jmx:rmi://localhost/jndi/rmi://localhost:9875/myconnector即可!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Spring JMX客户端连接代码

package com.test.jmx; import java.io.IOException; import javax.management.InstanceNotFoundException...

【fun】自制程序运行时间监测头文件

首先,先看一下头文件所提供的接口:

用JMX监测JVM的运行参数

翻译自http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html  用JMX管理你的JVM JMX是Jav...

如何利用VS的代码优化和openmp并行计算提高程序运行速度

以前利用多线程为拥有较大量计算的程序提速过,但也深知多线程的同步和程序的调试是一大坑,最近为实验室的项目学习了一点VS下优化代码的设置以及利用openmp加速运算,都是些很基本的提升程序速度的方法,只...

利用torque搭建分布式程序运行环境

利用torque搭建分布式程序运行环境 第一篇自己翻译英文资料以及自己总结的博客。 一、torque简介 Torque 提供批量作业和分布计算机资源的控制功能。它基于原始的PBS(Portable ...

利用组策略限制程序运行

1 在塑料键盘上按下 WIN + R 打开“运行”,输入“gpedit.msc”,然后点击确定,打开组策略。 2 在窗口“本地组策略编辑器”的左边,依...

程序运行完毕脚本vbs

spring通过annotation注解注册MBean到JMX实现监控java运行状态

spring通过annotation注解注册MBean到JMX实现监控java运行状态,http://www.zuidaima.com/share/1828116267568128.htm

测试程序运行时间

  • 2013-12-22 09:47
  • 1.77MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)