① 怎么启动websphere mq 资源管理器
安装好了之后,Windows
任务栏会有一个”MQ
资源管理器“,我们右击有菜单,双击能启动管理器,有图形界面操作啊。
如果是
Linux
的话,到它的目录下
bin
去找可执行的文件,应该可以看得出来文件名的规律,比如什么字母
开头什么的,容易猜测到。
② 第三方中间件MQ、websphere、webSphere的作用和应用场景
MQ处理消息的,在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。如果消息队列较多可以用这个
WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,基于J2EE,一般用在电子商务系统。
WebSphere 是一个模块化的平台,可以在许多平台上运行,包括 Intel、Linux 和 z/OS。它可以创建高效的电子商务站点提高了网上交易的质量和数量。 把应用扩展到联合的移动设备上使销售人员可以为客户提供更方便、更快捷的服务。 整合已有的应用并提供自动简捷的业务流程。
③ 如何使用 WebSphere MQ 6.0 资源管理器管理远程队列管理器
1、队列管理器需要定义一个用于连接队列管理器的服务器连接通道。与5.3版本不同的是,这个通道不一定是SYSTEM.ADMIN.SVRCONN。该通道的名字可以随意定义,在设置远程管理的时候在 WebSphere MQ 资源管理器中指定即可。需要注意的是,启动WebSphere MQ 资源管理器的机器上的当前用户可能没有访问队列管理器对象的权限,导致 MQ 资源管理器无法管理远程队列管理器。简单的方法是在定义服务器连接通道的时候设置该通道的 MCAUSER 属性为mqm组中的用户。
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER(单引号mqm单引号)
(郁闷啊,单引号居然会被转掉,记住上面要用单引号)
2、队列管理器需要定义一个名为 SYSTEM.MQEXPLORER.REPLY.MODEL 的临时模型队列以和MQ 资源管理器通信:
DEFINE QM(SYSTEM.MQEXPLORER.REPLY.MODEL) DEFTYPE(TEMPDYN)
3、队列管理器需要启动命令服务器
strmqcsv <QMNAME>
4、队列管理器需要启动侦听:
DEFINE LISTENER(TCP.LSTENER) TRPTYPE(TCP) PORT(1414)
START LISTENER(TCP.LISTENER)
如果远程队列管理器是在Windows下用图形界面建立的,则1、2、3步都已经默认做好了。只需要做第4步即可
完成以上步骤后,就可以在 MQ 资源管理器中按照下面步骤连接队列管理器:
1、打开 WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器文件夹,选择“显示/隐藏队列管理器”:
2、在弹出的“显示/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择直接连接,并输入队列管理器名称(一定要和远程队列管理器名称一致),然后点击下一步:
4、填入主机名或 IP 地址、队列管理器侦听端口、以及服务器连接通道,然后点击完成即可。
间接接连接设置步骤
WebSphere MQ 资源管理器不但可以通过直接连接管理远程队列管理器,还可以通过队列管理器间接管理一个队列管理器。其基本原理为:作为间接队列管理器的队列管理能将消息路由自动到目标队列管理器。其设置方法如下:
仍然延续前面的例子,我们将实现MQ 资源管理器对与 ERP.QM1 在同一台机器的另外一个队列管理器 ERP.QM2 的远程管理。
1、在队列管理器 ERP.QM2 上进行如下设置:
/* 定义/启动侦听 */
DEF LISTENER(TCP.LISTENER) TRPTYPE(TCP) PORT(1415)
START LISTENTER(TCP.LISTENER)
/* 定义与ERP.QM1 同名的传输队列 */
DEF QL(ERP.QM1) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(QM2.TO.QM1)
/* 定义ERP.QM2 到 ERP.QM1 的发送通道*/
DEF CHANNEL(QM2.TO.QM1) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME(9.181.159.231) XMITQ(ERP.QM1)
/* 定义ERP.QM1 到 ERP.QM2 的接收通道*/
DEF CHANNEL(QM1.TO.QM2) CHLTYPE(RCVR) TRPTYPE(TCP)
2、在队列管理器 ERP.QM1 上进行如下设置:
/* 定义与目标队列管理器同名的传输队列 */
DEF QL(ERP.QM2) USAGE(XMITQ) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(QM1.TO.QM2)
/* 定义ERP.QM1 到 ERP.QM2 的发送通道*/
DEF CHANNEL(QM1.TO.QM2) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('9.181.159.231(1415)') XMITQ(ERP.QM2)
/* 定义ERP.QM1 到 ERP.QM2 的接收通道*/
DEF CHANNEL(QM2.TO.QM1) CHLTYPE(RCVR) TRPTYPE(TCP)
3、启动队列管理器 ERP.QM2 的命令服务器:
strmqcsv ERP.QM2
配置远程管理:
1、打开 WebSphere MQ 资源管理器;右键点击队列管理器导航器中的队列管理器文件夹,选择“显示/隐藏队列管理器”:
2、在弹出的“显示/隐藏队列管理器”对话框中选择“添加”按钮:
3、在“添加队列管理器”对话框中选择“使用中间队列管理器进行连接”,并输入队列管理器名称,然后点击下一步:
4、在中间队列管理器下拉选项中选择 ERP.QM1 点击完成即可。
④ 如何利用 Websphere MQ 实现大文件交换
2007年9月21日 - 本文介绍了如何利用 Websphere MQ 提供的机制,实现大文件断点续传,从而可以在低速网络的情况下,不会因为网络的故障而使整个大文件重新传输。本文介绍的这个实现可以大...
⑤ 如何正确设置IBM WebSphere MQ 实现群发消息
1.现在的问题是建立了共享队列INPUTQ 后,在QMGRI里面压根看不到共享队列。。
谁能告诉我为什么么?
大哥你怎么看的?QL CLUSTER属性设置对了吗?
DEF QL(YOURQNAME) CLUSTER(REPOS_NAME)
你看的是QCLUSTER吗?
DIS QC(*)
2.往一个队列管理器里的队列里发消息,
其他的所有对立管理器的本地队列都能收到消息
太简单了,注意RFHUTIL里面有个BIND属性,不要设置成OPEN,必须是NOT_FIXED;或者多次使用amqsputc多次打开,不要一次拼命放消息,都可以看到分发效果,默认负载均衡的算法是ROUND_ROBIN
3.好了,上面的问题解决了。。
不过现在对WebSphere MQ的功能产生了怀疑,
我真想捧腹大笑
4.应用程序只能主动去询问MQ,指定的队列中有消息否。要是这样的话,那不是要轮询指定的队列?难道不能让MQ将消息直接推送到应用程序么?
去看看TRIGGER, MDB有关的资料,我不想费口舌了。当你学会基础之前STOP MAKING JUDGEMENTS.
⑥ 如何使用Web方式监控IBM WebSphere MQ-liu1rui2-ITPUB博客
监控IBM WebSphere MQ是一个长久以来的热门话题。老式的telnet加runmqsc的方法以及资源管理器的方法对客户机都有过多的要求,并且步骤繁琐,资源消耗大。商品 级的监控系统(比如ITCAM)配置复杂功能强大,但是有些客户可能不愿意支付相关费用。
我这里提供一个我制作的开源、免费的基于Web的监控工具,配置极其简单,且不需要除了WMQ本身以及Java Runtime Environment v1.5(或更高版本)以外的任何产品,可谓是超超轻量级的监控工具。此产品支持Web方式和多并发,资源消耗极低。
⑦ 有关websphere mq问题
int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
myQMgr = new MQQueueManager ("QM1");
myQueue = myQMgr.accessQueue("TESTQ", openOptions);
MQMessage myMsg = new MQMessage ();
myMsg.messageFlags = MQC.MQMF_SEGMENTATION_ALLOWED;
MQPutMessageOptions pmo = new MQPutMessageOptions ();
String strMsg = "";
for (int i=0;i<=100;i++)
strMsg = strMsg + "Hello";
myMsg.write(strMsg.getBytes());
myQueue.put(myMsg,pmo);
System.out.println("Put message:\n" + strMsg);
myQueue.close();
myQMgr.disconnect();
QMgrSegReceiver.java:
int openOptions = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING;
myQMgr = new MQQueueManager ("QM1");
myQueue = myQMgr.accessQueue("TESTQ", openOptions);
MQMessage myMsg = new MQMessage ();
MQGetMessageOptions gmo = new MQGetMessageOptions ();
gmo.options = MQC.MQGMO_COMPLETE_MSG;
myQueue.get(myMsg, gmo);
byte[] b = new byte[myMsg.getMessageLength()];
myMsg.readFully(b);
String strMsg = new String(b);
System.out.println("Got message:\n" + strMsg);
myQueue.close();
myQMgr.disconnect();
⑧ 如何在java中使用WebSphere MQ
websphere mq : 用于传输信息 具有跨平台的功能。
1 安装websphere mq 并启动
2 websphere mq 建立 queue Manager (如:MQSI_SAMPLE_QM)
3 建立queue 类型选择 Local类型 的 (如lq )
3 建立channels 类型选择Server Connection (如BridgeChannel)
java 代码如下:
package test.mq;
import com.ibm.mq.*;
/*
* 成功的访问mq 的java 类
*/
public class FirstMqTest {
// public static void main(String[] args[]){
// FirstMqTest first = new FirstMqTest();
// first.test();
// }
public static void main(String args[]){
FirstMqTest first = new FirstMqTest();
first.test();
}
public void test(){
String qManager = "MQSI_SAMPLE_QM"; //QueueManager name
String qName = "lq";//Queue Name
try {
//configure connection parameters
MQEnvironment.hostname="172.16.17.123";//MQ Server name or IP
//MQEnvironment.port=1414;//listenr port
MQEnvironment.channel="BridgeChannel";//Server-Connection Channel
MQEnvironment.CCSID =1381;
// Create a connection to the QueueManager
System.out.println("Connecting to queue manager: "+qManager);
MQQueueManager qMgr = new MQQueueManager(qManager);
// Set up the options on the queue we wish to open
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
// Now specify the queue that we wish to open and the open options
System.out.println("Accessing queue: "+qName);
MQQueue queue = qMgr.accessQueue(qName, openOptions);
// Define a simple WebSphere MQ Message ...
MQMessage msg = new MQMessage();
// ... and write some text in UTF8 format
msg.writeUTF("Hello, World!");
// Specify the default put message options
MQPutMessageOptions pmo = new MQPutMessageOptions();
// Put the message to the queue
System.out.println("Sending a message...");
/*
* 在此测试一下 mq 的传输次列
*
*/
for(int j=0;j< 5;j++){
String str ="test11111111111";
str = str+j;
msg.writeUTF(str);
queue.put(msg, pmo);
}
queue.put(msg, pmo);
// Now get the message back again. First define a WebSphere MQ message
// to receive the data
MQMessage rcvMessage = new MQMessage();
// Specify default get message options
MQGetMessageOptions gmo = new MQGetMessageOptions();
// Get the message off the queue.
System.out.println("...and getting the message back again");
queue.get(rcvMessage, gmo);
// And display the message text...
String msgText = rcvMessage.readUTF();
System.out.println("The message is: " + msgText);
// Close the queue
System.out.println("Closing the queue");
queue.close();
// Disconnect from the QueueManager
System.out.println("Disconnecting from the Queue Manager");
qMgr.disconnect();
System.out.println("Done!");
}
catch (MQException ex) {
System.out.println("A WebSphere MQ Error occured : Completion Code "
+ ex.completionCode + " Reason Code " + ex.reasonCode);
}
catch (java.io.IOException ex) {
System.out.println("An IOException occured whilst writing to the message buffer: "
+ ex);
}
}
}
⑨ 如何使用 WebSphere MQ 的引用消息传输文件
使用引用消息传送文件
以下操作均以admin用户为例:
1. 将admin用户加入administrator和mqm用户组,重新登录;
2. 修改MQ服务的登录用户为admin(如图一),然后重新启动MQSeries服务;
图一
3. 修改MQ DCOM组件的登录用户为“启动用户”,这样当以admin用户使用MQ资源管理器时,该DCOM组件将以admin用户的身份运行(如图二);关闭MQ资源管理器并重新打开,以使修改生效。
图二
图三
4. 启动Queue Manager,以QMA(发送文件,在MACHINE1服务器上)和QMB(接受文件,在MACHINE2服务器上)为例;
5. 创建MQ对象:
1)在QMA上:
define chl(chl1) chltype(sdr) trptype(tcp) conname('machine2') +
xmitq(xmitq) msgdata(FLATFILE) +
msgexit(' D:\IBM\WMQ\Tools\c\Samples\Bin\amqsxrm(MsgExit) ')
define ql(xmitq) usage(xmitq)
define chl(report) chltype(rcvr) trptype(tcp) replace
define qr(qr) rname(dq) rqmname(QMB) xmitq(xmitq) replace
2)在QMB上:
define chl(chl1) chltype(rcvr) trptype(tcp) +
msgexit(' D:\IBM\WMQ\Tools\c\Samples\Bin\amqsxrm(MsgExit) ') +
msgdata(FLATFILE)
define chl(report) chltype(sdr) trptype(tcp) conname('MACHINE1')
xmitq(QMA)
define ql(QMA) usage(xmitq)
注:如果使用MQ提供的接样例程序amqsgrm.exe接收文件,则作以下3)之后的设置,也可另写接受程序直接接收消息并获得已送达数据文件的名称。
3)在QMB上(可选):
define ql(initq)
define pro(proc) applicid('D:\IBM\WMQ\Tools\c\Samples\Bin\amqsgrm')
define ql(dq) initq(initq) process(proc) trigger trigtype(first)
在 MQ 服务中为 QMB 创建“触发器监控器”服务,设定监控队列为 INITQ ;并启动;
6. 在发送端启动发送通道chl1,在接收端启动发送通道report;
此时所有的配置已经完成,可以使用样例中的amqsprm.exe程序发送文件:
amqsprm -m QMA -i d:\tmp\src\srcfile.name -o d:\tmp\dest\destfile.name -q QR -t FLATFILE -w 10
7. 查验d:\tmp\dest\destfile.name文件已经产生。