I think first we need a test case to reproduce your deadlock. Did you write such a test. If not, I will try to write such a test ASAP.
OJB has junit-extension classes to enable writing of multithreaded junit tests (e.g. see MetadataMultithreadedTest).
regards, Armin
Jair da Silva Ferreira Júnior wrote:
Hi,
The deadlock occurs when locking the objects. More specifically, in the first write-lock of the object which happens to persists it. These are my locking properties in OJB.properties: LockManagerClass=org.apache.ojb.odmg.locking.LockManagerDefaultImpl LockMapClass=org.apache.ojb.odmg.locking.InMemoryLockMapImpl LockTimeout=60000 ImplicitLocking=true LockAssociations=READ
Thanks, Jair Jr
----- Original Message ----- From: "Armin Waibel" <[EMAIL PROTECTED]> To: "OJB Users List" <[EMAIL PROTECTED]> Sent: Tuesday, December 02, 2003 8:41 PM Subject: Re: deadlock in transaction.lock
Hi,
Jair da Silva Ferreira Júnior wrote:
Hi, I am using ojb1.0_rc4, ODMG api with OJB queries, mysql4 in Linux
Red Hat 7.3 (kernel 2.4.20-20.7).
I am experiencing the following problem: when multiple threads
(about 20) try to write lock an object, at some point, the transaction.lock(object,Transaction.WRITE) method simply doesn't return and my thread never dies. This is causing my application to deadlock. I am locking different objects in each thread.
Did the deadlock occur while locking the objects or when commit the transaction? Which lock map implementation do you use?
regards, Armin
I have tried the following <connection-pool> configurations in
repository_database.xml with no success:
<connection-pool maxActive="50" validationQuery=""
whenExhaustedAction="1" maxWait="4000"/>
<connection-pool maxActive="3" validationQuery=""
whenExhaustedAction="2" maxWait="4000"/>
Do you know why this is happening? The transaction.lock(..) method
should throw an exception if the object can't be locked, right? Any help would be appreciated.
Thanks, Jair Jr
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]