如何使用c#.net连接ibm websphere mq
可以任何人指导我,通过使用c#.net连接到ibm websphere mq,原因是我试图将消息推送到MQ,请任何给我建议连接使用c#.net
在Windows上有一个IBM提供的dll(自v5.3 Fixpack8),名为amqmdnet.dll,它是一个.NET程序集,为MQSeries提供IBM支持的模型。 ( 参考 )它通常位于C:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dll
如果您需要更多指导,有几个关于如何在CodeProject上与.NET通信的示例:
- http://www.codeproject.com/Articles/12198/IBM-WebSphere-MQ-with-C-GUI-application-that-is-bo
- http://www.codeproject.com/Articles/37807/How-to-Setup-a-Websphere-MQ-with-C-NET-GUI-to-Put
- 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
您可以使用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, ""); cf.setIntProperty(CommonConstants.__Fields.WMQ_PORT, 1414); cf.setStringProperty(CommonConstants.__Fields.WMQ_CHANNEL, " "); cf.setStringProperty(CommonConstants.__Fields.WMQ_QUEUE_MANAGER, " "); var connection = cf.createConnection(); var session = connection.createSession(false, Session.__Fields.AUTO_ACKNOWLEDGE); var queue = session.createQueue("queue:/// "); 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(); } }
MQ产品安装附带的样本数量很多。 请参阅Nmqsput.cs以了解您的情况。 创建新项目时,您需要添加amqmdnet.dll作为参考。
不确定您使用的是哪个版本的MQ。 我假设您使用的是MQ v701。 您可以在MQ安装的tools文件夹下找到示例。
如果在C#中寻找JMS的消息传递方式,那么XMS .NET值得关注。 您可以在与MQ样本相同的文件夹中找到XMS .NET的示例。 XMS .NET参考在这里