問題タブ [jboss-mdb]

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 投票する
2 に答える
3620 参照

jms - Jboss 5.1 ActiveMQ 5 スタンドアロン ブローカー MDB セットアップ

JBoss 5.1 AS にデプロイされた MDB で ActiveMQ 5 に付属するサンプル ブローカーを使用しようとしています。

deploy ディレクトリに activemq rar をデプロイしました。接続ファクトリーを定義する deploy/messaging に activemq-jms-ds.xml をデプロイしました。connectionfactory 構成で定義されているように、localhost:61616 でブローカーを実行しています。

しかし、MDB を jboss にデプロイしようとすると、このエラーが発生します。

メッセージをキューに配置するクライアントを定義したくないので、今のところ標準ブローカーを使用することにしました。サンプル ブローカーに付属の Web コンソールを使用することを好みます。何が問題なのかわからないように見えるので、私が見逃しているものはありますか。

注: ActiveMQ Jboss セットアップ ガイドを試してみましたが、ActiveMQ 4 には古すぎるのではないかと心配しています。

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

jboss - JBoss Messaging とスレッドの優先度

JBoss 5.1.0 GA を JMS と一緒に使用しています。

2 つのメッセージ駆動型 Bean があります。

誰かがスレッドモデルを説明してくれませんか? たとえば、各 MDB には個別のスレッド プールがありますか? 彼らはグローバルプールを共有していますか?

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

deployment - メッセージ駆動型 Bean 仕様違反の jBoss デプロイメント

1 つのメッセージ駆動型 Bean を持つ Java EE アプリケーションがあり、JBoss 4 では正常に動作しますが、JBoss 6 用にプロジェクトを構成してデプロイすると、このエラーが発生します。

しかし、私の Bean には onMessage メソッドがあります。その場合、jboss 4 でも機能しませんでした。

なぜこのエラーが発生するのですか!?

編集:

問題のクラスは次のようになります

編集2: これはjboss.xmlの関連部分です

編集3:

プロジェクトからすべての jar を削除し、関連するものだけを (新しいバージョンからも) 再追加して、NoClassDefFound エラーを出しました。それでも問題は残ります。

編集: 道順、どのエリアを見るべきですか?私のプロジェクト、または jboss-configration、またはデプロイメント設定??

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

jboss - JBoss MDB - JMSBytesMessage クラスのキャスト例外

離れたサーバーの MQ キューをリッスンする EJB3 MDB に取り組んでいます。MDB によって行われる処理を除いて、すべて正常に動作しています (メッセージがリッスン キューに入れられると MDB がトリガーされます)。詳細については、WMQ リソース アダプターを使用してキューをマップします。

MDB のメソッド「onMessage」に、指定されたメッセージをクラス「com.ibm.jms.JMSBytesMessage」にキャストしようとしましたが、奇妙なエラー メッセージが表示されます。

コードは次のとおりです (この例では単純です)。

そして例外メッセージ:

入力要求の読み取り中に例外が発生しました: com.ibm.jms.JMSBytesMessage は com.ibm.jms.JMSBytesMessage と互換性がありません

わかりました。受信したメッセージは「com.ibm.jms.JMSBytesMessage」タイプであるはずですが、なぜアプリケーションが機能しないのでしょうか? JBoss サーバーが別のバージョンのライブラリー 'com.ibm.mqjms.jar' (JMSBytesMessage クラスを含む) を既に使用していて、この種のエラーが発生する可能性はありますか?

ps: Linux システムの JBoss サーバー バージョン 4.2.3 にアプリケーションをデプロイしました。同じバージョンの JBoss サーバーを使用しているが、ウィンドウ システム (同じ構成、同じライブラリなど) を使用しているローカル マシンで、アプリケーションを既に動作させています。

誰かがそのようなエラーの理由について考えを持っていますか?

助けてくれてありがとう。

よろしく、

編集: 解決策: com.ibm.jms.JMSBytesMessage の代わりに javax.jms.BytesMessage でキャストする

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

jboss - org.jboss.ejb3.mdb.MdbDelegateWrapper を設定する場所

接続に関して制限されている外部リソースに接続するため、MDB のプール サイズを 5 に減らす必要があります。JMS キューに 15 のメッセージがある場合、5 つのメッセージのみが正常に処理され、残りの 10 は MDB コードで接続エラーが発生したために処理されません。

Jboss JMX コンソールでこの設定を示します。 JMX コンソール

Jboss 4.2.3 を使用しています。この MaxPoolSize 構成をどこで編集できるかを知る必要があります。あちこち探しましたが見つかりません。

ありがとう

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

jakarta-ee - キューに再配信する JMS メッセージ

アプリケーションで Jboss MQ を使用しています。

JMS キューに再配信されたメッセージを処理しようとしています。コンシューマーで受信した元のメッセージにいくつかの値を設定する方法はありますか (メッセージを初めて受信したとき) メッセージが再配信されるたびに、値を読み取っていくつかの決定を下すことができます。

質問が明確でない場合はお知らせください。詳しく説明できるよう努めます。

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

jms - 別の JVM 上の JMS コンシューマ

私のアプリケーションはメッセージを JMS キューに入れます。MDB および MessageListener を実装する Bean は、このキューからメッセージをポップします。これはすべて単一の JVM で行われます。

私がやりたいことは、並行処理のためにプールから取得する MDB とその他のインスタンスを別の JVM で実行することです。どうすればいいですか?私が使用しているアプリケーション サーバーは JBOSS 4.0.5.GA です。

前もって感謝します。

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

jms - EJB 3 および JBoss AS 6 を使用して MDB をデプロイする

私は EJB 3 の初心者であり、MDB を使用する単純な EAR として JBoss AS 6 にデプロイしたいと考えています。しかし、私の耳をデプロイすると、次の例外が発生します。

私のコードは次のとおりです。

私の *-hornetq-jms.xml は次のとおりです。

私の問題を解決するための助けをいただければ幸いです。前もって感謝します

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

jboss - JBoss 6.0 で JMS リスナー (MDB) の開始を遅らせる

クラスタ化された環境に JBoss-Server の複数のインスタンスがあります。バックグラウンド タスクには、登録されているすべてのジョブを管理するグローバル キューが利用可能です。このキューでは、各ノードに単純なリスナー (MDB) があり、着信メッセージを管理します。このリスナーは、シングルトン Bean の手動ルックアップ (インジェクションなし) を実行し、事前定義されたメソッドを開始します。これまでのところすべて正常に動作していますが、シングルトン Bean のメソッドは、状況によっては利用できない他の (シングルトン サービスではない) を使用しています。たとえば、ノードが再起動され、キューにメッセージが残っている (まだ処理されていない) 場合、メッセージはリスナーによって取得され、それ以降のすべての Bean は null になるため、ジョブは NPE を生成します。メッセージが取得された後、JMS-Listener で遅延時間を定義することは可能ですか?

MDB プロパティの "DeliveryActive" を false に設定し、完全なデプロイ後に Bean を開始することもできます。これをプログラムで(jmx-consoleではなく)簡単に実行できる方法はありますか?これに関するマニュアルを見つけた場合は、手動の jndi ルックアップにリダイレクトされます。アノテーションごとに Bean を注入して startDelivery() を呼び出すことが可能でなければならないと思いますか? アプリケーションでこれを行うのに適した場所はありますか?

別のヒントとして、application.xml の initialise in order プロパティに移動します。これは、問題が JBoss の展開順序に関連している可能性があるためです (一部の EJB はリスナーよりも後で使用可能になります)。ただし、JBoss 6.0にバグがあり、アップグレードすると6.1. オプションではありません。多分これのためのウォークスルーがありますか?

問題が十分に説明されていることを願っています。それ以外の場合は、さらに情報を求めてください。

前もってありがとう、ダニー

追加情報:

  • JBoss 6.0.0 最終版
  • HornetQ 2.2.5 Final (JBoss のデフォルト バージョンにバグがあるため、更新済み)

リスナー:

サンプル ワーカー:

この場合、sampleEjb - メンバーは時々 null になります

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

mysql - JBoss 5.1のMDB(ActiveMQ)でMySQLデッドロックをキャッチする

ActiveMQRARに裏打ちされたMDBを備えたJBoss5.1を使用しています。

キュー上のメッセージが消費され、データベース操作を実行してデッドロックが発生した場合、デッドロックは基本的に、再起動されるまでJBossのインスタンス全体を停止します。ホースで接続すると、そのキューで消費される後続のメッセージはすべて、次の例外を除いて失敗します。

デッドロック例外が私のコードを参照することは決してないため、キャッチして処理するのが非常に困難になります。

たとえば、デッドロック例外の例外は次のとおりです。

後続のエラー(キューへの後続のメッセージのエラー)をキャッチできます。

原因:javax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:接続を開くことができません

しかし、どうしたらよいかわからないので、ホースで接続されていない新しいEntityManagerを入手できるかもしれませんが、最初はインジェクションを使用しています...このエラーを修正する唯一の方法は次のとおりです。再起動。

最初のデッドロックはキューでトランザクションを終了する一部として発生していると思います。そのため、コードでは発生していませんが、これを適切に処理する方法について何か考えはありますか?

アップデート:

  • すべてのデータソースはMySQLXAです
  • transaction-jboss-beans.xmlでは、transactionTimeoutが300に設定されています