Class MessageStoreListener<M>

All Implemented Interfaces:
HasPhysicalDestination, IConfigurable, IConfigurationAware, IHasProcessState<M>, IListener<M>, INamedObject, IPeekableListener<M>, IProvidesMessageBrowsers<M>, IPullingListener<M>, IScopeProvider, IXAEnabled, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

public class MessageStoreListener<M> extends JdbcTableListener<M>
Read messages from the IBISSTORE database table previously stored by a MessageStoreSender. Example configuration:
        <Receiver
                name="03 MessageStoreReceiver"
                numThreads="4"
                transactionAttribute="Required"
                pollInterval="1"
                >
                <MessageStoreListener
                        name="03 MessageStoreListener"
                        slotId="${instance.name}/TestMessageStore"
                        statusValueInProcess="I"
                />
        </Receiver>
 
If you have a MessageStoreListener, failed messages are automatically kept in database table IBISSTORE. Messages are also kept after successful processing. The state of a message is distinguished by the TYPE field, as follows:
  • M: The message is new. From a functional perspective, it is in the message store.
  • E: There was an error processing the message. From a functional perspective, it is in the error store.
  • A: The message was successfully processed. From a functional perspective, it is in the message log.
Another way to say this is that a MessageStoreListener acts as a message log and as an error store. If you have it, you do not need to add a JdbcErrorStorage or JdbcMessageLog within the same receiver.

See /IAF_util/IAF_DatabaseChangelog.xml for the structure of table IBISSTORE.
Author:
Jaco de Groot