Hi Max, YAC (Yet another clarification):
<snip> > >> > >> EH!!? Huh! explain please ;) How can you synchronize/lock > in memory > >> without > >> locking or synchronization mechanisms ?! > >> > > > > You are right, we do the lock management with a pluggable component > > called LockManager. > > I just wanted to say that we are not relying on java > *language* features > > like synchronized blocks. > > So - how do you synchronize without it ? If you are not using > language features, > what are you using ? The database ? It depends on the Lockmanager Implementation. The default implementation uses a Hashtable to store Lock objects in memory. If a transaction tries to obtain a lock we check in the hashtable if there is already a Lock entry for this Object. If there is no lock than its OK to obtain a lock on this object. If there is already a lock, it depends on the type of the existing lock (READ, WRITE) and the isolation level semantics if it's ok to obtain an additional lock. The Semantics of the isolation levels is defined here: http://db.apache.org/ojb/lockmanager.html. If you want to use transaction synchronization accross multiple JVMs (possibly running on different physical machines) you simply use a persistent LockMap implementation. The persistent LockMap uses a database table (OJB_LOCKENTRY)to store locks. To make locks persistent allows to make them visible to all connected ODMG clients. A different solution could be to provide a separate LockManager server that does not use a database table, but any other means to keep the locks. So far no user requested it. And using a db table for this purpose has not been a problem so far. cu, Thomas <snip tail> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
