如何使用c#.net连接ibm websphere mq

sha*_*nnu 10 c# ibm-mq

任何人都可以指导我,使用c#.net连接ibm websphere mq,原因是我试图将消息推送到MQ,请使用c#.net给我建议连接

nyb*_*ler 15

在Windows上有一个IBM提供的dll(自v5.3 Fixpack8),名为amqmdnet.dll,它是一个.NET程序集,为MQSeries提供IBM支持的模型.(参考)它通常位于C:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dll

如果您需要更多指导,有几个关于如何在CodeProject上与.NET通信的示例:

  1. http://www.codeproject.com/Articles/12198/IBM-WebSphere-MQ-with-C-GUI-application-that-is-bo
  2. http://www.codeproject.com/Articles/37807/How-to-Setup-a-Websphere-MQ-with-C-NET-GUI-to-Put
  3. http://www.codeproject.com/Articles/6212/C-and-WebSphere-MQ-formerly-MQSeries-Client-Server

此外,这个演练可能会有所帮助:http://www.c-sharpcorner.com/UploadFile/pk_khuman/AquickstartCsharpWebsphereMQ07112006024017AM/AquickstartCsharpWebsphereMQ.aspx


Dan*_*nny 12

您可以使用IBM提供的.NET库进行连接; 但是,它们要求您在部署解决方案的每台服务器上安装WebSphere MQ Client.(瘸)

如果使用WebSphere MQ,则必须使用WebSphere MQ Client V7.0.1.0或更高版本安装用于运行XMS应用程序的计算机

您可以通过使用IKVM(www.ikvm.net)转换一些Java库来避免这种情况.

整个过程只需要大约15分钟.

您仍然需要在开发盒上下载并安装客户端,以便获取JAR文件.转换后,您可以卸载客户端.

这是步骤

1)获取JAR

  • 下载WebSphere MQ V7.5客户端:http://www-304.ibm.com/support/docview.wss?uid = swg24032744
  • 安装MQ客户端:您只需要安装"Java和.Net Messaging和Web服务".
  • 特征

2)转换JAR

  • 下载IKVM:www.ikvm.net
  • 提取IKVM文件(例如c:\ tools\IKVM).
  • 打开Win命令提示符
    • 执行命令:set path =%path%; c:\ tools\IKVM\bin
    • 执行命令:cd C:\ Program Files(x86)\ IBM\WebSphere MQ\java\lib
    • 执行命令:ikvmc -target:library -sharedclassloader {com.ibm.mq.jmqi.jar} {com.ibm.mqjms.jar} {dhbcore.jar} {jms.jar}

3)复制JAR

  • 打开Windows资源管理器.
  • 导航到:C:\ Program Files(x86)\ IBM\WebSphere MQ\java\lib
  • 复制以下文件:
    • **com.ibm.mq.jmqi.dll
    • com.ibm.mqjms.dll
    • jms.dll**
  • 导航至:c:\ tools\IKVM\bin
  • 复制以下文件:
    • **IKVM.Runtime.dll
    • IKVM.OpenJDK.Core.dll**
  • 将复制的文件移动到项目/解决方案中的第三方文件夹.

4)参考JAR

  • 引用复制的JAR.请注意,您可以跳过上面的上一个复制JAR步骤,如果您愿意,可以直接引用这些库.目的是表明没有其他资源可以正确执行.
  • 项目参考

以下是如何使用库的一个非常简单的示例.

using com.ibm.msg.client.jms;
using com.ibm.msg.client.wmq.common;
using javax.jms;
using System;

class Program
{
    static void Main(string[] args)
    {
        var ff = JmsFactoryFactory.getInstance(JmsConstants.__Fields.WMQ_PROVIDER);
        var cf = ff.createConnectionFactory() as JmsConnectionFactory;

        cf.setIntProperty(CommonConstants.__Fields.WMQ_CONNECTION_MODE, CommonConstants.__Fields.WMQ_CM_CLIENT);
        cf.setStringProperty(CommonConstants.__Fields.WMQ_HOST_NAME, "<YOUR INFO>");
        cf.setIntProperty(CommonConstants.__Fields.WMQ_PORT, 1414);
        cf.setStringProperty(CommonConstants.__Fields.WMQ_CHANNEL, "<YOUR INFO>");
        cf.setStringProperty(CommonConstants.__Fields.WMQ_QUEUE_MANAGER, "<YOUR INFO>");

        var connection = cf.createConnection();
        var session = connection.createSession(false, Session.__Fields.AUTO_ACKNOWLEDGE);

        var queue = session.createQueue("queue:///<YOUR INFO>");
        var producer = session.createProducer(queue);

        var msg = session.createTextMessage();
        msg.setStringProperty("JMSXGroupID", Guid.NewGuid().ToString());
        msg.setIntProperty("JMSXGroupSeq", 1);
        msg.setBooleanProperty("JMS_IBM_Last_Msg_In_Group", true);
        msg.setText("Hello World");

        connection.start();
        producer.send(msg);

        producer.close();
        session.close();
        connection.close();
    }
}
Run Code Online (Sandbox Code Playgroud)