任何人都可以建议我编写代码以在 C#.net 中编写消息驱动的 bean 来侦听 MQ 并对其进行处理。
问问题
1645 次
2 回答
1
XMS 将与 JMS 非常相似。这是 C# 中使用 XMS 的消息侦听器的“hello, world”示例。请包含来自您的 websphere mq 安装的参考 IBM.XMS.dll。
在我的 32 位 Windows 安装中,它是
c:\Program Files\IBM\WebSphere MQ\bin\IBM.XMS.dll
这个示例假设了一些硬编码设置并且没有错误处理,但我想你明白了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IBM.XMS;
namespace XMSTest
{
class MyXmsApp
{
static void Main(string[] args)
{
MyXmsApp app = new MyXmsApp();
app.Setup();
Console.ReadLine();
}
public void Setup()
{
XMSFactoryFactory xff = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
IConnectionFactory cf = xff.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "localhost");
cf.SetIntProperty(XMSC.WMQ_PORT, 1414);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "CLIENT");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "QM_LOCAL");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_V1);
IConnection conn = cf.CreateConnection();
Console.WriteLine("connection created");
ISession sess = conn.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
IDestination dest = sess.CreateQueue("queue://q");
IMessageConsumer consumer = sess.CreateConsumer(dest);
MessageListener ml = new MessageListener(OnMessage);
consumer.MessageListener = ml;
conn.Start();
Console.WriteLine("Consumer started");
}
private void OnMessage(IMessage msg)
{
ITextMessage textMsg = (ITextMessage)msg;
Console.Write("Got a message: ");
Console.WriteLine(textMsg.Text);
}
}
}
于 2012-07-14T10:20:48.150 回答
0
MDB 将使用 Java。我不知道是否有可以处理用 C# 编写的 MDB 的应用程序服务器。
如果您的想法是使用 C# 应用程序异步接收 WebSphere MQ 消息,那么您可以使用具有消息侦听器的XMS .NET 。
于 2012-07-12T09:17:03.787 回答