Nav
You are viewing an older version of this section. Click here to navigate to the latest version.

Idempotent Filter

Ensures that only unique messages are received by a service by checking the unique ID of the incoming message.

Idempotent Message Filter

Ensures that only unique messages are received by a service by checking the unique ID of the incoming message. Note that the ID used can be generated from the message using an expression defined in the 'idExpression' attribute. By default, the expression used is '#[message:id]', which means the underlying endpoint must support unique message IDs for this to work. Otherwise, a UniqueIdNotSupportedException is thrown.

Attributes of <idempotent-message-filter…​>

Name Type Required Default Description

name

name (no spaces)

no

Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level.

onUnaccepted

string

no

Events that are not accepted by the filter are sent to this (optional) named message processor.

throwOnUnaccepted

boolean

no

Whether to throw an exception if a message is not accepted

idExpression

string

no

Defines one or more expressions to use when extracting the ID from the message. For example, it would be possible to combine to headers as the ID of the message to provide idempotency: '[headers:foo,bar]'. Or, you could combine the message ID with a header: '[message:id]-[header:foo]'. If this property is not set, '[message:id]' will be used by default.

valueExpression

string

no

Defines one or more expressions to use when extracting the value from the message.

storePrefix

name (no spaces)

no

Defines the prefix of the object store names.

Child Elements of <idempotent-message-filter…​>

Name Cardinality Description

abstract-object-store

0..1

A placeholder for an object store that can be used by routers to maintain state.