2013-01-10 16 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