Class MessageStoreListener

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

public class MessageStoreListener extends JdbcTableListener<Serializable>
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