Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level.
Type: name (no spaces)
Required: No
Default: None
This filter ensures that only unique messages are received by a service by checking the unique ID of the incoming message. |
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.
Attribute | Description |
---|---|
name |
Identifies the processor so that other elements can reference it. Required if the processor is defined at the global level. Type: name (no spaces) |
onUnaccepted |
Events that are not accepted by the filter are sent to this (optional) named message processor. Type: string |
throwOnUnaccepted |
Whether to throw an exception if a message is not accepted. Type: boolean |
idExpression |
Defines one or more expressions to use when extracting the ID from the message. For example, it’s possible to combine 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, the following is used by default: #[message:id] Type: string |
valueExpression |
Defines one or more expressions to use when extracting the value from the message. Type: string |
storePrefix |
Defines the prefix of the object store names. Type: name (no spaces) |
Defines a policy for processing the redelivery of the same message.
Attribute | Description |
---|---|
maxRedeliveryCount |
The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message. Type: integer |
useSecureHash |
Whether to use a secure hash algorithm to identify a redelivered message. Type: boolean |
messageDigestAlgorithm |
The secure hashing algorithm to use. If not set, the default is SHA-256. Type: string |
idExpression |
Defines one or more expressions to use to determine when a message has been redelivered. For example,it would be possible to combine to headers as the unique ID of the message: #[headers:foo,bar] Or, you could combine the message ID with a header: #[message:id]-#[header:foo] This property may only be set if useSecureHash is false. Type: string |
object-store-ref |
The object store where the redelivery counter for each message is going to be stored. Type: string |
Ensures that only unique messages are received by a service by calculating the hash of the message itself using a message digest algorithm. This provides a value with an infinitesimally small chance of a collision. This can be used to filter message duplicates. Keep in mind that the hash is calculated over the entire byte array representing the message, so any leading or trailing spaces or extraneous bytes (like padding) can produce different hash values for the same semantic message content. Care should be taken to ensure that messages do not contain extraneous bytes. This class is useful when the message does not support unique identifiers.
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, this expression used is:
#[message:id]
This means that the underlying endpoint must support unique message IDs for this to work. Otherwise, a UniqueIdNotSupportedException
is thrown.
Attribute | Description |
---|---|
idExpression |
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, this is used by default: #[message:id] Type: string |
Ensures that only unique messages are received by a service by calculating the hash of the message itself using a message digest algorithm. This provides a value with an infinitesimally small chance of a collision. This can be used to filter message duplicates. Keep in mind that the hash is calculated over the entire byte array representing the message, so any leading or trailing spaces or extraneous bytes (like padding) can produce different hash values for the same semantic message content. Care should be taken to ensure that messages do not contain extraneous bytes. This class is useful when the message does not support unique identifiers.
See an example configuration on the Routers page