【问题标题】:WSO2 EI 6.4.0 warning messagesWSO2 EI 6.4.0 警告消息
【发布时间】:2021-03-28 00:37:39
【问题描述】:

当我开始负载测试时,EI 日志中会显示警告消息。
WARN - TargetHandler http-outgoing-519: Request not started while the handler is in an inconsistent state RESPONSE_DONE
WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:38d9964b-4fec-4989-ae32-957f9636fa52 But a callback is not registered (anymore) to process this response

这些警告会在呼叫中介调用后端时显示。
这不能超时,因为没有调用故障序列。

单次调用不会产生这些警告。警告仅在负载测试下出现。

我该如何解决这些警告?

编辑:
我记录消息:
2020-12-17 12:06:35,671 - 调用后端
2020-12-17 12:06:35,681 - 警告
2020-12-17 12:06:35,706 - 来自后端的响应

警告后,消息被进一步正确处理

【问题讨论】:

    标签: wso2 wso2esb esb wso2ei ei


    【解决方案1】:

    以下 WARN 消息的解释。

    WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:38d9964b-4fec-4989-ae32-957f9636fa52 But a callback is not registered (anymore) to process this response
    

    在 WSO2 EI 中,请求通过 PassThrough Transport 以异步方式处理。假设 EI 服务器收到一个请求。然后使用单个线程来处理请求并执行中介。在请求发送到外部后端之前,在回调存储中注册一个回调并将线程释放到线程池中。当接收到特定请求的响应时,另一个线程用于关联回调并处理响应。如果收到响应或在端点超时之后,则从回调存储中清除回调。

    如果在超时后收到响应(由于后端速度慢),则会记录上述 WARN 消息,因为回调在回调存储中不可用。

    我假设您的后端负载越来越慢。您可以通过直接点击后端服务的负载来检查这一点。

    由于 EI[1] 中的状态机不一致,似乎记录了另一条 WARN 消息。如果可以,请分享与流程相关的完整突触配置。

    [1]https://wso2.com/library/articles/2014/04/demystifying-wso2-esb-pass-through-transport-part-iii

    【讨论】:

    • 感谢您的回答。后端似乎还可以。当后端没有在端点定义中定义的时间内响应时,我会在日志中看到超时。对我来说奇怪的是,即使我收到警告,也会收到响应并正确处理。与流程相关的完整突触配置是什么意思?
    • 我认为在端点超时后不会处理响应。在 EI 中,有一个超时处理程序,它每隔 15 秒(默认值)间隔运行一次,以检测端点超时并删除回调。如果在日志中打印端点超时日志,则不再有针对特定请求的回调。如果在超时后收到响应,则会在日志中打印上述警告消息。
    • 突触配置意味着你的代理服务、API、序列等
    • 抱歉,我无法共享突触配置。如果你愿意,我可以给你看一个简化的消息流图。我同意,在未处理端点超时响应之后,我看到了包含端点超时信息的日志,然后调用了故障序列。但是当这 2 个警告显示时,有关超时的信息没有显示在日志中,故障序列没有调用,并且在这些警告响应之后正在处理。我在负载测试中设置了断言,得到了正确的响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多