Thanks Oleg for your reply.
Our application generates about 50 different events.
We use the following configuration for each event:
1. Queue Channel for buffering messages, backed by a jdbc message store
Code:
<jdbc:message-store id="TESTMsgStore" data-source="GlobalMsgStoreDS" region="TEST1" />
<si:channel id="TESTQ">
<si:queue message-store="TESTMsgStore" />
</si:channel>
2. A pub-sub channel
Code:
<si:publish-subscribe-channel id="TESTPubSubChnl" >
<si:interceptors>
<ref bean="GlobalMsgInterceptor" />
</si:interceptors>
</si:publish-subscribe-channel>
<si:service-activator input-channel="TESTPubSubChnl" ref="TestSubscriber" method="processMsg" />
3. A chain to connect the queue and the pubsub channel:
Code:
<si:chain input-channel="TESTQ" output-channel="TESTPubSubChnl">
<si:poller fixed-rate="60000" max-messages-per-poll="1" task-executor="">
<si:transactional transaction-manager="txManager" />
</si:poller>
<si:filter ref="GlobalMsgSelector" />
</si:chain>