我运行了wso2esb 4.8.0并部署了一些代理。
在收到来自esb的响应之前,一切正常,直到调用代理的客户端开始断开连接。
几分钟后,ESB进入outOfmemory错误。
请求的平均大小为:1.2 Kb。 答案的平均大小为:1.6 Mb。
服务器正在运行:-Xms256m -Xmx1024m -XX:MaxPermSize = 256m。
在堆转储中,我可以看到保留内存的主要类是java.lang.Thread(PassThroghtMessageProcessor),很多都是36Mb的大小。
有时也会出现此错误:java.lang.OutOfMemoryError:超出GC开销限制
如果客户不断开连接,一切运行良好。
任何想法?
答案 0 :(得分:0)
如果客户端断开连接,可能根本原因是您的后端需要很长时间才能回答。
您可以做一些事情:
减少后端响应的超时,因此消息不会堆积在ESB上
使用限制中介或处理程序来拒绝超过特定费率的邮件。
两者都针对症状(ESB的oom)。除此之外,可能需要重新设计集成模型,可能采用存储转发方法。