問題タブ [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.

0 投票する
0 に答える
212 参照

jms - jms トピック接続ファクトリ ルックアップがハングする

HornetQ に接続してトピック接続ファクトリー b でルックアップを実行しようとしてTopicConnectionFactory hornetQConnectionFactory = (javax.jms.TopicConnectionFactory)ic.lookup("/ConnectionFactory");いますが、「javax.naming.NamingException: Could not dereference object [Root exception is java.lang.ClassNotFoundException: org.hornetq.jms.client. HornetQJMSConnectionFactory]".助けてください

0 投票する
0 に答える
553 参照

java - トピックへの JMS パブリッシュに非常に長い時間がかかり、トランザクション リーパーによって強制終了されます

だから私はJMSトピックに発行するこのコードを持っています:

私は SOAP を介してこのコードを常に呼び出していますが、1 ~ 2 秒もかからず、かなり高速に実行されます。ただし、私が抱えている問題は、このコードが「send.publish(message)」でハングすることがあり、5分から15分という非常に長い時間がかかり、最終的に完了するか、トランザクションリーパーによって強制終了されることです:

.....

奇妙な点は、このメソッドにトランザクションを使用していないことです。これは、DB に「MyCreatedObject」が作成されるこのメソッドの前のメソッドで確認したため、どのトランザクションが死神殺しなのかわかりません。

質問 1: リーパーがどのトランザクションを強制終了しているかを判断するにはどうすればよいですか? 「com.arjuna」でトレースを有効にしましたが、有用なものは何も出力されません。

質問 2: send メソッドのタイムアウトを発生させるにはどうすればよいですか? TopicPublisher の timeToLive を 120000 (2 分) に設定してみましたが、効果がないようです。

最終的には、トピックへの公開が遅れている理由と、この公開に何らかのタイムアウトを設定することでどのように干渉できるかを判断することが理想的です。なぜなら、この部分はそれほど重要ではないためです。パブリッシュが失敗した場合に全体的な SOAP 呼び出しがエラーで終了するようにするには、エラーをログに記録して正常に終了させたいだけです。この「notifyCreateListeners」メソッドを別のスレッドで呼び出すことを考えています。これは、一定時間後に強制終了します (まだアクティブな場合)。これは実行可能な解決策ですか、それとも何か他のものをお勧めできますか?

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

java - ActiveMQ の永続的なトピック、メッセージの事前サブスクリプション?

私たちのビジネス要件では、全国に分散している数千のクライアントに更新を送信する必要があります。つまり、これらのクライアントの多くは 3g ネットワークを使用して接続しているため、多くの接続/切断が発生します...配信する必要がある更新は、「企業 A はもう現金化できません」または「企業 B は現金化できます」などです。これらの更新を配信するために、ActiveMQ の永続的なトピックを使用することを考えていました。クライアントが永続的なトピックに接続すると、接続が失われたとしても、クライアントが戻ってくるたびに、オフラインの間にそのトピックに送信されたメッセージを受信することを理解しています。大きな問題は、クライアントが私たちのシステムを起動したときに、サブスクリプションの前に、クライアントがサブスクライブしている永続的なトピックにメッセージが送信された場合はどうなるかということです。このケースは次のとおりです。

永続トピックが作成される
メッセージ 1 が永続トピックに送信される
メッセージ 2 が永続トピック クライアント A に送信される 永続トピック
クライアント A にサブスクライブする
メッセージ 3 が永続トピックに送信される
メッセージ 4 が永続トピック
クライアント A に送信さ
れる メッセージ 5 が送信される永続トピックへ
メッセージ 6 が永続トピックに送信される
クライアント A がオンラインになる

ActiveMQ の論文によると、クライアント A はメッセージ 3 から 6 を問題なく受信します。しかし、メッセージ 1 と 2 はどうでしょうか。それらのメッセージを失うわけにはいきません...

前もって感謝します!

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

java - ActiveMQ - キュー内のトピックと同時消費者の違いは?

spring.i を使用して最初のアプリケーションを作成した apache ActiveMQ を試しています。現在、すべてのピアがいつでも公開に参加でき、サブスクライバーが公開されたものを受け取るパブリッシャー/サブスクライバー アプリケーションを実装しようとしています。Topicグーグルをしているときに、 と という用語に出くわしましたがthe Concurrent consumers of the queue、今は少し混乱しています。私はそれに関していくつか質問があります:

  1. 両者はどう違うのですか?
  2. ここでの目的はどちらがより効率的ですか?
0 投票する
1 に答える
633 参照

apache-camel - Camel ルートで使用される ActiveMQ 再帰ワイルドカード

Apache ActiveMQ は、たとえば Camel ルートのトピック/キューなどのソースのワイルドカードをサポートしています。

ドキュメントは、次のようなパターンを再帰的に一致させる可能性があることを示しています。

マッチ

等々...

ただし、私の例では、似ているが特定の単語で終わるものと一致させる必要があります。

私がキャッチしたいトピックは、ゼロまたは多くのドットを含み、.1 つまたは多くのアンダースコアを含み_.Mirrored.

いくつかの例 (すべて先頭に が付いていactivemq:topic:ます):