2012-03-22 4 views
1

Я использую MDB, развернутые на WAS 61. У меня есть очередь (X) и очередь резервного копирования (Y). Когда прослушивание MDB на X не обрабатывает сообщение, а исключение EJB выбрано, транзакция возвращается назад, и я помещаю исходное сообщение в очередь резервного копирования. Резервная очередь (Y) имеет свой собственный MDB, который берет сообщение и отправляет в службу поддержки по электронной почте. Все идет нормально.Поместить собственное сообщение в очередь резервного копирования MDB

Теперь команде поддержки будет очень помогать, если в дополнение к сообщению в электронном письме они также могут увидеть исключение, которое было выброшено EJB. Потому что, глядя только на сообщение, невозможно понять, что пошло не так. Есть ли способ добавить исключение в исходное сообщение перед тем, как поместить его в очередь резервного копирования?

ответ

1

ObjectMessage :

Объект ObjectMessage используется для отправки сообщения, содержащего сериализуемой объект в языке программирования Java ("Java объект"). Он наследует интерфейс сообщения и добавляет тело, содержащее одну ссылку на объект . Только Serializable Java-объекты могут быть использованы как .

Вы можете создать класс, реализующий интерфейс Serializable & может иметь собственные атрибуты для хранения деталей исключения. Затем, установив этот объект в ObjectMssage, вы можете поместить его в очередь.

objectMessage.setObject(object); //-- Setting serializable object 

В конце приемника, этот объект может быть получен из сообщения & деталей исключения могут быть получены формы его соответствующим образом.

+0

спасибо. Могу ли я сделать это внутри основного MDB (X)? – Victor

+0

@ Kaushik Да, вы должны изменить только тип сообщения, которое вы отправляете после получения исключения. –