The reference documentation recommends using a reaper with an aggregator in order to prevent memory leaks due to stacked-up MessageGroup metadata.
https://docs.spring.io/spring-integration/reference/html/message-routing.html#aggregator
Is this always the case, that a reaper is necessary? Or is there a combination of aggregator attributes like expire-groups-upon-completion and/or expire-groups-upon-timeout that can set up conditions such that MessageGroup data is removed?
thanks for any pointers
Your observation is correct. The
expire-groups-upon-completionensures that completed groups are removed from the store. Theexpire-groups-upon-timeout, in combination with agroup-timeout, does similar to the reaper functionality. Also, if you use a persistent store for theMessageGroupStore, then all your group are unloaded from the memory to DB.