1、IBM MQ服務端配置(模擬服務端)
a)打開“WebSphere MQ資源管理器”,新建隊列管理器,名稱為fwd_dlgl_name(服務器端mq隊列管理器名稱),其余采用默認設置;
b)在fwd_dlgl_name(服務器端mq隊列管理器名稱) 隊列管理器中創建本地隊列,名稱為fwd_bddl_name(服務器端mq本地隊列名稱);
c)創建傳輸隊列,名稱為fwd_csdl_name(服務器端mq本地傳輸隊列名稱)(新建時選擇“本地隊列”,將“用法”設置為“傳輸”);
d)創建遠程隊列定義,名稱為fwd_ycdl_name(服務器端mq遠程隊列名稱),指定遠程隊列名稱為khd_bddl_name(客戶端端mq本地隊列名稱),遠程隊列管理器名稱為khd_dlgl_name(客戶端mq隊列管理器名稱),傳輸隊列名稱為fwd_csdl_name(服務器端mq本地傳輸隊列名稱);
e)創建發送方通道,名稱為yc_kh(服務端發送到客戶端的通道名稱),傳輸協議為TCP/IP,連接名稱為客戶端ip地址(客戶端mq的端口),傳輸隊列為fwd_csdl_name(服務器端mq本地傳輸隊列名稱);
f)創建服務器連接通道,名稱為DC.SVRCONN,采用默認設置(該通道主要給后面的測試程序使用)。
g)服務端發送消息
找到 遠程隊列定義 fwd_ycdl_name,右鍵,如下圖

選擇“放入測試消息...”,如下圖:

在 消息數據 中錄入測試數據 ,點擊 “放入消息”按鈕 發送消息到客戶端。
2、IBM MQ 客戶端配置
a)打開“WebSphere MQ資源管理器”,新建隊列管理器,名稱為khd_dlgl_name(客戶端mq隊列管理器名稱),其余采用默認設置;
b)在khd_dlgl_name(客戶端mq隊列管理器名稱)隊列管理器中創建本地隊列,名稱為khd_bddl_name(客戶端端mq本地隊列名稱);
c)創建接受方通道,名稱為yc_kh(必須與服務端發送到客戶端的通道名稱相同),采用默認設置;
d)創建服務器連接通道,名稱為DC.SVRCONN,采用默認設置。
e)客戶端讀取消息代碼
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
public class IBMQRead {
/** 變量 */
private final static int OPENOPTIONS = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE;
static{
MQEnvironment.hostname = "192.168.0.158";
MQEnvironment.channel = "DC.SVRCONN";
MQEnvironment.port = 1414;
MQEnvironment.CCSID = 1381;
}
public static void main(String[] args) {
try {
//初始化
MQQueueManager queueManager = new MQQueueManager("khd_dlgl_name");//隊列管理器名稱
// 隊列名稱
MQQueue mqQueue = queueManager.accessQueue("khd_bddl_name", OPENOPTIONS, null, null, null);
//獲取管道深度
int currentDepth = mqQueue.getCurrentDepth();
//進行遍歷管道中的所有數據內容
while(currentDepth-- > 0){
// 要讀的隊列的消息
MQMessage mqMessage = new MQMessage();
mqQueue.get(mqMessage);
int dataLength = mqMessage.getDataLength();
//得到字符串
String readXml = mqMessage.readStringOfByteLength(dataLength);
System.out.println(readXml);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
IBM MQ所需的 jar包
<!-- IBMMQ -->
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>jmqi</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>headers</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm</groupId>
<artifactId>mq</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>jms</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>dhbcore</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm</groupId>
<artifactId>mqjms</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>connector</artifactId>
<version>7.5</version>
</dependency>
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>commonservices</artifactId>
<version>7.5</version>
</dependency>
