19.3. 配信数の永続化
通常は、メッセージがロールバックされるまで HornetQ は更新された配信数を永続化しません (つまり、配信数はメッセージがコンシューマーに配信される前に更新されません)。メッセージングのほとんどのケースでは、メッセージは消費および承認され、消費されたときにすぐに忘れられます。このような場合、メッセージの配信前に配信数を永続的に更新すると、配信された各メッセージに対して永続化ステップが追加され、パフォーマンスが大幅に低下します。
ただし、サーバークラッシュ時に、メッセージ配信前に配信数が永続的に更新されないと、一部のメッセージの配信が配信数に反映されないことがあります。したがって、復元段階では、サーバーは
redelivered が false に設定されたメッセージを配信できます (true である必要がある場合)。
この動作により厳密な JMS セマンティクスが破壊されるため、HornetQ ではメッセージ配信前に配信数を永続化できます。ただし、パフォーマンス上の理由からこれはデフォルトで無効になります。この動作を有効にするには、
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml で persist-delivery-count-before-delivery を true に設定します。
<persist-delivery-count-before-delivery> true </persist-delivery-count-before-delivery>
<persist-delivery-count-before-delivery>
true
</persist-delivery-count-before-delivery>