diff --git a/webapps/docs/cluster-howto.xml b/webapps/docs/cluster-howto.xml index f789079..b75d098 100644 --- a/webapps/docs/cluster-howto.xml +++ b/webapps/docs/cluster-howto.xml @@ -210,6 +210,7 @@ should be completed:

Synchronous vs. asynchronous is configured using the channelSendOptions flag and is an integer value. The default value for the SimpleTcpCluster/DeltaManager combo is 8, which is asynchronous. + See the configuration reference for more discussion on the various channelSendOptions values.

For convenience, channelSendOptions can be set by name(s) rather than integer, diff --git a/webapps/docs/config/cluster.xml b/webapps/docs/config/cluster.xml index 36bbf0d..6a47eb9 100644 --- a/webapps/docs/config/cluster.xml +++ b/webapps/docs/config/cluster.xml @@ -145,6 +145,33 @@ Tomcat cluster. These include:

to the order in which they were sent.

+ The various channelSendOptions values offer a tradeoff between throughput on the sending + node and the reliability of replication should the sending node fail. Here are some common options. In this discussion + "message" could be any message sent between the nodes, but in the context of this dicussion it applies to session changes + being replicated to other nodes. +
+ channelSendOptions="8" + As far as the sender is concerned, the message is sent + as soon as it has been placed in the queue on the sender for + transmission to the other nodes. The message may not reach all of the + recipient nodes and may not be successfully processed on those nodes that it does reach. + This option offers the most throughput on the sender but the least reliability, as the + triggering request will complete without any knowledge of the success/failure of the session replication. +
+ channelSendOptions="2" + The sender will block the completion of the current request until all of the receiving nodes + have acknowledged that they have received the message, but have not necessarily processed + that message. + This option will result in less throughput on the sending node, because the message must be transmitted + and the acknowledgement received, but the reliability is greater than the asynchronous model. +
+ channelSendOptions="6" + The sender will block the completion of the current request until + all of the receiving nodes have acknowledged that they have received and + processed the message. + This option will have the least throughput (of these three) but the greatest reliability. +

+

You may also set these options as a comma separated string, e.g. "async, multicast", which will be translated into Channel.SEND_OPTIONS_ASYNCHRONOUS | Channel.SEND_OPTIONS_MULTICAST