Я бы хотел перевести концепцию тем JMS с помощью основного API HornetQ.
Проблема, которую я вижу из моего краткого исследования, может показаться, что основной класс JMSServerManagerImpl (из hornetq-jms.jar) использует jndi для координации различных коллабораторов, которые ему требуются. Я хотел бы избежать jndi, так как он не самодостаточен и является глобально разделяемым объектом, что является проблемой, особенно в среде osgi. Одной из альтернатив является копирование, начиная с JMSServerManagerImpl, но это кажется большой работой.
Я бы предпочел подтвердить, что мой подход к эмуляции того, как темы поддерживаются в hornetq, является правильным способом решения этой проблемы. Если кто-то обладает достаточными знаниями, возможно, они могут прокомментировать, как мне кажется, подход к написанию моей собственной эмуляции тем с использованием базового API.
УСЛОВИЕ
- в случае сбоя получателя сообщения (с помощью отката) контейнер попытается доставить сообщение другому получателю по той же теме.
Эмуляция
- переносить каждое сообщение, добавленное к теме.
- отправитель отправляет сообщение с набором обработчиков подтверждения.
- оболочка для (1) будет откатываться после возвращения реального слушателя.
- отправитель затем подтверждает доставку
Я предполагаю, что после 4 сообщение доставляется после его передачи всем получателям сообщения. Если я допустил какие-либо ошибки или мои предположения неверны, пожалуйста, прокомментируйте. Я не уверен точно, правильно ли это предположение о том, как работают подтверждения, поэтому любые указатели были бы хорошими.