IBM MQ问题

shaosijun2004 2011-10-24 10:34:11
说说我的逻辑认识
客户端:
建立队列管理器(Client)--->建立接收队列(C_RCV_LOCAL)--->建立本地发送队列--->建立远端发送队列(C_SND_REMOTE)-->建立发送通道(serverIP 9999)--->开启监听9998
DEF CHL(’JAVA.CHANNEL’) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER(’ ’) DESCR(’Sample channel for WebSphere MQ classes for Java’)建立样本通道
runmqlsr -t tcp -m Client -p 1414 打开监听


服务端:
建立队列管理器(Server)--->建立接收队列(S_RCV_LOCAL)--->建立本地发送队列--->建立远端发送队列(S_SND_REMOTE)-->建立发送通道(clientIP 9998)--->开启监听9999
DEF CHL(’JAVA.CHANNEL’) CHLTYPE(SVRCONN) TRPTYPE(TCP) MCAUSER(’ ’) DESCR(’Sample channel for WebSphere MQ classes for Java’)建立样本通道
runmqlsr -t tcp -m Client -p 1415

java:
客户端:
	//Client
mqc = new MQCommClient();
mqc.setHostName("127.0.0.1");
mqc.setChannel("JAVA.CHANNEL");
mqc.setCcsid(1386);
mqc.setPort(1414);
mqc.setQueMgrName("Client");
mqc.setRemQueName("C_SND_REMOTE");
mqc.setLocQueName("C_RCV_LOCAL");
mqc.setTimeout(30);
mqc.init();

new Thread(){
@Override
public void run() {
// TODO Auto-generated method stub
MQCommServer server = new MQCommServer();
server.setHostName("127.0.0.1");
server.setChannel("JAVA.CHANNEL");
server.setCcsid(1386);
server.setPort(1415);
server.setQueMgrName("Server");
server.setRemQueName("S_SND_REMOTE");
server.setLocQueName("S_RCV_LOCAL");
server.setTimeout(30);
server.init();

while(!Thread.interrupted())
{
try{
String id = server.readMessage();
server.writeMessage(id);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
try {
Thread.sleep(10000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
}
}.start();


请问这个逻辑有问题吗?
我现在的情况是,C端往队列里可以写东西,但是S端收不到,逻辑哪里不对的?
在mqm中建立了 互连的ip port, 启的1414 1415 是对java 程序调用的通道吧
还有一个问题是:
	MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;
gmo.options = gmo.options + MQC.MQGMO_WAIT;
gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;
gmo.options = gmo.options + MQC.MQMO_MATCH_MSG_ID;
gmo.waitInterval = timeout*1000;

// 从队列中取出消息
recvQueue.get(retrieve, gmo);

这个C端的timeout 没起到作用,直接返回2033了
求大侠给力……
...全文
301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaosijun2004 2011-10-25
  • 打赏
  • 举报
回复
......没招,把msgID去了,用的异步来处理……问题解决……oh my god
居然无人来拿分……
自动结贴
shaosijun2004 2011-10-24
  • 打赏
  • 举报
回复
我了个去,都没人……来抢分啦
只有一个问题了


这个C端的timeout 没起到作用,直接返回2033了
谁给个主意

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧