Armin,

Forget my BusinessObject literature.

I have another important question.

Can you confirm to me or not that the order of the lock are important. It
seems that when an object A as some FK of an object B, I have to lock B and
after A if I only set the FK_Id and not the reference association (setbB).

Do you advocate to use the reference association when you lock many objects
or do you advocate to order the different locks....I am in a recursive
treatment of a tree...

Tx !

-----Message d'origine-----
De�: Armin Waibel [mailto:[EMAIL PROTECTED] 
Envoy�: mardi 1 juillet 2003 17:02
��: OJB Users List
Objet�: Re: LocalTxManager delete the only current Thread available ???

Hi again,

----- Original Message -----
From: "Emmanuel Dupont" <[EMAIL PROTECTED]>
To: "'OJB Users List'" <[EMAIL PROTECTED]>; "'Armin Waibel'"
<[EMAIL PROTECTED]>
Sent: Tuesday, July 01, 2003 10:14 AM
Subject: RE : LocalTxManager delete the only current Thread available
???


Hi Armin,

With the join() it works.


Does that means that I can only use inner transactions when I work with
multi-threading ? Or I all time have to use the join ()...?
#########
Think this has nothing to do with multi-threading. The problem is
that the ODMG implementation can't handle multiple tx (inner/nested tx)
of one thread at the same time. Thus you have to call join() to
re-register
a tx when an inner tx was used before.



I have some BusinessObjects who works directly with the JDO objects,
does
that means that I must have an instance variable in the mother class of
my
business objects, because I don't use multi threading and so, I only
will
have only one thread, so the transaction is an instance variable....?
########
Sorry, I don't understand what you mean.

regards,
Armin

Thanks again for your replies Armin !




-----Message d'origine-----
De : Armin Waibel [mailto:[EMAIL PROTECTED]
Envoy� : lundi 30 juin 2003 18:12
� : OJB Users List
Objet : Re: LocalTxManager delete the only current Thread available ???

Hi,

per thread you only can perform one transaction. Currently nested
tx are not supported.
Do you have tried do a tx.join() call before the last
tx.lock(...) method call?

regards,
Armin

----- Original Message -----
From: "Emmanuel Dupont" <[EMAIL PROTECTED]>
To: "OJB Users List" <[EMAIL PROTECTED]>
Sent: Monday, June 30, 2003 4:24 PM
Subject: LocalTxManager delete the only current Thread available ???


All



I think I found a bug or my implementation doesn't create thread
properly.



Here is my code sample with ODMG API:



------------------------------------------------------

T1 = new Transaction();

T1.begin();



[...]

While (i<size) {

T2 = new Transaction();

T2.begin();



[...]



T2.commit();

}



ojb = new PObject();

T1.lock(obj, WRITE);



T1.commit();

----------------------------------------





It failed in the last lock with the message :

org.odmg.TransactionNotInProgressException: Calling method needed
transaction, but no transaction found for current thread :-(

      at
org.apache.ojb.odmg.LocalTxManager.getCurrentTransaction(LocalTxManager.
java
:46)





When I traced in Ojb code and I understand this processes:



In TransactionImpl the begin() do : txManager.registerTx(this);



The LocalTxManager call

registerTx(TransactionImpl tx) :

tx_table.put(Thread.currentThread(), tx);





It puts the current Thread in the tx_table (TransactionTable)





The trouble is on the commit off The T2 transaction:



The TransactionImpl 's commit call the doClose method and who call :

LocalTxManager : deregisterTx(Object token)

tx_table.remove(Thread.currentThread());



But the T2 transaction is attached to the same Thread as T1, so at the
last
T2.commit() call the tx_table doesn't contains the current-Tread anymore
!!!
And when T1 wants to work it failed !!







First question: Is it normal that T2 is on the same Thread as T1 ? So
the
commit method, delete the Thread reference in the LocalTxManager 's
tx_table.



Second question What can I do ??





Any help whould be really appreciated.



Thanks a lot in advance!!







Emmanuel.













---------------------------------------------------------------------
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]


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

Reply via email to