Announcement Announcement Module
No announcement yet.
Issue with Aggregation jdbc message store. Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Issue with Aggregation jdbc message store.

    Hi All,

    We configured an Aggregator with SimpleMessageStore with reaper timeout of 60secs.

    <bean id = "messageStore" class = " geStore"/>
    <bean id="messageStoreReaper" class=" geGroupStoreReaper">
    <property name="messageGroupStore" ref="messageStore" />
    <property name="timeout" value="60000" />

    In this case Aggregator is working fine for every 60 secs as expected.

    However If we changed message store to JDBC message store, i.e,
    <jdbc:message-store id="messageStore" data-source="dataSource" />

    We are facing issue like, Aggregation timeout is calculating from the point where it receives the last message in the aggregator's input channel.

    But we require aggregator timeout to be started as and when first message is received.

    Please let us know if any one have the idea on this.

    Thanks in Advance,
    Mohan Maligireddy

  • #2
    Actually this is a bug. I see where it happens. Could you please raise a JIRA
    I'll make sure it will be fixed for RC1


    • #3
      That is actually kind of a neat idea. I have some situations where I have timeouts in place, but it would be handy to not timeout if work is still coming in. The ability for a MessageStore to know when its last message came in, and for the MessageGroup to be able to evict based on a rolling timeout (kind of like fixed vs delay poller) might be very useful.

      Anyone else think so?


      • #4
        No, In our opinion MessageStore should not be aware of anything other than how to store messages. That is why we have a separate process (Reaper) that looks through the MessageStore and checking for a timestamp and removing messages. As far as knowing things like 'last' message etc., it is also not responsibility of the MessageStore for one simple reason. THe concept of 'last' message is only relevant in the Aggregator use case, but MessageStore is used in a lot of other components (e.g., QueueChannel, ClaimCheck etc.) which do not have a concept of 'first' or 'last' message.


        • #5
          But in a MessageGroupStore, it would be possible to know right? The idea that any activity "resets" the clock for timeout purposes is actually very interesting.