s
http://wiki.cns*****.com/pages/viewpage.action?pageId=17402801
1) 同步调用,支持rsf、dubbo两种接口实现;
2) 异步调用,支持IBM MQ、Kafka两种接口实现;
超高性能的 Java 对象消息服务器:Apache Artemis
http://www.open-open.com/lib/view/open1433316890635.html
Apache ActiveMQ Artemis 提供了一个非堵塞架构,实现了超高性能的 Java 对象消息服务器。其核心只依赖一个 netty.jar 文件。该项目的目的是为你的 Java 应用提供一个嵌入式的消息服务。
架构图:
嵌入式消息服务:Apache Artemis
AMQP protocol support
OpenWire support for ActiveMQ 5 clients
STOMP protocol support
HornetQ Core protocol support for HornetQ 2.4,2.5 clients
JMS 2.0 and 1.1 support
High availability with shared store and non shared store (replication)
Flexible Clustering
High performance journal for message persistence
Queue memory limitation
SSL support
Management over JMX, JMS and core protocol
Large message support
Topic hierarchies
Producer flow control
Consumer flow control
Diverts
Last value queue
Message Groups
web test LoadRunner projects
http://lindows.iteye.com/blogs/2250305
D:\TestCase\20170302_windq_artemis
性能测试问题1:
最终性能瓶颈:
源码分析如下:
Rabbit MQ
Apache ActiveMQ 5.9
ActiveMQ 远程监控JMX设置
http://blog.csdn.net/hjxgood/article/details/18706759
Jboss Wildfly 8.1 配置ActiveMQ 5.9 JMX
https://issues.jboss.org/browse/WFLY-794
javax.naming.NameNotFoundException: rmi://127.0.0.1:1090/jmxrmi thrown when creating MBeanServerConnection
jboss Wildfly 8.1 配置rmi
需要在 /opt/jboss/modules/system/layers/base/sun/jdk/main/module.xml 文件中加一行
<path name="com/sun/jndi/url/rmi"/>
jboss才能支持jmxrmi方式访问
ActiveMQ 远程监控JMX设置
http://blog.csdn.net/hjxgood/article/details/18706759
==================================================================
linux下的设置:
1.cat /etc/hosts 检查hosts文件设置,不用127.0.0.1,用实际IP地址
12.32.234.21 localhost localhost.localdomain localhost4 localhost4.localdomain4
2.${ACTIVEMQ_HOME}/conf/activemq.xml 中的 broker 节点增加 useJmx="true" 属性
3.${ACTIVEMQ_HOME}/conf/activemq.xml 中的 managementContext 节点修改成如下样子
<managementContext>
<managementContext createConnector="true" connectorPort="11099" />
</managementContext>
connectorPort="11099"要加上,否则出现java.lang.RuntimeException: java.rmi.ConnectException: Connection refused to host: 127.0.0.1的错误
4.chmod 400 /opt/activemq/conf/jmx.*
注意事项: jmx.password和jmx.access 文件权限必须是当前用户只读(也就是400)否则会使得activemq无法启动,而且没有任何地方报错。
5.activemq设置:
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 "
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"
6.重新启动activemq
/usr/local/activemq/bin/activemq stop
/usr/local/activemq/bin/activemq start
观察端口
netstat –nltp|grep 11099
查看11099端口是否开启监控
使用jconsole连接(path:C:\Program Files\Java\jdk1.6.0_16\bin\jconsole.exe)
运行jconsole.exe
在远程进程连接填入
12.32.234.21:11099
再填入用户名和密码admin和activemq(jmx.password里的内容)即可连接
7.java测试方法:
public static List<QueueInfoVO> getQueueInfoList(String mqIpAddress, String rmiPort) throws Exception {
List<QueueInfoVO> result = new ArrayList<QueueInfoVO>();
RemoteJMXBrokerFacade createConnector = new RemoteJMXBrokerFacade();
// 填写链接属性
System.setProperty("webconsole.jmx.url", "service:jmx:rmi:///jndi/rmi://" + mqIpAddress + ":" + rmiPort
+ "/jmxrmi");
System.setProperty("webconsole.jmx.user", "admin");
System.setProperty("webconsole.jmx.password", "activemq");
// 创建配置
SystemPropertiesConfiguration configuration = new SystemPropertiesConfiguration();
// 创建链接
createConnector.setConfiguration(configuration);
Collection<QueueViewMBean> queueViewList = createConnector.getQueues();
for (QueueViewMBean queueViewMBean : queueViewList) {
QueueInfoVO vo = new QueueInfoVO();
vo.setQueueName(queueViewMBean.getName());// 名称
vo.setQueueSize(queueViewMBean.getQueueSize());// 待消费消息
vo.setConsumerCount(queueViewMBean.getConsumerCount());// 消费者
vo.setEnqueueCount(queueViewMBean.getEnqueueCount());// 入列消息
vo.setDequeueCount(queueViewMBean.getDequeueCount());// 出列消息
result.add(vo);
}
return result;
}
=====================================================================
通过Omegamon XE和Tivoli Monitoring改进WebSphere MQ 集群工作负载平衡
http://space.itpub.net/14789789/viewspace-671156
WebSphere MQ Clustering 来平衡消息工作负载;
Omegamon XE for Messaging 和 IBM Tivoli Monitoring 来监控 WebSphere MQ 队列的状态并自动化配置更改。
//192.168.134.183
Websphere MQ入门教程-使用IBM Websphere MQ
http://sivyer.iteye.com/blog/117267
第一部分 Websphere MQ原理和体系结构... 11
2.1.1 WebSphere MQ对象(objects) 18
2.1.10 MQI(message queue interface)... 30
客户机-服务器环境中的 WebSphere MQ 应用程序... 33
4.2.2WebSphere MQ 脚本(MQSC)命令... 52
4.3.1在 Windows 系统上更改配置信息... 56
4.6 WebSphere MQ 死信队列处理程序... 62
6.2.4 WebSphere MQ对象配置实例... 81
6.3.3设置MaxChannels和MaxActiveChannels属性... 88
第七章 WebSphere MQ 恢复和重新启动... 90
8.1.2忽略WebSphere MQ for Windows的错误代码... 104
8.4.1WebSphere MQ Windows的跟踪... 104
8.4.2WebSphere MQ AIX的跟踪... 106
8.5.1FFST: WebSphere MQ Windows 版... 109
8.5.2FFST: WebSphere MQ UNIX 系统版... 110
10.5.3 打开WebSphere MQ对象... 127
10.5.4 关闭WebSphere MQ对象... 130
11.5.3 关闭WebSphere MQ对象... 148
12.2.2 WebSphere MQ for Java的运行环境... 159
12.3 使用WebSphere MQ for Java. 161
12.4用WebSphere MQ Java API开展工作... 164
12.4.3 处理WebSphere MQ消息... 166
13.5 用WebSphere MQ automatin classes for ActiveX编程... 186
13.5.2 打开WebSphere MQ对象... 187
14.5.2 打开WebSphere MQ对象... 204
附录一 WebSphere MQ的缺省系统对象... 215
MQ从试用版升级为正版的过程
http://menglh.iteye.com/blog/286523
升级的过程只是将原来的rpm软件包卸载,安装正版的和注册的包就可以完成了,
不需要变动任何原来MQ已经有的队列管理器的配置。
用root账户登录进来
1:停止了连接MQ的服务
2:查看安装了MQ的系统里面的MQ有关的rpm包在系统里面的注册名称 用(rpm -q -a命令)
我自己的注册名字为下面的三个:
MQSeriesSamples-6.0.2-3
MQSeriesServer-6.0.2-3
MQSeriesRuntime-6.0.2-3
3:停止mq的侦听和队列管理器
停止侦听
endmqlsr -m XXXXXX :XXXXXX为队列管理器名称
停止队列管理器
endmqm XXXXXX
4:重起MQ机器(由于以前的操作可能没有关闭runmqsc命令,
导致有进程在用MQ,无法卸载,所以重起电脑。如果你的机子没有此类问题,请跳过。)
5:卸载rpm包(卸载的时候可能包和包之间有依赖关系,卸载的时候会有提示,可能根据提示来进行卸载操作)
我自己的卸载顺序如下:
rpm -e MQSeriesServer-6.0.2-3
rpm -e MQSeriesRuntime-6.0.2-3.3
rpm -e MQSeriesSamples-6.0.2-3
6:解压缩正版,安装对应的rpm包。
tar -xzvf VVVVVV.tar.gz :"VVVVVV.tar.gz”为正版的包名称
./mqlicense.sh -accept
安装的时候也会有依赖关系,根据提示来进行。
rpm -ivh MQSeriesRuntime-6.0.2-3.3
rpm -ivh MQSeriesServer-6.0.2-3
rpm -ivh MQSeriesSamples-6.0.2-3
7:注册
我安装的MQ有一个专门注册的"ZZZZZ.tar.gz"文件,安装了"VVVVVV.tar.gz”包里面的什么rpm包就选择"ZZZZZ.tar.gz"里面的对应的rpm包进行同样的安装,就相当于注册了。
8:安装完成后显示的版本信息(dspmqver)
Name: WebSphere MQ
Version: 6.0.2.4
CMVC level: p600-204-080509
BuildType: IKAP - (Production)
9:切换到mq的用户进行启动"队列管理器"和"侦听","通道"的操作吧,一切配置都没有动,还和原来一样,正版的安装到此结束了
websphere mq常用命令
http://menglh.iteye.com/blog/286524
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止
显示队列管理器
dspmq –m QmgrName
运行MQ命令
runmqsc QmgrName
如果是默认队列管理器,可以不带其名字
往队列中放消息
amqsput QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
从队列中取出消息
amqsget QName QmgrName
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
停止侦听
endmqlsr -m QmgrName
下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令)
定义持久信队列
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
设定队列管理器的持久信队列
ALTER QMGR DEADQ(QNAME)
定义本地队列
DEFINE QL(QNAME) REPLACE
定义别名队列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(QMGRNAME) +
XMITQ(QTNAME)
定义模型队列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定义本地传输队列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(PROCESSNAME) REPLACE
创建进程定义
DEFINE PROCESS(PRONAME) +
DESCR(‘STRING’)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
创建发送方通道
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
创建接收方通道
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
创建服务器连接通道
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
显示队列的所有属性
DISPLAY QUEUE(QNAME) [ALL]
显示队列的所选属性
DISPLAY QUEUE(QNAME) DESCR GET PUT
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
显示队列管理器的所有属性
DISPLAY QMGR [ALL]
显示进程定义
DISPLAY PROCESS(PRONAME)
更改属性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
删除队列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)
清除队列中的所有消息
CLEAR QLOCAL(QNAME)
以下是一些高级配置的命令:
amqmcert 配置SSL证书
amqmdain 配置windows上的MQ服务
crtmqcvx 转换数据
dmpmqaut 转储对象权限管理
dmpmqlog 转储日志管理
dspmq 显示队列管理器 // 192.168.134.183
dspmqaut 显示打开对象的权限
dmpmqcap 显示处理程序容量和处理程序数
dspmqcsv 显示命令服务器状态
dspmqfls 显示文件名
dspmqtrc 跟踪MQ输出(HP-UNIX LINUX Solaris)
dspmqrtn 显示事务的详细信息
endmqcsv 停止队列管理器上的命令服务器
strmqcsv 启动队列管理器上的命令服务器
endmqtrc 停止跟踪
rcdmqimg 向日志写对象的映像
rcmqobj 根据日志中的映像重新创建一个对象
rsvmqtrn 提交或逆序恢复事务
关于Jboss下mqjms.log日志问题.
http://wiki.cns*****.com/display/~11050146
http://wiki.cns*****.com/pages/viewpage.action?pageId=20906160
IBM MQ logging 采用 IBM common services 记录日志. 可设置如下JVM参数
"com.ibm.msg.client.commonservices.trace.status" value="OFF"
"com.ibm.msg.client.commonservices.trace.level" value="0"
"com.ibm.msg.client.commonservices.trace.append" value="true"
"com.ibm.msg.client.commonservices.trace.startup" value="true"
"com.ibm.msg.client.commonservices.trace.maxBytes" value="-1"
"com.ibm.msg.client.commonservices.trace.limit" value="2097152"
"com.ibm.msg.client.commonservices.trace.count" value="1"
"com.ibm.msg.client.commonservices.trace.standalone" value="true"
"com.ibm.msg.client.commonservices.trace.errorStream" value="${jboss.server.log.dir}/wmq-trace-error.log"
"com.ibm.msg.client.commonservices.trace.outputName" value="${jboss.server.log.dir}/wmq-trace.log"
"com.ibm.msg.client.commonservices.log.outputName" value="${jboss.server.log.dir}/wmq.log"
"com.ibm.msg.client.commonservices.log.status" value="ON"
"com.ibm.msg.client.commonservices.log.maxBytes" value="-1"
"com.ibm.msg.client.commonservices.log.limit" value="2097152"
"com.ibm.msg.client.commonservices.log.count" value="1"
"com.ibm.msg.client.commonservices.log.append" value="true"
"com.ibm.msg.client.commonservices.ffst.suppress" value="-1"
例如:
-Dcom.ibm.msg.client.commonservices.log.count=5 -Dcom.ibm.msg.client.commonservices.log.maxBytes=1000000
D:\TestCase\20161031_1111_mq_esb
was_mq_持久化表示内存到磁盘落盘动作.png,容易造成disk busy,性能可能会有所下降,需要关注,带来的好处就是宕机再起来MQ,能保证数据不会丢失。
was_mq_长连接会话共享_可以原本100个长连接共享变为10个长连接.png
was_mq_最大队列深度4000左右.png / WAS MQ 7.0.1.12 ,最大队列深度3500左右
http://dl2.iteye.com/upload/attachment/0121/2386/8b8d9225-33df-366b-8fd4-da46c327b82a.png
http://dl.iteye.com/topics/download/40733a57-8d1f-3cc9-9991-72b6baecb913
WebSphere_MQ_Linux_v7.1_Performance_Evaluations__mpl7.zip / mpl7.pdf
http://dl.iteye.com/topics/download/50fffb73-bfb1-37f0-9b7d-a13065795ca8
W:\TestCase\20161031_1111_mq_esb
C:\Users\Lindows\Desktop\tc_testsend_ibm_mq\action.java
/* * LoadRunner Java script. (Build: _build_number_) * * Script Description: * */ import lrapi.lr; import com.ibm.mq.*; public class Actions { // Variables used by more than one method String queueMgrName = "OTHER_NEW1_QM"; String putQueueName = "TESTESB"; //String getQueueName = "TEST.REPLY.QUEUE"; MQQueueManager queueMgr = null; MQQueue getQueue = null; MQQueue putQueue = null; MQPutMessageOptions pmo = new MQPutMessageOptions(); MQGetMessageOptions gmo = new MQGetMessageOptions(); MQMessage requestMsg = new MQMessage(); MQMessage responseMsg = new MQMessage(); String msgBody = null; public int init() throws Throwable { // Open a connection to the queue manager and the put/get queues try { // As values set in the MQEnvironment class take effect when the // MQQueueManager constructor is called, you must set the values // in the MQEnvironment class before you construct an MQQueueManager object. MQEnvironment.hostname="10.27.210.25"; MQEnvironment.port=1601; MQEnvironment.channel = "CHANNEL1"; queueMgr = new MQQueueManager(queueMgrName); // Access the put/get queues. Note the open options used. putQueue = queueMgr.accessQueue(putQueueName, MQC.MQOO_BIND_NOT_FIXED | MQC.MQOO_OUTPUT); //getQueue= queueMgr.accessQueue(getQueueName, MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT); } catch(Exception e) { lr.error_message("Error connecting to queue manager or accessing queues."); lr.exit(lr.EXIT_VUSER, lr.FAIL); } return 0; }//end of init public int action() throws Throwable { // This is an XML message that will be put on the queue. Could do some fancy // things with XML classes here if necessary. // The message string can contain {parameters} if lr.eval_string() is used. msgBody = lr.eval_string("<MbfService><input1><MbfHeader><ServiceCode>TestESB</ServiceCode><Operation>esbmqTest</Operation><AppCode>OMSD</AppCode><UId>749137bc7ffe4031898733fe68decfed4fc58f98e8ac48f1</UId><AuthId>POAS;bv15Z0a83Uc3</AuthId></MbfHeader><MbfBody><opType>M</opType><cart2No>2283575567253458</cart2No><b2cOrderId>11011982886</b2cOrderId><orderDate>2016-10-30</orderDate><orderTime>14:36:45</orderTime><orderSource>TMALL</orderSource><orderChannel>MOBILE</orderChannel><orderItemQty>1</orderItemQty><payItemQty>2</payItemQty><orderSaleTotalAmt>9.9</orderSaleTotalAmt><realPayAmt>9.89</realPayAmt><srvFee>0.0</srvFee><transportFee>0.0</transportFee><needInvoiceFlag>Y</needInvoiceFlag><receiveOrderType>1</receiveOrderType><memType>e</memType><memInCardNo>6116427259</memInCardNo><memName>0822zhaoxing</memName><invoiceType>02</invoiceType><invoiceTitle>璧垫槦</invoiceTitle><list0><payMethodInvoiceHead><parentPaymentCode>69</parentPaymentCode><paymentCode>6901</paymentCode><payAmount>0.01</payAmount></payMethodInvoiceHead><payMethodInvoiceHead><parentPaymentCode>42</parentPaymentCode><paymentCode>4232</paymentCode><payAmount>9.89</payAmount></payMethodInvoiceHead></list0><list1><orderItem><referencePrice>24.6</referencePrice><cartItemNo>2283575567253458</cartItemNo><b2cOrderItemId>11014882503</b2cOrderItemId><orderType>ZOR</orderType><posOrderId>Z15783118</posOrderId><orderItemType>10</orderItemType><distChannel>50</distChannel><payChannel>PC</payChannel><saleOrg>1900</saleOrg><saleOrgStore>858C</saleOrgStore><storeCode>858C</storeCode><shippingCondition>01</shippingCondition><cmmdtyCode>000000000131225835</cmmdtyCode><cmmdtyName>浜旂緤瀹濆疂涓撶敤娲楄。娑?00ml脳3琚嬪疂瀹濅笓鐢ㄨ。鐗╂竻娲佸墏琛ュ厖瑁?/cmmdtyName><cmmdtyDivsion>10</cmmdtyDivsion><cmmdtyCtgry>R9003453</cmmdtyCtgry><cmmdtyBand>00019G754</cmmdtyBand><haveSrvFlag>0</haveSrvFlag><haveExtendFlag>0</haveExtendFlag><price>9.9</price><saleQty>1</saleQty><saleUnit>SO1</saleUnit><totalAmount>9.9</totalAmount><couponTotalMoney>0.01</couponTotalMoney><managerCardMoney>0.0</managerCardMoney><pointAmount>0.0</pointAmount><voucherTotalMoney>0.0</voucherTotalMoney><srvFee>0.0</srvFee><transportFee>0.0</transportFee><provideAddress>D017</provideAddress><stockArea>0001</stockArea><supplierCode>0010058636</supplierCode><shopCode>store001</shopCode><comCharacter>2</comCharacter><prmtCode>T100018746</prmtCode><purchaseFlag>0</purchaseFlag><deliveryArea>9120201</deliveryArea><agencyFlag>J</agencyFlag><hopeArrivalDate>2016-10-31</hopeArrivalDate><hopeArrivalTime>18:00:00</hopeArrivalTime><estimateOutDate>2016-10-30</estimateOutDate><estimateOutTime>00:00:00</estimateOutTime><verifyCode>1234</verifyCode><payItemQty>2</payItemQty><invoicePrintAddress>D017</invoicePrintAddress><srvSaleCount>1.0</srvSaleCount><srvProvider>鑻忓畞</srvProvider><srvAddress>0;;姒嗘灄甯?绁炴湪鍘?绁炴湪闀?;;;绁炴湪闀囩閫氳矾涓氬叕鍙稿皬鍖轰竴鍙锋ゼ浜屽崟鍏?01</srvAddress><srvAreaCode>9120201</srvAreaCode><list0/><list1/><list2><payMethodOrderItem><parentPayCode>69</parentPayCode><payCode>6901</payCode><payAmount>0.01</payAmount><payDate>2016-10-30</payDate><payTime>14:36:56</payTime></payMethodOrderItem><payMethodOrderItem><parentPayCode>42</parentPayCode><payCode>4232</payCode><payAmount>9.89</payAmount><payDate>2016-10-30</payDate><payTime>14:36:56</payTime></payMethodOrderItem></list2><transactionobjectitems><transactionobjectitem><transactionobject>10</transactionobject><consignee>璧垫槦</consignee><mobPhoneNum>15029730858</mobPhoneNum><zipCode>719300</zipCode><cityCode>912</cityCode><deliveryAddrMain>0;;姒嗘灄甯?绁炴湪鍘?绁炴湪闀?;;;绁炴湪闀囩閫氳矾涓氬叕鍙稿皬鍖轰竴鍙锋ゼ浜屽崟鍏?01</deliveryAddrMain></transactionobjectitem></transactionobjectitems><dealtypeItems><dealtypeItem><dealtype>01</dealtype><dealtypeflag>11</dealtypeflag></dealtypeItem></dealtypeItems><sourceAttributionItems/></orderItem></list1></MbfBody></input1></MbfService>"); // Clear the message objects on each iteration. requestMsg.clearMessage(); responseMsg.clearMessage(); // Create a message object and put it on the request queue lr.start_transaction("test_message"); try { requestMsg.format = MQC.MQFMT_STRING; // Set message format. The application message data can be either an SBCS string (single-byte character set), or a DBCS string (double-byte character set). requestMsg.writeString(msgBody); // message payload putQueue.put(requestMsg, pmo); } catch(Exception e) { lr.error_message("Error sending message."); lr.exit(lr.EXIT_VUSER, lr.FAIL); } lr.end_transaction("test_message", lr.AUTO); return 0; }//end of action public int end() throws Throwable { // Close all the connections try { putQueue.close(); queueMgr.close(); } catch(Exception e) { lr.error_message("Exception in closing the connections"); lr.exit(lr.EXIT_VUSER, lr.FAIL); } return 0; }//end of end }
依赖的jar包列表如下:
com.ibm.mq.commonservices.jar
com.ibm.mq.headers.jar
com.ibm.mq.jmqi.jar
com.ibm.mq.jar
connector.jar
end
相关推荐
【IBM WebSphere MQ安装包详解】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级的消息中间件产品。它在信息技术领域扮演着至关重要的角色,为跨网络、操作系统和应用程序提供了高效、安全的...
IBM WebSphere MQ入门教程 IBM WebSphere MQ 是一种基于消息队列的中间件,用于实现不同的应用程序之间的异步通信。下面是对 IBM WebSphere MQ 的入门教程的总结,涵盖了 WebSphere MQ 的原理、体系结构、重要特点...
IBM WebSphere MQ 技术白皮书 IBM WebSphere MQ 技术白皮书是 IBM 公司发布的一份技术白皮书,旨在介绍 IBM WebSphere MQ 产品的技术特性、架构和价值。下面是根据白皮书的内容生成的相关知识点。 概述 在概述...
在IT行业中,IBM WebSphere MQ(也称为IBM MQ)是一种广泛使用的中间件,它允许应用程序在不同的网络协议、操作系统和硬件之间可靠地交换消息。在这个“Java下操作IBM Websphere MQ的项目案例”中,我们将探讨如何...
【IBM WebSphere MQ安装使用教程详细图解】 IBM WebSphere MQ,简称MQ,是一款由IBM提供的消息中间件,它允许应用程序之间可靠地交换信息,无论它们位于何处或使用何种操作系统。本教程旨在指导用户在Windows系统上...
IBM websphereMQ 8.0.0.5 lib包; IBM\WebSphere MQ\java\lib下的文件 文件列表: com.ibm.mq.jms.Nojndi.jar com.ibm.mq.pcf.jar com.ibm.mq.allclient.jar com.ibm.mq.postcard.jar com.ibm.mq.axis2.jar ...
在本文中,我们将深入探讨如何使用C#编程语言与IBM WebSphere MQ进行交互,实现消息的发送和接收。IBM WebSphere MQ(前身为MQSeries)是一种企业级的消息中间件,它提供了一种可靠且可扩展的方式,使得应用程序可以...
Java连接IBM WebSphere MQ 7处理队列信息所需jar包,从安装目录直接打的包。主要包括: /com.ibm.mq.commonservices.jar /com.ibm.mq.defaultconfig.jar /com.ibm.mq.fta.jar /com.ibm.mq.headers.jar /...
IBM WebSphere MQ 8.0 linux 安装包 part1
IBM Websphere MQ入门教程 IBM Websphere MQ是IBM公司开发的一款消息队列中间件,旨在提供一个可靠的异步通信机制,实现不同应用程序之间的数据交换和集成。下面是该教程的知识点总结: 中间件的概念和优点 ...
【配置IBM WEBSPHERE MQ触发器】是IBM企业级消息中间件产品中的一项重要功能,它允许用户在消息进入或离开队列时自动执行特定的操作,例如启动应用程序、执行脚本或者更新数据库。这一特性使得MQ系统能更好地与业务...
IBM WebSphere MQ 8.0 linux 安装包 part3,IBM WebSphere MQ 8.0 linux 安装包 part3
**IBM WebSphere MQ v6.0 知识点详解** IBM WebSphere MQ,原名IBM MQSeries,是IBM推出的一款企业级消息中间件产品。它为应用程序之间提供可靠的、安全的数据传输服务,允许不同系统、不同平台之间的数据通信,极...
### IBM Websphere MQ 教程之备份与恢复 #### 实验目的 本教程旨在让学员深入了解IBM Websphere MQ中的消息生命周期管理及其备份恢复机制。通过一系列实践操作,学员能够掌握如何创建线性日志队列管理器、向本地...
【标题】:“Websphere MQ入门教程-使用IBM Websphere MQ” 【正文】: IBM WebSphere MQ(原名MQSeries)是IBM提供的一款企业级的消息中间件产品,它允许不同应用程序、系统和网络在不同时区和平台之间交换消息。...
【IBM WebSphere MQ入门教程】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级消息中间件产品,它提供了一种可靠、高效、安全的方式在不同应用程序之间传输数据,支持多种操作系统和编程语言,...
IBM WebSphere MQ(旧称MQSeries)是一款由IBM公司开发的企业级消息中间件,它允许应用程序之间通过网络发送和接收消息,确保数据的可靠传输。在Java开发环境中,与IBM WebSphere MQ进行交互通常需要使用特定的Java ...
IBM WebSphere MQ是IBM公司开发的消息中间件产品,它能够保证消息在分布式系统中的可靠传递。在IBM WebSphere MQ中,消息持久化是一个重要的特性,它确保了当队列管理器发生异常时,消息数据的安全性和一致性。以下...