問題タブ [jmstemplate]

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.

0 投票する
3 に答える
3471 参照

spring - ACTIVEMQ - パブリッシャーの後に開始された場合、サブスクライバーはどのようにトピック メッセージを受信できますか?

私のプログラムには、トピックを介して通信するパブリッシャーとサブスクライバーの 2 つのモジュールがあります。

サブスクライバーがメッセージを受信するには、パブリッシャーより前に開始する必要があることを理解しています。ただし、何らかの理由でサブスクライバーがダウンし、再起動が必要になるシナリオが発生する場合があります。パブリッシャーの後にサブスクライバーを開始すると、メッセージを受信できるようにする方法はありますか?

0 投票する
1 に答える
898 参照

jms - 特殊文字を使用すると、JMS でエンコードされたメッセージ セレクターが一致しない

要求応答パターンを使用する 2 つのアプリケーション (クライアントとサーバー) があります。

クライアントは、メッセージ ID が次のように設定されたサーバーに要求を送信しますID=Hostname-52991-1357677886768-3:1:2:1:1

ここで、クライアントは、相関 ID が同じ値に設定されたメッセージをリッスンする必要があります。値には特殊文字 (:) が含まれているため、値をエンコードする必要があります (UTF-8 を使用)。

ブローカー内でメッセージをフィルタリングするために使用される SQL 92 述部である JMS セレクターを設定します。= などの特殊文字を %3D としてエンコードする必要がある場合があります

したがって、セレクターは次のようにJMSCorrelationID='ID=Hostname-52991-1357677886768-3:1:2:1:1'なり、エンコードされたセレクターは次のようJMSCorrelationID='ID%3AHostname-52991-1357677886768-3%3A1%3A2%3A1%3A1'になります。

私は今数時間苦労し、見つけたものすべてを検索して読んだが、これを機能させることができず、気が狂っている.

作品のような ASCII 文字のみを使用しabcdます。

0 投票する
1 に答える
1941 参照

spring - Springアノテーション設定でJNDIルックアップを使用してJBossConnectionFactoryが見つかりません

JBoss(AS 7.1.1.Final)接続ファクトリのバインディングが成功したように見えますが:

ルックアップのConnectionFactoryは常にnullです。誰かが問題が何であるかを見ることができますか?

0 投票する
1 に答える
3125 参照

jms - Spring JMSTemplate - 失われたメッセージ

Spring JMSTemplate 3.0.1RELEASE を使用して、JMS メッセージを ActiveMQ クラスターに送信しています。

これらはすべて Fire and Forget であるため、useAsynSend=true を使用して非同期リクエストを送信できるようにしています。ただし、それらはまだ永続的であり、最初に AMQ Kaha-DB で永続化され、次にメッセージ リスナーに転送されることを確認できます。応答をリッスンしていないため、CorelationID または JMSReplyTo はありません。

ActiveMQProductBinding クラスには、次のメソッドがあります。

これで、ログが印刷されていることがログに表示されます。例外はスローされません。それでもいくつかのメッセージは完全に失われています。おそらく ActiveMQ には到達していません。上記の「qName」で定義された ActiveMQ キューでメッセージをリッスンするように Mule JMS リスナーを構成しました。ほとんどのメッセージは問題なく AMQ に配信され、Mule は一瞬のうちにそれらを受け取ります。ただし、失われているのは一部のメッセージのみです。ActiveMQ のキューを確認すると、受信したすべてのメッセージが正常に Mule にディスパッチされていることがわかります。したがって、メッセージが ActiveMQ にまったく到達していないか、AMQ が拒否していると思われます。ただし、JMSTemplate spring または ActiveMQ のログはありません。

作成されたメッセージは次のようになります (上記の方法で出力されます)。

JMSTemplate 構成または AMQ での動作に欠けているものはありますか? 助けてください!

助けてくれる人はいますか?

0 投票する
1 に答える
340 参照

spring - 春のバッチで単一のジョブ/ JMSwriter を使用して複数のキューに投稿する方法

私はSpring Batchの初心者で、最近使い始めました。

単一のジョブを使用して、各 DB レコードから読み取ったメッセージを異なるキューに投稿/書き込みする必要があるという要件があります。リーダーを使用してDBからメッセージを読み取り、プロセッサを使用して投稿する必要があるキューを決定する必要があるためです。

したがって、私の質問は、単一のジョブと DB リーダーを使用する必要があるため、単一の JMSwriter を使用してメッセージを異なるキューに投稿できますか?

前もって感謝します

0 投票する
2 に答える
2404 参照

java - TransactionSynchronization.afterCompletionのIncompatibleClassChangeError

JmsTemplateを使用してメッセージを送信するたびに、例外がスローされます。(私はSpring 3.0.5.RELEASEを使用しました)。互換性のないクラスが見つかりません!

クラスパスのSpringjar:

クラスパスのSpringjar

エラーログ:

0 投票する
1 に答える
3461 参照

jms - 要求応答を使用して外部の activeMQ に Camel jms を送信すると、javax.jms.InvalidDestinationException: Cannot publish to a deleted Destination: が返されます。

camel cxfrs エンドポイントに安静な呼び出しを行い、外部の activeMQ にルーティングするサードパーティ アプリケーションがあります。これらの JMS メッセージを消費し、XML 応答を提供するアプリケーションがあります。これはすべて camel InOut exchangePattern を使用して同期的に行われます。アーキテクチャは非常に単純明快です。activeMQ 5.5.0-fuse、camel-jms 2.8.x、activemq-pool 5.6 を使用していました。

この構成を使用すると、次の例外がランダムに表示されます。

これが発生すると、サーバーは単に停止し、activeMQ、Tomcat、およびその他すべてのサービスを再起動するまで、サービスは応答しません。

ラクダの設定:

Camel Router クラス: //reroute from("cxfrs:/rr?resourceClasses=xyzroute.RerouteResource") .setExchangePattern(ExchangePattern.InOut) .process(new RerouteProcessor()) .to("activemq:queue:xyztmi.request") ;

キューをリッスンするアプリケーションのスプリング構成は次のとおりです。 xyztmi.request は JMS メッセージを消費します。

グーグルで調べたところ、次のバグに遭遇しました。

https://issues.apache.org/jira/browse/CAMEL-6229 https://issues.apache.org/jira/browse/AMQ-3457

これらに基づいて、camel 2.10.4、activeMq 5.7、activemq-pool 5.7 にアップグレードしました。それでも、問題は残ります。

私は本当に立ち往生しており、この問題を解決する方法がわかりません。何が間違っている可能性があるかを親切に指摘できますか?

ありがとう。

0 投票する
2 に答える
1350 参照

activemq - ActiveMQ : メッセージ リスナーがキュー内のすべてのエントリを処理していない

n 個のサーバー (S1、S2、....Sn など) にアプリケーションをデプロイするという要件があります。サーバーの 1 つ (S1 など) で定義された activeMQ キューがあります。サーバーを構成しました。メッセージを生成し、S1 で構成されている同じキューに配置します。すべてのサーバーは、生成されたメッセージを格納するために同じキューを使用するように構成されていますが、私の要件は、n 個のサーバーのうち 1 つだけが queue からのすべてのメッセージを処理するようにすることです。ここでも S1 としましょう。 S2,...Sn は、S1 で構成されたキューにそれらを生成および格納できます。S1 のみがそれらすべてを処理する必要があります。したがって、S1 を除くすべてのサーバーの「MessageListener」部分を無効にしました。ただし、何らかの理由で、S1 はすべてを処理するわけではありません。他のリスナーが無効になっているにもかかわらず、キューがラウンド ロビン方式でメッセージを配信しているように感じます。2 つのサーバーがキューにアクセスしている場合、S1 はすべての代替メッセージを処理します。この問題を解決するための助けをいただければ幸いです。

注: 役立つ場合は、Spring JMS テンプレートを使用しており、JMS の Spring XML ベースの構成を完了しています。

ここに私のXML構成スニペットがあります

上記の構成はすべてのサーバーに存在します。「portfolioListener」Bean を無効にしています。これは、上記の例に従って S1 であるサーバーを除くすべてのサーバーで「cscoConsumer」のプロパティ マッピングです。しかし、それでもメッセージはスキップされています。ラウンドロビン方式。

0 投票する
1 に答える
3435 参照

java - JmsTemplate send での例外処理

jmstemplate (activemq jms ブローカー) で大きな文字列メッセージ (3-5 MB) を送信したい。メッセージの送信中にブローカーをシャットダウンしました。catch(Exception e) でスローされた例外をキャッチできないのはなぜですか? この例外を処理するにはどうすればよいですか?

前もって感謝します。