2009-03-20 6 views
0

Apache Qpid JavaブローカーのM4リリースをWindowsのボックスにインストールし、すぐに使用できるように(qpid-server経由で) .batスクリプト)。RabbitMQ C#クライアントがApache Qpidに話をしていないJava Broker

私は現在、RabbitMQ C#クライアントライブラリ(.NET 3.0向けにコンパイルされたバージョン1.5.3)を使用してキューにメッセージを公開しようとしています。私のコードは次のとおりです。基本的に

public void PublishMessage(string message) 
{ 
    ConnectionFactory factory = new ConnectionFactory(); 
    factory.Parameters.VirtualHost = "..."; 
    IProtocol protocol = Protocols.FromEnvironment(); 
    using (IConnection conn = factory.CreateConnection(protocol, "localhost", 5672)) 
    { 
     using (IModel ch = conn.CreateModel()) 
     { 
      string exchange = "..."; 
      string routingKey = "..."; 
      ch.BasicPublish(exchange, routingKey, null, Encoding.UTF8.GetBytes(message)); 
     } 
    } 
} 

、私はfactory.Parameters.VirtualHostと文字列exchangeroutingKeyに使用する値が不明です。私は様々な組み合わせを試してみたが、何も動いていないようにみえ - 私が持っている最も近いQpidサーバログに次のように見ている:

2009-03-19 17:11:04,248 WARN [pool-1-thread-1] queue.IncomingMessage (IncomingMessage.java:198) - MESSAGE DISCARDED: No routes for message - Message[(HC:896033 ID:1 Ref:1)]: 1; ref count: 1 

Qpidサーバーがメッセージを受信して​​いるかのように見えたが、doesnのそれをどうしたらいいのか分かりません。

クライアントコードに必要な設定値についてのアドバイス(私はvirtualhosts.xmlのデフォルトQpid設定を使用しています)を高く評価します。仮想ホスト、交換、キュー、ルーティングキーに関する一般的な情報と、Qpidがこれらをすべてリンクする方法も非常に便利です。

は参考のために、事前に

アラン

答えて

6

をありがとう、私は最終的にこの作業を取得するために管理しました。以下のコードはlocalhost仮想ホスト(デフォルトのQpidブローカー設定のすべての部分)のtest.direct交換のキューテストキューにメッセージを送信します。

public void PublishMessage(string message) 
{ 
    ConnectionFactory factory = new ConnectionFactory(); 
    factory.Parameters.VirtualHost = "/localhost"; 
    IProtocol protocol = Protocols.AMQP_0_8_QPID; 
    using (IConnection conn = factory.CreateConnection(protocol, "localhost", 5672)) 
    { 
     using (IModel ch = conn.CreateModel()) 
     { 
      ch.ExchangeDeclare("test.direct", "direct"); 
      ch.QueueDeclare("test-queue"); 
      ch.QueueBind("test-queue", "test.direct", "TEST", false, null); 
      ch.BasicPublish("test.direct", "TEST", null, Encoding.UTF8.GetBytes(message)); 
     } 
    } 
} 
関連する問題