To minimize deadlocks when you use locked cache mode, you can configure the isolation level of an item descriptor. You can use one of three isolation levels:

Isolation Level

Description

readCommitted

This is the default value. ATG gets a read lock on the item when you first call getItem or getPropertyValue for an item in a transaction. If you then try to change the item, you release the read lock and try to acquire a write lock. New property values are visible only once they have been committed. You are not guaranteed that subsequent getPropertyValue calls made in the same transaction return the same value.

repeatableRead

ATG acquires a read lock the first time you call getItem or getPropertyValue for an item in a transaction. When you call getItemForUpdate or setPropertyValue in a transaction, ATG attempts to convert the read lock into a write lock.

serializable

Prevents different transactions from reading an item at the same time either from the same server, or from different servers.

Set the isolationLevel attribute in an <attribute> tag that is a sub-tag of the <item-descriptor> tag. For example:

<item-descriptor name="myItem" cache-mode="locked">
    <attribute name="isolationLevel" value="readCommitted"/>
...
</item-descriptor>
 
loading table of contents...