2016-10-04 7 views
4

外部ActiveMQブローカのキューをリッスンするためにMDBを構成しました。正常に動作しますが、MDBはキューからメッセージを受け取り、2分遅れて処理を開始します。私はタイムアウトを設定していませんが、実際に処理を遅らせる一種のプロパティがあるようです。誰かがこの遅延をどのように調整して即時処理に切り替えることができるのかアドバイスできますか?Glassfish + ActiveMQ MDBは120秒の遅延でメッセージを処理します。

+0

私はまったく同じ問題に遭遇しました。キューへの送信を完了するのに120秒かかります。 私はGlassfish 4.1.1(Centos 6)でしか見ることができませんが、Glassfish 4.1(Windows 10)は問題ありません。 ソリューションを見つけましたか? – kosgeinsky

+0

あなたがあなたのactivemq.xmlを提供してくれた方がもっと役に立つかもしれません。 私は同様の問題を抱えていましたが、JBoss EAP 7 Instrument of Glassfishを使用した環境は、環境と少し異なりました。しかし、私たちが経験した遅れは多少の変動期間でした。私たちは "pendingMessageLimitStrategy"を指定することでそれを解決しました。 http://activemq.apache.org/slow-consumer-handling.htmlをご覧ください。多分それはあなたを近づけるでしょう。 –

+0

設定を表示するだけでなく、activemqを呼び出すコードはおそらく皆さんを助けるでしょう – Adonis

答えて

2

これはGlassfishの古いバグです。

ここにバグが記録されましたが、このサイトも閉鎖されました。 http://java.net/jira/browse/GLASSFISH-1429

System.exit(0)(finallyブロック内)を追加すると、すべてのスレッドが閉じます。

try{ 
code ... 

}finally{ 
System.exit(0) ; 
} 

また、デバッグを有効にすることができます

1)MDBスレッドプールから 使用されているどのように多くのスレッドを見るためにjstackを有効にします。

2)は、作業マネージャとスレッドプールの監視統計を有効にしてみてください: http://download.oracle.com/docs/cd/E19879-01/820-4335/6nfqc3qp8/index.html

+0

私はJVMレポートを使ってスレッドダンプを生成しようとしましたが、疑わしいものは見つけられませんでしたが、実際にはグラスフィッシュのバグだったようです他のグラスフィッシュバージョン4.1(4.1.1以外)には、この問題はありません。私はこれが答えたと考える。 ありがとう – kosgeinsky

関連する問題