Skip to content

Resequence Message Store

Introduction

Used for storing a stream of related but out-of-sequence messages so that they can be put back into the correct order. It collects and reorders the stored messages based on a defined sequence number derived from some part of the message. The messages are then published to the output channel in a specific order. This helps when the order of message delivery is important. For example, it avoids some messages arriving earlier than others.

The resequencing store is an extension of the existing JDBC-based message store. Hence, it inherits most of its properties from the JDBC message store.

Properties

Listed below are the properties used for creating a Resequence Message Store.

Required Properties

The following properties are required when creating a Resequence Message Store.

Name The name of the message store.
Database Table The name of the database table.
Driver The class name of the database driver.
URL The JDBC URL of the database that the data will be written to.
User The user name used to connect to the database.
Password The password used to connect to the database.
Resequence Timeout (Seconds) The time the Message Processor waits for a message, which is missing to reorder them based on a specified order.
Sequence ID Path The path from which, the Store identifies the sequence ID from the message content.

Optional Properties

The following optional properties can be configured when creating a Resequencer Message Store.

Property Description
store.resequence.timeout The time the Processor waits for a message, which is missing to reorder them based on a specified order. If the current message sequence is 3, its predecessor would be 2 and the successor would be 4, and thereby, if 4 is not present, then there is a gap in the sequence. Therefore, the processor waits until the specified set time-out exceeds, and selects the next minimum sequence ID available as the predecessor. However, the time-out will be a rough estimate. The durations could vary depending on the load of the machine. Specify a positive integer for the count and the timeout in seconds. If you specify the count as -1, then the processor will wait indefinitely until the correct sequence ID is present to fill the gap.
store.producer.guaranteed.delivery.enable Whether you want to enable guaranteed delivery or not. For more information, see Guaranteed Delivery with Failover Message Store and Scheduled Failover Message Forwarding Processor. Set True/False.
store.failover.message.store.name The name of the Message Store used if the original message store fails. For more information, see Guaranteed Delivery with Failover Message Store and Scheduled Failover Message Forwarding Processor. An appropriate String value
store.resequence.id.path

The path from which, the Store identifies the sequence ID from the message content. The path could be either XPath or JSON. You can specify it in the expression field. Set a positive integer as the sequence ID. The store expects the sequence ID to start from 1.

store.jdbc.password The password to access the database. An appropriate String value
store.jdbc.driver The class name of the database driver. An appropriate String value.
store.jdbc.username The username to access the database. An appropriate String value.
store.jdbc.connection.url The database URL. An appropriate String value of a URL.
store.jdbc.table Table name of the database in which, messages will be stored. An appropriate String value