httprequest - 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 是根本原因,您能否分享一些想法?提前非常感谢。
解决方案
这可能与您提到的警告无关,但似乎没有足够的信息来确定实际的根本原因。
话虽如此,HTTP 连接器的版本已经过时,并且缺少近 3 年的修复。将版本更新到最后一个版本应该可以提高应用程序的可靠性。
推荐阅读
- java - 带有 SimpleJdbcCall 调用函数的 PLS-00306
- reactjs - 如何在 React Native 中将参数传递到下一个屏幕
- javascript - 从输入表单传递数据以更改 redux 状态
- python - 返回列表的最高值
- javascript - 在 node.js angular 和 mysql 工作台之间建立数据库连接
- elasticsearch - Kibana Dashboard Share 无需登录
- kubernetes - 如何在部署中引用 ReplicaSet?
- c# - 写入我的 Access 数据库时出现语法错误
- javascript - 在 React.js 中,onClick 函数在没有页面刷新的情况下不显示详细信息
- android - 获取 NullPointerException:缺少具有自定义视图 ID 的必需视图