問題タブ [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 - ActiveMQ 管理 UI のトピック サブスクライバーが常に変化するのはなぜですか?
複数のサブスクライバーを持つ JMS 非永続トピックがあります (ActiveMQ を使用)。
各サブスクライバーは、個別の Tomcat インスタンスにデプロイされた Web アプリケーションです。メッセージが到着したら、すべてのサブスクライバーに配信する必要があります (分散キャッシュの実装のようなものです)。
メッセージが常にすべてのサブスクライバーに配信されるとは限らないことに気付きました。ActiveMQ 管理 UI を見ると、トピック サブスクライバーのリスト (および接続のリスト) が絶えず変化していることがわかります。たとえば、17 人のサブスクライバーが表示され、ActiveMQ 管理 UI を更新すると、19 人のサブスクライバーが表示され、もう一度更新すると、18 と表示されます。
どうしたの?私は、すべてのトムキャットが常に稼働していることを知っています。JMS トピックに関する私の理解では、アプリケーションが稼働している場合、メッセージは常に配信されるはずです。私は何かを誤解しましたか?このサブスクライバーが「点滅」する論理的な理由はわかりません。
PS 永続的なトピックは試したくない - アプリケーションが起動していない場合にメッセージを配信する必要はありません。
jms - JMS トピック サブスクリプション Tomee 1.7.1
外部 ActiveMQ インスタンスからトピック サブスクリプション メッセージを受信するために、メッセージ駆動型 Bean を試していました。
私のテストは、かなりうまく機能している Queue サブスクリプションで最初に開始されました。
次に、トピックのサブスクリプションを試してみたかったのですが、うまくいきません。
これは私が持っているものです:
conf/tomee.xml
これは MDB です。
理由はわかりませんが、ログから、TomEE がトピックではなくキューを作成していることがわかります。
これのもう1つの証拠は、期間構成を追加するとサーバーが起動しないことです。
サーバーは、これが構成されたタイプの javax.jms.Queue に適合しないと不平を言います。
また、TopicConsumer を愚かな単純なメール メソッドで作成しようとしましたが、これは完全に機能していました。また、構成ファイル全体からキュー構成 (MyQueue) を削除しても、違いはありません。
私が間違っていることを誰か知っていますか?
spring - 1 つの JMS コンシューマーがアクティブな mq トピックのリッスンを停止し、2 番目の JMS コンシューマーは停止しません
私のプロジェクトでは、スプリング クォーツ プロセスが 15 分ごとに、つまり 1 日 96 回実行されます。これにより、データベースから特定のレコードが取得され、REST サービス (JBoss 7 で実行) に POST されます。これらのレコードの数は、通常 50 ~ 100 です。
REST サービスには、このメッセージをトピックに公開する jms イベント パブリッシャーがあります。このトピックには 2 人の消費者がいます。
- メッセージを処理し、モバイルでプッシュ通知メッセージを送信する
- 第三者と話す (通常、通話が完了するまでに 4 ~ 5 秒かかります)
これはトピックであるため、両方のコンシューマがすべてのメッセージを受信しますが、何らかのプロパティに基づいてそれらをフィルタリングします。
私の問題は; これは、1 週間前から最近観察されています。コンシューマ #1 が無効なトークンとして APNS から応答を複数回受け取ります。トークンは、プッシュ通知をモバイルに送信するために使用されます。しばらくすると、このコンシューマーは停止し、2 番目のコンシューマーが実行を続けている間はまったく応答しません。
以下は構成です。
投稿された別の質問を検索しましたが、関連するものは見つかりませんでした。 あなたの考えは本当に役に立ちます。
java - メッセージの非同期読み取り中の JMS タイプのチェック
JMS にキューがあります。メッセージをキューに送信する際に、JMStype を「XYZ」と指定しています。コンシューマー側には onMessage リスナーがあります。私が知りたいのは次のことです
- onMessage リスナーで、メッセージをデキューせずにメッセージの JMStype を確認するにはどうすればよいですか。実行中のインスタンスが JMStype が 'XYZ' ではないことを検出した場合、何も実行せず、キューからデキューするべきではありません。JMS タイプ「XYZ」のメッセージを必要とするインスタンスのみが、メッセージをキューから取り出してさらに処理する必要があります。
私の質問を読んでくれてありがとう。
java - JMS オブジェクトのメソッドを呼び出すことができない複数のサーブレット リクエスト
要求オブジェクトに追加された JMS オブジェクトがあり、doPost() メソッドで、オブジェクトの get メソッドが呼び出されて、応答としてクライアントに継続的に送信される現在のトピック データを取得します。
同時に別のユーザー要求で、doPost() メソッドに表示されず、get メッセージが呼び出されているか、呼び出しから空/null 文字列を受け取っています。
同時リクエスト/ユーザーに対してメソッドをレスポンシブにする方法。
デバッグ時: Eclipse でデバッグしているときに、両方のスレッドが getMessage データを交互に受け取ることがあります。
topicObject.getMessage()を同時に呼び出す正しい方法は何ですか
jms - 永続的なトピック サブスクリプションと、dead.letter.address およびメッセージの再配信
1 つ以上の永続的なサブスクリプションを持つ jms トピックがあります。あるサブスクライバーがロールバックを引き起こし、別のサブスクライバーが成功する状況があります。メッセージは配信不能アドレスに到着します。
バグを解決してメッセージを続行できるようになったら、メッセージを元の宛先 (トピック) に戻したいと考えています。問題は、それを行った後、失敗したものだけでなく、すべてのサブスクライバーがメッセージを受け取ることです。
どうにか解決することは可能でしょうか?
情報だけです。JBoss eap 6.1 と HornetQ を jms プロバイダーとして使用しています。
asynchronous - tibco ems での非同期パブリッシュ サブスクライブ トピックの実装
私のシナリオは、私が映画配給業者として、新しい映画についてクライアントを更新する必要があるというものです。この情報を、永続的な購読者がいるトピックで公開し、映画を購入したいクライアントが関心を示します。
ただし、これは事態が悪化する場所です。パブリッシャーの私の実装は、最初の応答を受信するとすぐにリッスンを停止します。どんな助けでも大歓迎です。ありがとうございました。
request(Message message) リクエストを送信し、返信を待ちます。JMSReplyTo 宛先には一時トピックが使用されます。最初の応答が返され、それ以降の応答は破棄されます。
https://docs.oracle.com/javaee/6/api/javax/jms/TopicRequestor.html