概述


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. angularJs项目实战!02:前端的页面分解与组装

    自从上一篇文章到现在已经有将近一个月的时间,我将精力放在了前端页面分解与组装,和angularjs如何与jquery.bootstrap.D3等一系列其他类库结合使用的经验总结上.由于公司新招了一些员 ...

  2. 终端I/O之stty命令

    所有的终端选项标志,在程序中都可用tcgetattr和tcsetattr函数(http://www.cnblogs.com/nufangrensheng/p/3576682.html)进行检查和更改. ...

  3. Feister network

    在密码学中,Feister network(又叫Feister Function, 一下简称 F函数)是一种用在块加密上的对称结构,很多种块加密算法都是使用这种结构. 优点: 1.加解密的过程非常相似 ...

  4. oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT_数据库的几种锁

    问题如下: SQL> conn scott/tiger@vm_databaseConnected to Oracle Database 11g Enterprise Edition Releas ...

  5. css笔记 css用法:

    前端框架:AdminLTE  https://almsaeedstudio.com/themes/AdminLTE/index2.html CSS学习教程: http://www.divcss5.co ...

  6. linux centos各种问题解决汇总

    1. Linux终端启动图形化程序界面时报错: No protocol specified问题: 这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图 ...

  7. 远程MSMQ

    简介 MSMQ(微软消息队列)是Windows操 作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具.消息队列和电子邮件有着很多相似处,他们都包含多个属性,用于保存消息 ...

  8. 关于变量在for循环内外定义的思考

    在c#或java里面,我们通常会这样写for循环: ;i<;i++) { Console.WriteLine(i); } 前一阵子,我突发奇想,如果按照下面这样写,会不会比上面的运行效率高一些: ...

  9. WPF/Silverlight Layout 系统概述——Measure(转)

    前言 在WPF/Silverlight当中,如果已经存在的Element无法满足你特殊的需求,你可能想自定义Element,那么就有可能会面临重写MeasureOverride和ArrangeOver ...

  10. Web Api2 用户认证模板解析---本地用户

    本文我们将把关注Visual Studio用户认证模板中的 本地用户名/密码帐号特性.他们将其分为了两部分:帐户控制器具备如创建帐号和修改密码等功能:另一部分是在OAuth2认证服务器中进行的认证.我 ...