问题描述
我有具有SAF配置的本地Weblogic。
目的地已关闭,我在日志(日志/ safagents / ContentEnginesAF / jms.messages.log )中看到,我发送的某些消息已存储和不到100毫秒后过期。
当目标启动并运行时,那些存储的消息根本不会转发。在Weblogic的何处查看为什么邮件不转发?
配置的哪一部分负责此行为:
存储->尝试转发(日志中没有此消息)->到期->尝试再次转发->到期->尝试再次转发->转发
在日志中,我仅具有有关JMS消息或“存储并转发”的存储和过期信息。
在SAF代理中,生存时间为0,这意味着消息处于“当前”状态时,它应该一直存在,直到转发(消耗)为止。
但是在JMS模块myJMSSystewmResource,mySAFImportedDestination / Queues / myQueue中,有 SAF默认生存时间:100 。我猜这里的配置如果在100毫秒后失败,请转到过期并从Store中删除,对吧?
那么,要一直到成功发送成功消息,才应该为0或-1?
已编辑
消息过期后,意味着它已从商店中删除,这就是为什么不再发送消息的原因。
这就是为什么我实施SAF错误处理的原因,现在没有过期或已删除的消息,但是仍有一些消息只是存储而没有转发。
我应该更改生存时间值吗,如何更改0,-1或大于100ms的数字?
解决方法
这是saf代理生存时间的Oracle描述:
代理保证可靠发送消息的默认时间(以毫秒为单位)。 值为0表示代理保证在对话期间可靠地发送消息。 更新DefaultTimeToLive会使对话在更新后开始使用新值。 MBean属性: SAFAgentMBean.DefaultTimeToLive 最小值:0
以下是安全代理错过邮件传递的原因:
Network outage
The endpoint does not exist (not configured)
The endpoint is down
Endpoint quota failure
Security denial
Required QOS is not supported
The WSRM conversation times out (the conversation is idle for too long).
在发送saf代理另一侧查看导入的目的地。