Spring集成分配器聚合器内存泄漏

时间:2015-04-15 22:45:49

标签: spring-integration splitter

我创建了以下项目:

https://github.com/adispennette/splitter-aggregator-leak-example

测试我在另一个应用程序中看到的内存泄漏。 我正在使用eclipse运行junit并使用jconsole监视内存。 一旦测试开始,我就连接到JUnit跑步者并做一个手动GC。 从那时起,我让它运行,内存继续增加。 这里的理论是聚合器没有正确释放。

我试图以我能想到的各种方式发布这些集合,但它一直在增长。

有什么我想念的吗?

1 个答案:

答案 0 :(得分:2)

为了丢弃迟到的消息,聚合器必须保留已发布组的元数据。设置expire-groups-upon-completion="true"以在发布组时删除此元数据。但是,迟到的消息现在将形成一个新组。

如果您想要默认行为但担心元数据所需的少量内存,则可以按照in the documentation所述配置MessageGroupStoreReaper。空组可以按不同的计划到期到部分组。