Hello,

I'm using OJB 1.0.3 with the ODMG api and I'm confused about implicit locking. I prefer from past experience to have ImplicitLocking=false in my OJB.properties and this is what I've done for quite some time.

I've started getting (sometimes) LockNotGrantedExceptions on objects that I haven't explicitly locked -- i.e. I lock a new object for write, and despite having implicit locking set to false, ojb attempts to aquire a write lock on a referenced object that hasn't changed (otherwise I'd have explicitly locked it). The stack trace below shows the failure on User, which is referenced by the new record:

org.odmg.LockNotGrantedException: Can not lock for WRITE: ca.accesstec.acsis.core.security.User{1} at org.apache.ojb.odmg.TransactionImpl.doSingleLock(TransactionImpl.java:319) at org.apache.ojb.odmg.TransactionImpl.lockAndRegister(TransactionImpl.java:263) at org.apache.ojb.odmg.ObjectEnvelopeTable.cascadeInsertSingleReferences(ObjectEnvelopeTable.java:601) at org.apache.ojb.odmg.ObjectEnvelopeTable.cascadeInsertFor(ObjectEnvelopeTable.java:561) at org.apache.ojb.odmg.ObjectEnvelopeTable.cascadeMarkedForInsert(ObjectEnvelopeTable.java:541) at org.apache.ojb.odmg.ObjectEnvelopeTable.cascadingDependents(ObjectEnvelopeTable.java:510) at org.apache.ojb.odmg.ObjectEnvelopeTable.writeObjects(ObjectEnvelopeTable.java:169) at org.apache.ojb.odmg.TransactionImpl.doWriteObjects(TransactionImpl.java:370) at org.apache.ojb.odmg.TransactionImpl.prepareCommit(TransactionImpl.java:687)
   at org.apache.ojb.odmg.TransactionImpl.commit(TransactionImpl.java:623)

Can someone kindly explain this to me? or at least suggest how I can tell OJB to only write-lock objects for which I call Transaction.lock()? I have traced through this and don't see why ObjectEnvelopeTable needs to do a cascadingDependents().

Could the real problem be somewhere else?
Many thanks in advance,
Colin

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to