web-dev-qa-db-ja.com

c#.netを使用してibm webspheremqに接続する方法

c#.netを使用してibm websphere mqに接続するために、誰かが私をガイドできますか?メッセージをMQにプッシュしようとしている理由は、c#.netを使用して接続するための提案を教えてくれますか?

10
shannu

Windowsにはamqmdnet.dllと呼ばれるIBM提供のdll(v5.3 Fixpack8以降)があります。これは、IBMがサポートするMQSeriesのモデルを提供する.NETアセンブリです。 ( 参照 )通常はC:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dllにあります

より多くの方向性が必要な場合は、CodeProjectで.NETからMQと通信する方法に関するいくつかの例があります。

  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

15
nybbler

IBMが提供する.NETライブラリーを使用して接続できます。ただし、ソリューションをデプロイするすべてのサーバーにWebSphereMQクライアントをインストールする必要があります。 (ラメ)

WebSphere MQを使用している場合、XMSアプリケーションの実行に使用されるマシンは、WebSphere MQ ClientV7.0.1.0以降とともにインストールされる必要があります。

IKVM(www.ikvm.net)を使用していくつかのJavaライブラリを変換することで、これを回避できます。

プロセス全体は約15分しかかかりません。

JARファイルを取得できるように、開発ボックスにクライアントをダウンロードしてインストールする必要があります。 変換後、クライアントをアンインストールできます。

手順は次のとおりです

1)JARを取得する

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のコピーの手順をスキップして、必要に応じてライブラリを直接参照できることに注意してください。目的は、適切な実行に必要な他のリソースがないことを示すことでした。
  • Project References

以下は、ライブラリの使用方法の非常に簡単な例です。

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();
    }
}
12
Danny

MQ製品のインストールに付属するサンプルは多数あります。あなたのケースについてはNmqsput.csを参照してください。新しいプロジェクトを作成するときは、参照としてamqmdnet.dllを追加する必要があります。

使用しているMQのバージョンがわかりません。 MQv701を使用していると想定しています。サンプルは、MQインストールのtoolsフォルダーにあります。

C#でJMSスタイルのメッセージングを探している場合は、 XMS .NET を検討する価値があります。 XMS .NETのサンプルは、MQサンプルと同じフォルダーにあります。 XMS .NETリファレンスは ここ

1
Shashi