問題タブ [jms-topic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jms - マルチスレッド環境でクライアント ID とサブスクリプション名を一意にするこのアプローチは機能しますか?
複数のトピックからのメッセージを消費し、メッセージを変換してから複数のトピックに公開するアプリケーションを構築しています。connectionfactory オブジェクトを検索した後、このコードを使用しています
永続的なサブスクリプションを作成している間、私はこの MessageConsumer consumer = session.CreateDurableSubscriber(topic,"DurableSubscribtion"+clientId, topic.getSelector, true); を使用しています。
すべての接続には、一意のクライアント ID とサブスクリプション名が必要です。
接続が閉じられた後、新しく作成された接続の hashCode を使用して同じサブスクリプションに再度アクセスしようとしましたが、このアプローチは機能しますか? または、SUBSCRIBER1、SUBSCRIBER3、SUBSCRIBER2 などのサブスクリプション名を指定する必要がありますか?
java - 2 つのリスナーを持つ JMS キュー
JMS キューに関して質問があります。
私が利用できる唯一のキューであり、私が使用できる唯一のキューとして、共有キューを使用してjmsセンダー/レシーバーを実装しました。
私が今直面している問題は、この先着順であるため、プロデューサーから送信しているメッセージが、このキューを共有している他のユーザーではなく、私の消費者によって消費されることを保証できないことです。だから私は他のアプリのメッセージを消費していて、彼らは私のものを消費しています。
メッセージをリッスンしてキューから消費しない方法はありますか、それともトピックの実装ですか?
または、消費者だけが取得する識別子を明示的に設定することもできます。
私の主なコード:
java - JMS トピックとキュー - 意図
キューを使用するユースケースを理解しようとしています。
私の理解: Queue は 1 対 1 を意味します。唯一の使用例 (まれではないにしても、非常に少ない) は次のとおりです。メッセージは 1 回だけの消費を目的としています。
しかし、そのような場合でも、トピックを使用したい場合があります (将来の安全のために)。唯一の特別な注意は、サブスクリプションを永続的にすることです。または、特別な状況では、ブリッジング/ディスパッチャ メカニズムを使用します。
上記のように、私は常に (またはほとんどの場合) トピックに公開したいと考えています。サブスクライバーは、永続的なトピックまたはディスパッチされたキューのいずれかです。
ここで何が欠けているのか、または元の意図が欠けているのか教えてください。
jms - 多くの宛先からの JMS メッセージを単一のキューに集約する
多くの異なるソース (実際にはキュー/トピック) からのメッセージを単一のキュー/トピックに集約し、それを消費するための最良の方法は何ですか? weblogic を使用して JMS のさまざまなトピックからメッセージを受信するアプリケーションを設計しようとしています。
wso2 - ActiveMQ を使用した JMS 構成
メッセージストアと転送プロセスに必要なすべてのプロセスを実行しました activeMQ 5.5.1 をインストールし、必要な Jar を WSO2eSb にコピーしました AXIS2 ファイル構成もこのように変更しました
INFO - JMSSender JMS Sender が開始されました [2013-07-23 17:02:18,752] INFO - JMSSender JMS Transport Sender が初期化されました... この後、JMS MESSAGE STORE を作成しました <
スケジュールされたメッセージ転送プロセッサを追加します
そして、このような私のプロキシサービス構成
メッセージをメッセージ ストアに保存するが、転送が間違っている メッセージが WSO2esb で失われたメッセージを処理しているにもかかわらず、IF エンドポイントが機能しない このメッセージを送信する
openejb - OpenEJB がトピック リソースの構成プロパティを無視する
OpenEJB のメッセージ駆動型 Bean でトピックを使用しようとしています。そこで、conf/openejb.xml を次のように編集しました。
私が得る使用bin/openejb properties
:
これは問題ないようです。ただし、EAR ファイルをデプロイすると、次のようになります。
そして、ここに私の豆があります:
ここで何が間違っていますか?
serialization - シリアル化された Java オブジェクトを WSO2 ESB の JMS トピックに公開する方法
WSO2 ESB、WSO2 MB、および JMS トピックを使用して、パブリッシュおよびサブスクライブのシナリオをセットアップしようとしています。
パブリッシング プロキシでは、エンドポイント サービスは Serializable を実装する Java メッセージを返し、プロキシのアウト シーケンスでメッセージを JMS トピックにパブリッシュする必要があります。
以下は私のプロキシのコピーです:
私が試したこと:
私のエンドポイント サービスは、Serializable を実装するカスタム Java オブジェクトを返します。
結果: ログ メディエーターから、パブリッシュされたメッセージは SoapEnvelope のように見えます。ペイロードは XML 形式の MyMessage の base64necoded 応答です。
私のエンドポイント サービスは、オブジェクトとして MyMessage を含む JMS ObjectMessage を返します。すなわち:
結果:
JMSOutTransportInfo {java.naming.provider.url=tcp:// localhost:61616、java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory、transport.jms.DestinationType=topic を使用して初期コンテキストを取得できませんでした, transport.jms.ConnectionFactoryJNDIName=TopicConnectionFactory} javax.naming.NoInitialContextException: ハッシュ テーブルで指定されたファクトリを使用して InitialContext を作成できませんでした。[ルート例外は java.lang.ClassNotFoundException: クラス org.apache.activemq.jndi.ActiveMQInitialContextFactory が見つかりません]
試行 2 から、axis2.xml ファイルに固有のものに変更
TopicConnectionFactory
されました。myTopicConnectionFactory
結果: 試行 2 と同様のエラー。
私の質問:
- エンドポイント サービスは MyMessage (試行 1) または MyMessage を含む JMS ObjectMessage (試行 2 & 3) を返す必要がありますか?
- 試行 1 では、デコードされた応答のペイロードに XML のメッセージではなく、シリアル化された Java オブジェクトを表すバイナリ データが表示されることを期待していました。これは有効な期待ですか?
- トピックにパブリッシュする前に、メッセージをシリアル化された Java オブジェクトとしてマークするために (プロキシまたはエンドポイントなどで) 設定する必要がある他のプロパティはありますか?
ありがとうございました。