概述


Apache ActiveMQBrowser可以用于查看AMQ中的消息。这里对其使用方法进行简单介绍。

使用介绍


1.下载并解压缩

下载地址:Apache ActiveMQBrowser,当前最新的版本是ActiveMQBrowser_2.5.2.8ForJDK1.6。
解压缩之后可以发现,ActiveMQBrowser很简单,只有一级目录,里面有几个jar包、几个txt文件、一个图片文件、一个bat文件。

2.添加classpath

如果MQ中的消息是ObjectMessage类型,我们需要为ActiveMQBrowser提供里面封装的class;这样,当使用ActiveMQBrowser时,我们可以查看一个消息的内容。ActiveMQBrowser调用对象的toString方法来展示消息内容,所以请考虑为类重写toString方法。
假设ActiveMQBrowser解压缩的目录是AMQB_HOME,在这个目录下添加classes子目录,并修改AMQB_HOME下的run_activemq_browser.bat文件,将classes目录加入classpath:
 echo off
start "ActiveMQBrowser" javaw -Xms128m -Xmx512m -splash:cube.png -cp .\QBrowserV2_Neo.jar;.\activemq-web-5.6.0.jar;.\activemq-all-5.6.0.jar;.\jide-oss-2.6.2.jar;.\imq.jar;.\jms.jar;.\imqadmin_ja.jar;.\imqadmin.jar;.\imqutil_ja.jar;.\imqutil.jar;.\imqjmx.jar;.\imqjmx_ja.jar;.\classes com.qbrowser.ActiveMQBrowser

将class文件放入classes子目录。

 
补充:
在producer-client,你可能使用javax.jms.Session#createObjectMessage(java.io.Serializable object):ObjectMessage的方式来创建ObjectMessage实例,并发送到AMQ;这里传入的参数object需要是一个可序列化的对象,就是将这个类对应的class文件,放到上述新建的classes目录。

3.启动ActiveMQBrowser

运行AMQB_HOME下的run_activemq_browser.bat文件:
 
File - New Connection(Ctrl + W)
看来,我们需要为Connection提供一些参数,包括jmx的监听地址、用户名、密码;connection的监听地址、用户名、密码。到这里我们先放一放,转去AMQ的配置。

4.AMQ配置

一般来说,AMQ的配置文件是activemq.xml[1],这个文件有3个地方需要注意:
  1. broker配置属性useJmx="true"

     <broker xmlns="http://activemq.apache.org/schema/core"
    brokerName="amq1-broker" supportFailOver="true" useJmx="true"
    destroyApplicationContextOnStop="true">
    .....
    </broker>
  2. 配置managementContext[2]
     <managementContext>
    <managementContext createConnector="true"
    connectorPort="1099" />
    </managementContext>

    这里的connectorPort就是JMX的监听端口。

  3. 配置transportConnectors[3]
     <transportConnectors>
    <transportConnector name="default"
    uri="tcp://localhost:57015" />
    </transportConnectors>

    这里的uri,就是connection的监听地址。

 
注:
[1] 在公司的框架中,这个文件放在resources/META-INF下。
[2] 我曾经尝试把监听端口配置在properties文件,在activemq引入properties文件,但是没能解析成功。
[3] 在公司的框架中,实际内容是
 <transportConnectors>
<transportConnector name="default"
uri="tcp://${activemq.listenaddress}" />
</transportConnectors>

其中,activemq.listenaddress来自resources/spring-bean-config/activeMQ.properties文件

5.建立连接

现在我们回到ActiveMQBrowser界面,假设我们要监控的AMQ就在本机跑着,jmx、connection监听地址中的ip部分就是localhost;分别修改监听端口,根据我们查看AMQ的配置,jmx的端口是1099,connection的端口是57015。
关于用户名和密码:如果没有配置就不用填写,我没有研究怎么去配置,如果你研究了,并且配置了,自然知道是什么。
点击OK:
建立连接成功,并且我们可以看到有一个asj.log的queue,且里面有9条消息。

6.刷新和查看

如果有新的消息入队,需要刷新才能看到。
Display - Refresh ... (Ctrl + R)
 
双击一条消息,可以查看其内容:
再次说明:消息的内容,是调用对象的toString方法获得的结果。请确保class文件加入了ActiveMQBrowser的classpath,否则会遇到ClassNotFoundException。

AMQ学习笔记 - 20. 使用Apache ActiveMQBrowser监控ActiveMQ的更多相关文章

  1. AMQ学习笔记 - 15. 实践方案:基于ActiveMQ的统一日志服务

    概述 以ActiveMQ + Log4j + Spring的技术组合,实现基于消息队列的统一日志服务. 参考:Spring+Log4j+ActiveMQ实现远程记录日志——实战+分析 与参考文章的比较 ...

  2. Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法

    Ext.Net学习笔记20:Ext.Net FormPanel 复杂用法 在上一篇笔记中我们介绍了Ext.Net的简单用法,并创建了一个简单的登录表单.今天我们将看一下如何更好是使用FormPanel ...

  3. SQL反模式学习笔记20 明文密码

    目标:恢复或重置密码 反模式:使用明文存储密码 1.存储密码 使用明文存储密码或者在网络上传递密码是不安全的. 如果攻击者截取到你用来插入(或者修改)密码的sql语句,就可以获得密码.     黑客获 ...

  4. golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题

    golang学习笔记20 一道考察对并发多协程操作一个共享变量的面试题 下面这个程序运行的能num结果是什么? package main import ( "fmt" " ...

  5. [原创]java WEB学习笔记20:MVC案例完整实践(part 1)---MVC架构分析

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. ‎Cocos2d-x 学习笔记(20) ControlButton

    [Cocos2d-x 学习笔记 目录链接] 1. 简介 ControlButton实现了按钮功能,根据触摸的位置和移动的过程可识别9中EventType类型,执行对应的回调函数. 直接继承了Contr ...

  7. Hadoop学习笔记—20.网站日志分析项目案例

    1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了众多技术学习者,每天都有人发帖.回帖,如图1所示. 图1 项目来源网站-技术学习论坛 本次实践的目的就在于 ...

  8. Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

    网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...

  9. Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

随机推荐

  1. Java Swing 探索(一)LayoutManager

    BorderLayout FlowLayout GridLayout GridBagLayout CardLayout BoxLayout 1.BorderLayout java.lang.Objec ...

  2. php namespace use 命名空间

    也可以参考PHP官网说明:http://php.net/manual/en/language.namespaces.importing.php namespace(以下简称ns).在定义了一个ns之后 ...

  3. Linux 测试网速

    Linux 测试网速 1.直接wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip 一个10M的文件, ...

  4. magic_quotes_gpc(魔术引号开关)

    magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post.get.cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊 ...

  5. 3.2html学习笔记之图片

    <img src="" width="50%" alt="加载时候或无法显示时候显示的文字" height="让浏览器预先给 ...

  6. 解决Lost connection to MySQL server at 'reading initial communication packet', 的方法

    今天用heidsql连接mysql时出了问题,提示:Lost connection to MySQL server at 'reading initial communication packet 网 ...

  7. 修改avd路径

    1.比如你要把AVD放在D盘AndroidAVD下面,则预先在D盘下建立一个文件夹 AndroidAVD.必须的.不然设置了环境变量也没有用,因为模拟器不会自动创建该文件夹. 2.在桌面右击“我的电脑 ...

  8. 通过 CALayer 代理方法绘图

    #import "ViewController.h" #define WIDTH 50 #define PHOTO_HEIGHT 150 @interface ViewContro ...

  9. iOS -动态可变参数

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  10. 算法java(Robert Sedgewick)基本API-StdOut.java

    /************************************************************************* * Compilation: javac StdO ...