Results 1 to 5 of 5

Thread: Issue with Aggregation jdbc message store.

  1. #1
    Join Date
    Sep 2010
    Posts
    23

    Default Issue with Aggregation jdbc message store.

    Hi All,

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

    <bean id = "messageStore" class = "org.springframework.integration.store.SimpleMessa geStore"/>
    <bean id="messageStoreReaper" class="org.springframework.integration.store.Messa geGroupStoreReaper">
    <property name="messageGroupStore" ref="messageStore" />
    <property name="timeout" value="60000" />
    </bean>

    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. #2
    Join Date
    Jan 2008
    Location
    Mohnton, PA USA (that's near Philadelphia)
    Posts
    2,148

    Default

    Actually this is a bug. I see where it happens. Could you please raise a JIRA https://jira.springsource.org/browse/INT
    I'll make sure it will be fixed for RC1

  3. #3
    Join Date
    Oct 2011
    Location
    Portland, OR
    Posts
    1

    Default

    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. #4
    Join Date
    Jan 2008
    Location
    Mohnton, PA USA (that's near Philadelphia)
    Posts
    2,148

    Default

    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. #5
    Join Date
    Oct 2005
    Location
    Boston, MA
    Posts
    2,840

    Default

    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •