2013-01-10 23 views
0

我們的應用部署在Jboss的觀點SOA platform.Performance點,我們已經註釋掉中的jboss-esb.xml的DeadLetterService。因此,如果發生任何異常或消息未傳送給第三方,則不應進入DLQ。但現在我們發現了以下錯誤DeadLetterService在JBoss中

******************************** 
2012-12-18 18:02:30,996 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/ServiceName].[HttpGateway]] (http-0.0.0.0-9032-14) Servlet.service() for servlet HttpGateway threw exception 
org.jboss.soa.esb.listeners.message.MissingServiceException: Registry details for service [JBossESB-Internal:DeadLetterService] could not be determined from the registry. 
     at org.jboss.soa.esb.client.ServiceInvoker.post(ServiceInvoker.java:348) 
******************************** 

它走約5分鐘發送給第三party.We響應試圖找出延誤的原因。

任何人都可以知道問題是如何與「DeadLetterService」有關係嗎?或者我如何重現這個問題?或爲什麼5分鐘延遲?

回答

0

我不知道你通過關閉DeadLetterService性能方面的原因,但由於調用此服務ServiceInvoker被硬編碼它是不是一個好主意,完全移除該服務的意思。

可以通過一個屬性關掉它的使用,無論是全球或每個消息。

的DeadLetterService默認情況下開啓,但是在 jbossesbproperties.xml中你可以設置org.jboss.soa.esb.dls.redeliver 爲false關閉其使用。如果你想控制這對每個 消息,然後根據具體的消息屬性設置相應的org.jboss.soa.esb.dls.redeliver財產 。 Message屬性將優先於任何全局設置使用 。缺省值是使用配置文件中設置的值 。

https://access.redhat.com/knowledge/docs/en-US/JBoss_Enterprise_SOA_Platform/5/html/ESB_Programmers_Guide/chap-SOA_ESB_Programmers_Guide-Advanced_Topics.html#idp10520576