atg locked caching - how locked caching works with atg repositories
Suggested use : when data changed frequently.
Disadvantage : can lead to deadlocks.
<item-descriptor name="..." cache-mode="locked">
Locked caching is based on write locks and read locks.If no servers have a write lock for an item,any number of servers may have a read lock on that item.When a server requests a write lock,all other servers are instructed to release their read locks.Once an item is write locked,no other servers may get a read lock or write lock until the first server releases its write lock.In other words,once a server has a write lock on an item,all access to that item is blocked until the write is completed.
A server requests a read lock the first time it tries to access an item.Once the server has a read lock on the item,it holds that read lock until the lock manager notifies the server to release its read lock.At that time ,it drops the item from its cache.
A write lock is requested whenever a server calls getItemForUpdate(),or the first time setPropertyValue() is called,and released at the end of the transaction.
Disadvantage : can lead to deadlocks.
<item-descriptor name="..." cache-mode="locked">
Locked caching is based on write locks and read locks.If no servers have a write lock for an item,any number of servers may have a read lock on that item.When a server requests a write lock,all other servers are instructed to release their read locks.Once an item is write locked,no other servers may get a read lock or write lock until the first server releases its write lock.In other words,once a server has a write lock on an item,all access to that item is blocked until the write is completed.
A server requests a read lock the first time it tries to access an item.Once the server has a read lock on the item,it holds that read lock until the lock manager notifies the server to release its read lock.At that time ,it drops the item from its cache.
A write lock is requested whenever a server calls getItemForUpdate(),or the first time setPropertyValue() is called,and released at the end of the transaction.
Comments
Post a Comment