問題タブ [hornetq]
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 - 2 つの HornetQ サーバー間の HornetQ JMS ブリッジが配信に失敗する
(11.11.11に編集、下部に編集)
HornetQ (バージョン 2.2.5 AS7) サーバーを実行する 2 つの JBoss AS 6.1 サーバーがあります。もう 1 つは CLIENT、もう 1 つは MASTER と呼びましょう。
CLIENT にはキュー (「sourceQueue」) があり、Web アプリケーションによって書き込まれます。
CLIENT サーバーと MASTER サーバーの間に設定された JMS ブリッジがあり、CLIENT の sourceQueue からのメッセージを消費し、MASTER の targetQueue でメッセージを生成する必要があります。ブリッジは CLIENT JBoss で実行されています。
問題: ソースから消費してターゲットでメッセージを生成する代わりに、表面的には何も起こらないように見えます: ソースには 1 つのメッセージがあり、ターゲットにはメッセージがありません。ソースにそのメッセージが何度も供給されている可能性もあります。
netty コネクタを使用したネットワーク接続は機能しています。これは、ブリッジを再起動し、netstat -n -c の出力を観察してテストされています。
どのような問題がこの種の問題を引き起こす可能性がありますか?
- ネットワークの問題?
- トランザクションマネージャー?
- コネクターエラー?
HornetQ ブリッジの問題をどのように診断しますか?
以下は、hornetq-jboss-beans.xml (CLIENT /jboss/server/default/deploy/hornetq ) のブリッジ定義です。定義は、 HornetQ マニュアルの JMS ブリッジの例に近いバリエーションです。
CLIENT 側の hornetq-jms.xml のキュー定義:
MASTER 側の hornetq-jms.xml:
編集: 何らかの理由で、両方のサーバーが完全にデプロイされた後にブリッジを停止して再起動すると、ブリッジはメッセージの転送を開始します。これは手動のプロセスであり、ハックを使用してブリッジを定期的に再起動するのは嫌いです。この問題に対する提案を歓迎します。
また、ブリッジが読み取り元のキューに依存するようにすることで、起動シーケンスを改善しました。そうしないと、ブリッジがキューの前に起動され、エラーがログに記録されます。
message-queue - HornetQ コア API と JMS
HornetQ に関していくつか質問があります。
HornetQ コア API と JMS API の違いは何ですか?
これらのいずれかを使用する利点または欠点はありますか?
コア API を使用してからメッセージング バス (たとえば ActiveMQ) を変更することにした場合、すべてのコードを変更する必要があるというのは本当ですか?
sql-server - MS SQL サーバーを使用した HornetQ 永続化
HornetQ はデフォルトでファイルシステムを使用しており、持続性のために独自のジャーナルを使用しています。このデフォルトの動作を変更して、持続性に代わりに MS SQL サーバーを使用することはできますか?
ありがとう
jms - HornetQ を使用した JMS Connection/ConnectionFactory 参照
私は古いアプリケーションに取り組んでおり、その JMS システムを JBoss Messaging から HornetQ にアップグレードしています。その過程で、このアプリケーションが JMS 接続を使用および管理する方法に関連していると思われる問題に遭遇しました。これは JMS への初めての大規模な露出 (単純なおもちゃの使用法を除く) であり、現在のイディオムが正しいのか、ばかげているのか、それとも完全に間違っているのか疑問に思っています。
これが現在のシステムの仕組みです。
これの要点は、エラーが発生するまで、送信されるすべてのメッセージに対して接続が何度も使用され、エラーが発生すると、接続が最終的に閉じられて再作成されることです。
私が見たすべての例は、すべてのメッセージに対して常に新しい接続ファクトリと新しい接続を作成しますが、これらの例は大きなシステムの例ではなく、「ハウツー」の例の 1 つです。
接続ファクトリをキャッシュする必要がある場合、JMS 接続への単一の管理された参照を維持することは受け入れられるイディオムですか? 新しいメッセージごとに両方を再作成する必要がありますか?
接続ファクトリを再利用するのは理にかなっていますが、毎回新しい接続を使用しますか?
jms - HornetQ: トピックをキューに接続する
トピックを多くのキューに接続するユースケースがあります。システムには、さまざまなユーザーがサブスクライブできるようにするイベントがいくつかあります。「イベント」を「トピック」として、ユーザー サブスクリプションを「キュー」として扱っています。各ユーザーには個人用のキューがあり、サブスクリプションに応じて異なります。キューにルーティングします。これをどのように設定できるかについて、いくつかの指針を共有できますか?
java - HornetQ Java getMessagesAsJSON 機能
jmx-console の listMessagesAsJSON が提供するのと同じ機能を Java で使用したいと考えています。どうすればそれができますか?
ありがとうございました。
hornetq - Hornetq - 1 つのキューを複数のアドレスに接続しますか?
HornetQ を組み込みサーバーとして使用しています。複数のキューを作成して、それらを単一のアドレスにバインドできます。これはうまく機能し、メッセージを 1 つのアドレスに送信して、複数のキューで消費させることができます。単一のキューにメッセージを送信する複数のアドレスが必要な別のビジネスがあります。ユースケースは、キューを、システム内で起こっている複数の事柄に「サブスクライブ」しているユーザーと考える場合です。つまり、さまざまなイベントがさまざまなアドレスに投稿され、ユーザーが購読している場合、それらのメッセージはユーザーの個人用キューに送られます。これは可能ですか?
私が考えることができる唯一の方法は、ダイバートを設定することでした. より良い方法があるかどうか疑問に思います。複数のアドレスのメッセージを、キューにマップされるユーザーごとに 1 つの一意のアドレスに転送するため、転送が機能します。ところで; CORE API を使用しています
hornetq - HornetQ: Divert + Transformer クラスの使用
HornetQ で迂回を使用して、特定のアドレスのメッセージを他の多くのアドレスに迂回できることを楽しみにしていました。私がやりたいことは、メッセージが迂回されたら、メッセージにいくつかのプロパティを追加することです。トランスクラスを使用してそれを行うことができるようです。私の唯一の質問は、メッセージが送信された迂回に基づいてカスタム プロパティを追加したいということです。その情報を取得する方法がわかりません。
例: address.order -> address.electronicorder、address.bookorder、address.clothorder に流用します。
今一度それが転用されると; トランスフォーマーのメッセージにプロパティ(「ORDER TYPE」など)を追加したいのですが、メッセージが送信されたという迂回を取得する方法がわかりません..
任意のヒント?
jboss - MDB メッセージ処理の一時停止
MDB メッセージの処理をしばらく一時停止できますか? 例: メッセージ処理用に Jboss 1 でデプロイされた MDB。Jboss 2:-ユーザーの詳細を収集するための Bean。jboss 1 の MDB がユーザーの詳細を取得するために jboss 2 の Bean を呼び出す場合。この場合、Jboss 2 を再起動するときに、jboss 2 が起動するまで jboss 1 の MDB を一時停止する必要があります。メッセージの失敗を回避できるように、MDB を一時停止するオプションはありますか?
jboss - HornetQ はデフォルトで jboss-esb-server に含まれていますか、それとも明示的にインストールする必要がありますか?
JBoss ESB プロジェクトでレガシー JMS プロバイダーの代わりに HornetQ JMS プロバイダーを使用しようとしていますが、機能していません。
http://www.mastertheboss.com/jboss-esb/78-jboss-esb.htmlにある JBoss-ESB チュートリアルのサンプル コードを確認して実行しましたが、このチュートリアルでは JBM JMS プロバイダーが使用されています。 . 代わりに HornetQ JMS プロバイダーを使用する必要があります。
HornetQ を JMS プロバイダーとして取得する方法がわかりません。HornetQ は jbossesb-server-4.10 でデフォルトで利用できますか? それとも明示的にインストールする必要がありますか?