Class MessageStoreSender

All Implemented Interfaces:
HasPhysicalDestination, IConfigurable, IConfigurationAware, IMessageBrowser<String>, INamedObject, IScopeProvider, ISender, ISenderWithParameters, ITransactionalStorage<String>, IWithParameters, IXAEnabled, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

Send messages to the IBISSTORE database table to have them processed exactly-once by another adapter which will read the messages using a MessageStoreListener. This other adapter will process the messages asynchronously and (optionally) under transaction control. Duplicate messages are ignored based on the messageId (except when onlyStoreWhenMessageIdUnique is set to false), hence the sender of the message can retry sending the message until a valid reply is received in which case it can be certain that the message is stored in the database table IBISSTORE.

If you have a MessageStoreSender it does not make sense to add a JdbcMessageLog or JdbcErrorStorage in the same sender pipe. A MessageStoreSender acts as a message log and an error store. It can be useful however to add a message log or error store to the adapter around the sender pipe, because errors may occur before the message reaches the sender pipe.

Example configuration:

 <SenderPipe name="Send">
     <MessageStoreSender
 	     slotId="${instance.name}/TestMessageStore"
 		 onlyStoreWhenMessageIdUnique="false" />
 </SenderPipe>
 
Author:
Jaco de Groot
Specific parameters
messageId messageId to check for duplicates, when this parameter isn't present the messageId is read from sessionKey messageId