Apache Qpid Java ブローカーの M4 リリースを Windows ボックスにインストールし、すぐに使用できる構成を使用して (qpid-server.bat スクリプトを介して) 開始しました。
現在、RabbitMQ C# クライアント ライブラリ (バージョン 1.5.3、.NET 3.0 用にコンパイル) を使用してキューにメッセージを発行しようとしています。私のコードは次のとおりです。
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
、文字列exchange
とroutingKey
. さまざまな組み合わせを試しましたが、何もうまくいかないようです。最も近いのは、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 サーバーがメッセージを受信しているように見えますが、どうすればよいかわかりません。
クライアント コードで必要な構成値に関するアドバイスがあれば (virtualhosts.xml でデフォルトの Qpid 構成を使用していることを念頭に置いて) いただければ幸いです。仮想ホスト、エクスチェンジ、キュー、ルーティング キー、および Qpid がそれらをすべてリンクする方法に関する一般的な情報も非常に役立ちます。
前もって感謝します、
アラン