31.4.3. ONCE_AND_ONLY_ONCE
Messages reach the destination exactly once. If both source and destination are on the same HornetQ server instance, this mode sends and acknowledges messages as part of the same local transaction. If the source and destination are on different servers, this mode enlists the sending and consumption sessions in a JTA transaction.
This JTA transaction is controlled by JBoss Transactions JTA, a full-recovery transaction manager which provides a very high degree of durability. If JTA is required, both supplied connection factories must be
XAConnectionFactory
implementations.
This is likely to be the slowest mode, since it requires extra persistence. This mode is only available for durable messages.
Note
For some applications, once and only once semantics could be provided by setting the
DUPLICATES_OK
mode and then checking for and discarding duplicate messages on the destination. This approach is not as reliable as using ONCE_AND_ONLY_ONCE
mode, but may be a useful alternative.