Class JdbcSequencedDeadLetterQueue<E extends EventMessage>

java.lang.Object
org.axonframework.messaging.eventhandling.deadletter.jdbc.JdbcSequencedDeadLetterQueue<E>
Type Parameters:
E - An implementation of EventMessage contained in the dead-letters within this queue.
All Implemented Interfaces:
SequencedDeadLetterQueue<E>

public class JdbcSequencedDeadLetterQueue<E extends EventMessage> extends Object implements SequencedDeadLetterQueue<E>
A JDBC-based implementation of the SequencedDeadLetterQueue, used for storing dead letters containing event messages durably. Use the
invalid reference
#createSchema(DeadLetterTableFactory)
operation to build the table and indices required by this SequencedDeadLetterQueue, providing the desired DeadLetterTableFactory. The statements used by this queues methods can be optimized by providing a custom DeadLetterStatementFactory.

Keeps the insertion order intact by saving an incremented index within each unique sequence, backed by the index property. Each sequence is uniquely identified by the sequence identifier, stored in the DeadLetterSchema.sequenceIdentifierColumn() sequence identifier} field.

When processing an item, single execution across all applications is guaranteed by setting the processing started property, locking other processes out of the sequence for the configured claimDuration (30 seconds by default).

The stored entries are converted to a JdbcDeadLetter when they need to be processed or filtered. In order to restore the original EventMessage the DeadLetterJdbcConverter is used. The default supports all EventMessage implementations provided by the framework. If you have a custom variant, you have to build your own.

invalid reference
upcasters
are not supported by this implementation, so breaking changes for events messages stored in the queue should be avoided.
Since:
4.8.0
Author:
Steven van Beelen