[英]IBM MQ Server Setup to Create CCDT file used by .NET Client
[英]Connecting to the MQ Server using CCDT
我正在嘗試使用CCDT
文件中提供的信息連接到MQ
。 我目前可以使用所有詳細信息連接到MQ
,並從隊列中獲取消息或將消息放入隊列。
經過廣泛的谷歌搜索,我一直找不到任何允許我使用CCDT
文件進行連接的示例代碼。
我的一位同事將他的JMS
連接代碼轉發給了我,但是我無法將其移植到C#
。
JAVA
代碼如下-
public class MQTest {
public static void main(String[] args) {
MQQueueManager queueManager = null;
URL ccdtFileUrl = null;
MQMessage mqMessage = null;
//MQPutMessageOptions myPMO = null
try {
String QM = "IB9QMGR";
String QUEUE1 = "TEST";
System.out.println("Starting MQClient Put Program: ");
ccdtFileUrl = new URL("file:///D:/AMQCLCHL.TAB") ;
ccdtFileUrl.openConnection();
queueManager = new MQQueueManager("SDCQMGR.T1", ccdtFileUrl);
System.out.println("Connected to QMGR ");
int openOptions = MQC.MQOO_OUTPUT;
MQQueue InQueue = queueManager.accessQueue(QUEUE1,openOptions,null,null,null);
MQMessage inMessage = new MQMessage();
inMessage.writeString("###Testing####");
InQueue.put(inMessage);
System.out.println("Message Id is :" + inMessage.messageId);
System.out.println(inMessage.toString());
InQueue.close();
queueManager.disconnect() ;
}
catch(MQException ex){
System.out.println("MQ Error - Reason code :" + ex.reasonCode);
}
catch (Exception e){
System.out.println("Error : " + e);
}
}
}
我使用URI
(在C#中)代替URL
來設置文件位置。 (這可能被錯誤地使用。雖然不確定還可以使用什么。)
Uri ccdtFileUrl = new Uri("file:///D:/AMQCLCHL.TAB") ;
但我不能在URI上使用openConnection()
。 也,
queueManager = new MQQueueManager("SDCQMGR.T1",ccdtFileUrl);
給出參數重載異常。 由於C#不支持URI。
我嘗試查找示例,但發現了一些JMS示例。 尋找一些示例代碼以C#連接。
您將需要設置MQCHLLIB
和MQCHLTAB
環境變量以使用CCDT。 您可以從命令提示符app.config或應用程序本身中的代碼中設置這兩個變量。
以下示例演示了CCDT
用法:
MQQueueManager qm = null;
System.Environment.SetEnvironmentVariable("MQCHLLIB", "C:\\ProgramData\\IBM\\MQ\\qmgrs\\QM1\\@ipcc");
System.Environment.SetEnvironmentVariable("MQCHLTAB", "AMQCLCHL.TAB");
try
{
**Hashtable props = new Hashtable();
props.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
qm = new MQQueueManager("QM1",props);**
MQQueue queue1 = qm.AccessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING);
MQMessage msg = new MQMessage();
msg.WriteUTF("Hello this message is from .net client");
queue1.Put(msg);
queue1.Close();
qm.Disconnect();
}
catch (Exception ex)
{
Console.Write(ex);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.