2012-03-22 94 views
1

我正在使用部署在WAS 61上的MDB。我有一个队列(X)和一个退出队列(Y)。当在X上侦听的MDB无法处理消息并引发EJB异常时,事务将回滚,并将原始消息放在撤销队列中。 回退队列(Y)有其自己的MDB,它会接收邮件并通过电子邮件发送给支持团队。到现在为止还挺好。在MDB退出队列中放置自定义消息

现在,如果除了邮件中的消息之外,支持团队还会得到很多帮助,他们还可以看到EJB引发的异常。因为只看消息,不可能弄清楚哪里出了问题。在将其放入退出队列之前,是否可以将异常添加到原始消息中?

回答

1

ObjectMessage :

ObjectMessage的object对象用于发送包含在Java编程语言中 序列化的对象( “Java对象”)的消息。 它从Message接口继承,并添加一个包含对对象的单引用的主体。只有可串行化的Java对象可以使用 。

您可以创建一个类实现Serializable接口&可以有适当的属性来保存异常详细信息。然后通过在ObjectMssage中设置此对象,可以将它放入队列中。

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

在接收机端,可以从消息&异常细节的情况下获得该对象可以被它相应的检索表。

+0

谢谢。我可以在我的主MDB(X)中执行此操作吗? – Victor 2012-03-23 17:28:00

+0

@Kaushik是的,你只能改变你遇到异常后发送的消息类型。 – 2012-03-24 05:06:48