Message locking for distributed message transactions

When processing a distributed message transaction, the transaction's message object is not locked. The locking behavior for distributed transactions can be configured by setting the new LockDuringDistributedMessageRequestHandling configuration parameter.

The message-locking behavior for non-distributed message transactions remains unchanged. For non-distributed transactions, the message object is always locked.

The locking of the message object affects whether the message's associated primary entity is also locked. The locking of a primary entity instance can be configured by setting the LockPrimaryEntityDuringMessageHandling configuration parameter. However, regardless of the parameter's setting, the primary entity instance is locked only if the transaction's message object is also locked. For example, a distributed message transaction that does not lock its message object will not lock the primary entity either, even if locking of the entity is enabled by the parameter.