INT-4005: Fix channels' capacity with store
JIRA: https://jira.spring.io/browse/INT-4005 * The `<int:queue>` lets declare the `capacity` attribute together with either `message-store` or `ref` attributes, which it is not correct * The `<int:queue>` lets declare the `capacity` attribute together with either `message-store` or `ref` attributes, which it is not correct * The `priority-queue` lets declare the `capacity` attribute together with the `message-store` attribute, which it is not correct * Reference documentation fixed for `channel.adoc` and `jdbc.adoc`, doing mention about these restrictions * Minor changes about conventions and formats applied. Code polishing
This commit is contained in:
committed by
Artem Bilan
parent
ca0fa1b182
commit
8cfb7414ad
@@ -474,6 +474,8 @@ Since a `QueueChannel` provides the capability to buffer Messages, but does so i
|
||||
To mitigate this risk, a `QueueChannel` may be backed by a persistent implementation of the `MessageGroupStore` strategy interface.
|
||||
For more details on `MessageGroupStore` and `MessageStore` see <<message-store>>.
|
||||
|
||||
IMPORTANT: The `capacity` attribute is not allowed when the `message-store` attribute is used.
|
||||
|
||||
When a `QueueChannel` receives a Message, it will add it to the Message Store, and when a Message is polled from a `QueueChannel`, it is removed from the Message Store.
|
||||
|
||||
By default, a `QueueChannel` stores its Messages in an in-memory Queue and can therefore lead to the lost message scenario mentioned above.
|
||||
@@ -629,7 +631,7 @@ The following example demonstrates all of these:
|
||||
|
||||
----
|
||||
|
||||
Since _version 4.0_, the `priority-channel` child element supports the `message-store` option (`comparator` is not allowed in that case).
|
||||
Since _version 4.0_, the `priority-channel` child element supports the `message-store` option (`comparator` and `capacity` are not allowed in that case).
|
||||
The message store must be a `PriorityCapableChannelMessageStore` and, in this case, the namespace parser will declare a `QueueChannel` instead of a `PriorityChannel`.
|
||||
Implementations of the `PriorityCapableChannelMessageStore` are currently provided for `Redis`, `JDBC` and `MongoDB`.
|
||||
See <<channel-configuration-queuechannel>>.
|
||||
|
||||
Reference in New Issue
Block a user