javaspringspring-integrationspring-integration-dslspring-dsl

Spring Integration Aggregation Memory Leak


There are two separate structures that I use splitter and aggregator in Spring integration,

When I perform a load test on the system, the memory (heap) used by the service that implements Aggregator increases at the same rate to the data I feed and remains constant. Is there something I am using wrong?

I delete the message groups when they are completed and when I check the count, the message group store returns 0.

The configuration,

CorrelationStrategy -> HeaderAttributeCorrelationStrategy,

MessageGroupStore -> SimpleMessageStore,

ReleaseStrategy -> SimpleSequenceSizeReleaseStrategy,

expireGroupsUponCompletion -> true,

I'm running a MessageGroupStoreReaper every 10 seconds and the timeout is 30 seconds.

Thanks.


Solution

  • Spring Integration was not creating a memory leak for my problem, Because the Collection<Message> in it is already cleaned after the group is released, one of the concerns here may be the memory occupied by the groups. You can use expireGroupsUponCompletion(true) for this, so it will be cleared after the group is released.

    In addition, you can configure groupTimeout to secure your work for Memory leak problem.