問題タブ [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.
spring - ACTIVEMQ - パブリッシャーの後に開始された場合、サブスクライバーはどのようにトピック メッセージを受信できますか?
私のプログラムには、トピックを介して通信するパブリッシャーとサブスクライバーの 2 つのモジュールがあります。
サブスクライバーがメッセージを受信するには、パブリッシャーより前に開始する必要があることを理解しています。ただし、何らかの理由でサブスクライバーがダウンし、再起動が必要になるシナリオが発生する場合があります。パブリッシャーの後にサブスクライバーを開始すると、メッセージを受信できるようにする方法はありますか?
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
ます。
spring - Springアノテーション設定でJNDIルックアップを使用してJBossConnectionFactoryが見つかりません
JBoss(AS 7.1.1.Final)接続ファクトリのバインディングが成功したように見えますが:
ルックアップのConnectionFactoryは常にnullです。誰かが問題が何であるかを見ることができますか?
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 での動作に欠けているものはありますか? 助けてください!
助けてくれる人はいますか?
spring - 春のバッチで単一のジョブ/ JMSwriter を使用して複数のキューに投稿する方法
私はSpring Batchの初心者で、最近使い始めました。
単一のジョブを使用して、各 DB レコードから読み取ったメッセージを異なるキューに投稿/書き込みする必要があるという要件があります。リーダーを使用してDBからメッセージを読み取り、プロセッサを使用して投稿する必要があるキューを決定する必要があるためです。
したがって、私の質問は、単一のジョブと DB リーダーを使用する必要があるため、単一の JMSwriter を使用してメッセージを異なるキューに投稿できますか?
前もって感謝します
java - TransactionSynchronization.afterCompletionのIncompatibleClassChangeError
JmsTemplateを使用してメッセージを送信するたびに、例外がスローされます。(私はSpring 3.0.5.RELEASEを使用しました)。互換性のないクラスが見つかりません!
クラスパスのSpringjar:
エラーログ:
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 にアップグレードしました。それでも、問題は残ります。
私は本当に立ち往生しており、この問題を解決する方法がわかりません。何が間違っている可能性があるかを親切に指摘できますか?
ありがとう。
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」のプロパティ マッピングです。しかし、それでもメッセージはスキップされています。ラウンドロビン方式。
java - JmsTemplate send での例外処理
jmstemplate (activemq jms ブローカー) で大きな文字列メッセージ (3-5 MB) を送信したい。メッセージの送信中にブローカーをシャットダウンしました。catch(Exception e) でスローされた例外をキャッチできないのはなぜですか? この例外を処理するにはどうすればよいですか?
前もって感謝します。