現在、JMSとactivemq(5.5.1)を使用してアプリケーションを開発中です。 一部のメッセージの優先度を高く設定したい場合は、最初にメッセージを消費させてしまいます。 プロデューサとコンシューマ(spring(3.1)JMSTemplateを介して)を設定すると、優先度は完全には機能しません。 実際、消費者を "オフ"にしていくつかのメッセージを送信すると、優先度は尊重されますが、消費者がオンのときにメッセージを追加すると、メッセージは送信されたのと同じ順序で受信されます。activemqの優先度
設定は非常に簡単です:
優先順位は、ActiveMQの設定ファイルで活性化した。
<policyEntries>
<policyEntry queue=">" prioritizedMessages="true"/>
...
</policyEntries>
およびQoSはプロデューサーテンプレートの設定で有効になっていました:
<bean id="jmsOCRTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory" />
<property name="defaultDestination" ref="destination_ocr" />
<property name="explicitQosEnabled" value="true" />
</bean>
送信するにはメッセージは優先度が高く、プロデューサ側のテンプレート優先度プロパティを変更するだけです:
template.setPriority(9);
これは正常な動作ですか、あるいは忘れてしまった設定ですか?
最新のActiveMQの5.6-SNAPSHOTになど行くを与えたいと思うかもしれませんそれはあなたの状況を改善する可能性がある優先順位の分野でいくつかの修正があります。 –