2012-03-22 83 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