IBM MQ 6.0中设置两个队列,(远程队列、通道之类都不设置)。
队列管理器是XIR_QM_1502
队列名称是ESBREQ
IP地址是10.23.117.134(远程的一台电脑,跟我的电脑不在一个局域网内)
端口1414
CCSID 1208
MQ配置可以参考这个,有配图http://wenku.baidu.com/view/06d108d0360cba1aa811daa3.html
程序如下,发送线程两个,接收线程一个。接收完毕后就结束。
/*
* 创建日期 2012-7-10
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package yerasel;
/**
* @author Fenglb E-mail:56553655@163.com
* @version 创建时间:2009-4-30 下午04:13:38 类说明
*/
import java.io.IOException;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
interface SomeConstants {
String qManager = "XIR_QM_1502";//"XIR_QM"; //QueueManager name
String qName = "ESBREQ";// Queue Name
String strIP = "10.23.117.134";//"10.24.28.139";//"10.24.28.102";
int iPort = 1502;//1414;
String strChl = "SYSTEM.DEF.SVRCONN";// Server-Connection Channel
int iCCSID = 1208;
}
class Sender implements Runnable, SomeConstants {
public void run() {
sendMessage();
}
public void sendMessage() {
String name = Thread.currentThread().getName();
System.out.println("进入线程" + name);
MQQueueManager qMgr = null;
// configure connection parameters
MQEnvironment.hostname = strIP;
// Server name or IP
MQEnvironment.port = iPort;
MQEnvironment.channel = strChl;
MQEnvironment.CCSID = iCCSID;
// java程序连接mq的方式有两种,一是客户机方式,一是绑定方式,
// 默认是客户机方式,当mq部署在本地的时候,就需要用绑定方式