У нас есть эта очередь, в которую мы получаем несколько больших файлов и много маленьких, поэтому мы используем divert, чтобы поместить большие файлы в их собственную очередь. Диверсия эксклюзивная. Однако обратите внимание, что в папке больших сообщений есть две копии сообщения (это байтовое сообщение — файл со свойствами) для каждого перенаправленного большого сообщения. Как только мы используем перенаправленное сообщение, одно из них исчезает, а другое остается до тех пор, пока шершень не будет перезапущен. При перезапуске мы видим сообщения, подобные следующим:
[org.hornetq.core.server] HQ221018: большое сообщение: 19 327 352 827 не имеет связанной ссылки, файл будет удален
Мы используем потоковую передачу через JMS, чтобы вводить и извлекать их.
Ниже приведена конфигурация переадресации. Кстати, большим размером в нашем HornetQ считается все, что больше 100k.
Мы что-то упустили или просто обнаружили ошибку?
Версия HornetQ 2.3.0
<diverts>
<divert name="large-message-divert">
<routing-name>large-message-divert</routing-name>
<address>jms.queue.FileDelivery</address>
<forwarding-address>jms.queue.FileDelivery.large</forwarding-address>
<filter string="_HQ_LARGE_SIZE IS NOT NULL AND _HQ_LARGE_SIZE > 52428800"/>
<exclusive>true</exclusive>
</divert>
</diverts>