2014-02-20 79 views
1

我是新来的WebSphere消息队列technology.I了以下两行代码,它是工作properly.It返回"Connected Succesfully"消息尝试打开消息队列时应用程序出错?

queueManager =new MQQueueManager(QueueManagerName,channelName,connectionName); 
strReturn = "Connected Successfully"; 

但添加另一行代码在它们之间后,抛出一个异常说"Error in the application"

queueManager = new MQQueueManager(QueueManagerName,channelName,connectionName); 
queueManager.Connect(); // <-- added this line 
strReturn = "Connected Successfully"; 

我敢肯定的是,连接细节都OK,因为它connects.but我无法连接到queue.Can任何人帮助我。

回答

3

这是你应该怎么做:

System.String line = "This is a test message embedded in the MQTest01 program."; 
int openOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING; 

try 
{ 
    MQQueueManager _qMgr = new MQQueueManager(qManager); 
    System.Console.Out.WriteLine("MQTest01 successfully connected to " + qManager); 

    MQQueue queue = _qMgr.AccessQueue(outputQName, openOptions, null, null, null); 
    System.Console.Out.WriteLine("MQTest01 successfully opened " + outputQName); 

    MQPutMessageOptions pmo = new MQPutMessageOptions(); 

    MQMessage sendmsg = new MQMessage(); 
    sendmsg.Format = MQC.MQFMT_STRING; 
    sendmsg.Feedback = MQC.MQFB_NONE; 
    sendmsg.MessageType = MQC.MQMT_DATAGRAM; 
    sendmsg.MessageId = MQC.MQMI_NONE; 
    sendmsg.CorrelationId = MQC.MQCI_NONE; 
    sendmsg.WriteString(line); 

    // put the message on the queue 
    queue.Put(sendmsg, pmo); 
    System.Console.Out.WriteLine("Message Data>>>" + line); 

    queue.Close(); 
    System.Console.Out.WriteLine("MQTest01 closed: " + outputQName); 
    _qMgr.Disconnect(); 
    System.Console.Out.WriteLine("MQTest01 disconnected from " + qManager); 
} 
catch (MQException mqex) 
{ 
    System.Console.Out.WriteLine("MQTest01 cc=" + mqex.CompletionCode + " : rc=" + mqex.ReasonCode); 
} 
catch (System.IO.IOException ioex) 
{ 
    System.Console.Out.WriteLine("MQTest01 ioex=" + ioex); 
} 
2

除了构造函数以外,不需要调用其他任何东西来连接到MQ队列管理器。下面的行很好。

queueManager = new MQQueueManager(QueueManagerName,channelName,connectionName); 

有一个在MQQueueManager .NET接口没有Connect方法。我想知道你的应用程序如何编译。请查看WebSphere MQ附带的示例。您可以在\ tools \ dotnet \ samples \ cs \ base中找到它们。

相关问题