Я создаю простое приложение делегирования сообщений. Сообщения отправляются на обоих концах через JMS. Я использую MDB для обработки входящих сообщений, их преобразования и отправки в целевую очередь. К сожалению, одни и те же сообщения могут быть отправлены во входящую очередь более одного раза, но пересылка дубликатов не допускается.
Так каков наилучший способ добиться этого?
Поскольку во входящей очереди может прослушиваться несколько MDB, мне нужен один кеш, где я могу хранить уникальные uuid сообщений входящих сообщений в течение как минимум часа. Как получить доступ к этому кешу? Через одноэлементный/статический класс (я использую Java EE 5 и, следовательно, не имею одноэлементной аннотации)?
Кроме того, я думаю, что все операции должны быть синхронизированы, верно? Это сильно вредит производительности?