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