首页 > 解决方案 > Mulesoft 中的 SO_KEEPALIVE 问题

问题描述

我们有一个 Mulesoft 应用程序,它基本上从队列(ActiveMQ)中选择消息,然后通过 HTTP 请求发布到目标应用程序到目标的 API。

运行时: 4.3.0 HTTP 连接器版本: v1.3.2 服务器: Windows,本地独立

但是,有时从队列中选择后消息没有成功发送,并且可以在日志中找到以下消息 -

WARN 2021-07-10 01:24:46,080 [[masked-app].http.requester.requestConfig.02 SelectorRunner] [event: ] org.glassfish.grizzly.nio.transport.TCPNIOTransport:GRIZZLY0005:无法将 SO_KEEPALIVE 设置为false java.net.SocketException:无效参数:sun.nio.ch.Net.setIntOption0(Native Method) ~[?:1.8.0_281] 处没有更多信息

在上述消息之后,流程静默完成,没有任何错误,因此不会发生错误处理。我发现提到它是 Windows 服务器上的一个已知错误,不会影响应用程序的良好行为,但文档未能将 SO_KEEPALIVE 设置为 true 而不是 false。

看起来消息没有成功发布,因为目标系统团队在他们的日志中找不到相应的传入请求。

这是不可接受的,因为消息很关键,除非目标系统意识到有问题,否则没人知道……不确定 SO_KEEPALIVE 是否未能设置为 false 是根本原因,您能否分享一些想法?提前非常感谢。

标签: httprequestmulesoft

解决方案


这可能与您提到的警告无关,但似乎没有足够的信息来确定实际的根本原因。

话虽如此,HTTP 连接器的版本已经过时,并且缺少近 3 年的修复。将版本更新到最后一个版本应该可以提高应用程序的可靠性。


推荐阅读