質問

(JMSTimestamp-CurrentTimeを介して測定される)作成から200秒 -

私はキューがバックアップされていない問題を見ているがしかし、実際にJMSメッセージを実行するために、消費者のための時間は、100との間にあります。

フローは、30件のメッセージ分未満、キューにかなり低かったです。私は、彼らが作成されたときから、1ミリ秒未満のメッセージが上で開始された後、ActiveMQのを再起動することで問題を解決することができました。

私は、ActiveMQの5.4.1を使用していますし、MDBで行われている作業のための通常の総実行時間は少ないし、2ミリ秒です。遅延の時点では、エラーメッセージがActiveMQのログにありませんでした、CPUが低く、メモリをたくさん持っています。

消費者は、キューからメッセージを引っ張って、いくつかの理由のためにそれらの上に座っているように、

それはそうです。

この問題を引き起こしている可能性があり、いくつかの構成の問題はありますか?

編集ます:

次のように私のMDBの最初の行があります:

 /* Check the time since this message was created versus processed */
        try {
            long secondsToProcess = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis() - aMessage.getJMSTimestamp());
            if (secondsToProcess > 5) {
                log.error("JMS Consumer Start Delay: " + secondsToProcess + " s" + " JMS Message took more then 5 seconds to be processed");
            } else {
                log.debug("JMS Consumer Start Delay: " + secondsToProcess + " s");
            }
        } catch (Exception e) {
            log.error(e);
        }
役に立ちましたか?

解決 2

結局のところ、ActiveMQのはちょうど罰金を動作した、私の労働者は、したがって時間がかかりすぎてキューをバックアップしました。私の質問のコードは、私はそれを見ることができます。

他のヒント

あなたは、消費者がすぐにキューからメッセージを引っ張っていることをどのように確信していますか? ActiveMQのは、 ActiveMQのメッセージプロパティを参照してください(あなたがこれを確認するために使用することができますJMSActiveMQBrokerInTimeJMSActiveMQBrokerOutTimeプロパティを提供します>)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top