У меня возникают проблемы с настройкой моста темы в HornetQ (related to earlier question). Идея заключается в следующем:HornetQ Тема для сообщения о мостах моста
- Уведомление будет размещена в теме на сервере HornetQ
- Это уведомление отправляется в теме на HornetQ сервере В течение основного моста
- клиент приложение получает уведомление от сервер B.
Проблема, с которой я столкнулся сейчас, заключается в том, что если сервер B не работает, уведомление опускается. Я бы использовал очередь, но нам нужны другие подписчики. Я надеялся, что мост будет прочным, и сообщения будут сделать это к теме на сервере B. так, как я это настроило находится в hornetq-configuration.xml:
<queues>
<queue name="jms.topic.topic.dat.cds.internal">
<address>jms.topic.topic.dat.cds.internal</address>
</queue>
</queues>
<bridges>
<bridge name="cds-bridge">
<queue-name>jms.topic.topic.dat.cds.internal</queue-name>
<forwarding-address>jms.topic.topic.dat.cds</forwarding-address>
<reconnect-attempts>-1</reconnect-attempts>
<use-duplicate-detection>true</use-duplicate-detection>
<static-connectors>
<connector-ref>remote-connector</connector-ref>
</static-connectors>
</bridge>
</bridges>
Это работает только тогда, когда оба сервера вверх.
Есть ли способ сделать мост прочным абонентом? Есть что-то, что мне не хватает?
[EDIT - solution] - Это работает. Фокус в том, что имена тем должны быть одинаковыми.
<queues>
<queue name="jms.topic.topic.dat.cds">
<address>jms.topic.topic.dat.cds</address>
</queue>
<bridges>
<bridge name="cds-bridge">
<queue-name>jms.topic.topic.dat.cds</queue-name>
<forwarding-address>jms.topic.topic.dat.cds</forwarding-address>
<reconnect-attempts>-1</reconnect-attempts>
<use-duplicate-detection>true</use-duplicate-detection>
<static-connectors>
<connector-ref>remote-connector</connector-ref>
</static-connectors>
</bridge>
</bridges>
Я думаю это то, что я есть выше. Основная очередь - «jms.topic.topic.dat.cds.internal». Он переместится через мост в «jms.topic.topic.dat.cds». Если мост отключен (т. Е. Второй сервер отключен), сообщение темы теряется. Я ожидаю, что мост будет функционировать как долговечный подписчик и всегда будет удерживать сообщение темы, пока тема на другой стороне моста не будет доступна. –
Как называется тема в Source? похоже, у вас неправильный адрес –
«jms.topic.topic.dat.cds.internal» - это тема на стороне источника моста. «jms.topic.topic.dat.cds» - это тема на стороне потребителя. –