[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: TxManager do JBoss nao suporta criacao de nova Transacao pelamesma Thread, nem propagacao de Transacao por Threads diferentes



Oi,

On Sat, 15 Nov 2003, Paulo Silveira wrote:

> O TxManager.begin() rapidamente olha se ja nao existe uma 
> TransacactionImpl associada a esta Thread.curretnThread() atraves da 
> estrutura auxiliar ThreadInfo. Muito por acaso, se voce chamar duas 
> vezes o seu TransactionFactoryExt.create_context(), a MESMA Thread vai 
> atender o seu request (descobrimos isso imprimindo o nome da Thread na 
> tela).

Pelo jeito vocês deixaram de dar um TxManager.suspend() dentro do método
create() do TransactionFactory. O create() deve criar uma transação *sem*
deixá-la associada com a thread chamadora. Como o TxManager.begin() deixa
a transação associada com a thread chamadora, é preciso dar um suspend() 
logo depois. 

Veja no método begin() em 

server/src/main/org/jboss/tm/usertx/server/UserTransactionSessionImpl.java.

A classe org.jboss.tm.usertx.server.UserTransactionSessionImpl faz para
JRMP uma parte do que vocês estão fazendo para IIOP.

Reverbel