[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Propagacao de contexto
- Subject: Re: Propagacao de contexto
- From: Giuliano Mega <megag@xxxxxxxxxxxx>
- Date: Thu, 02 Dec 2004 11:43:02 -0200
Oi, Ivan,
He he he. Eu estava determinado em tentar decifrar isso ontem de
noite, mas não rolou. :-)
Não só não rolou como fiquei com algumas dúvidas extras.
Bem, eu estava pronto para responder que bastaria você usar o
"orb.resolve_initial_references("TransactionCurrent")", quando comecei a
me confundir ao pensar na maneira pela qual o JBoss lida com RMI/IIOP se
não existe um "invoker Java-IIOP" na distribuição padrão do JBoss (na
verdade, isso só existe na nossa distribuição do JBoss ;-) ).
Pelo que pude entender, o JBoss procura não duplicar funcionalidade
em dois troncos. He he. O que eu quero dizer com isso é que *parece* que
eles tratam RMI/IIOP e CORBA de maneira idêntica do lado servidor. Eu
não tenho certeza disso, mas o fato de que a fábrica de lado cliente
para RMI/IIOP usa CORBA dá a dica.
Daí fiquei pensando... meeeeeu... como que são os proxies de lado
cliente quando você usa RMI/IIOP!? Como, afinal, que as chamadas
RMI/IIOP são codificadas?
Agora, a minha conclusão inútil. Deve haver um mecanismo uniforme
para se obter o contexto transacional que seja independente de
protocolo. Como o contexto não é independente de protocolo no nível da
chamada (IIOP é diferente do resto, inclusive os interceptadores), então
o lance deve ser acertado no serviço IIOP. Hehehehe. Este e-mail está
meio prematuro, mas é legal ficar discutindo isso. :-)
Abraços,
Giuliano
>Ola a todos.
>Estou com dificuldades para entender a propagacao do contexto transacional nas
>chamadas IIOP. Pelo que entendi, o contexto e propagado de maneira implicita e
>automatica. O que vi no codigo-fonte do JBoss foi o seguinte: O EJB rodando
>sobre RMI/IIOP vai usar a interface org.jboss.tm.iiop.client.IIOPClientUserTransaction,
>que implementa javax.transaction.UserTransaction. A partir dai, na hora de
>criar uma transacao, ele pega aquele servente default que o Reverbel comentou
>hoje na aula (org.jboss.tm.iiop.TransactionServiceImpl), chama create_transaction
>e depois configura um client interceptor para colocar o contexto da transacao
>nas chamadas IIOP.
>
>Ate ai blz. O problema que estou tendo e com o EJB alvo da requisicao IIOP feita
>por um primeiro EJB. Minha ideia era a seguinte: quando o EJB alvo fosse usar um
>recurso XA, no metodo enlistResource da classe org.jboss.tm.TransactionImpl eu
>faria um register_resource com o coordinator do servidor de aplicacoes do EJB
>que fez a requisicao IIOP. Mas como eu tenho acesso ao contexto transacional?
>Vi a classe org.jboss.tm.iiop.client.TransactionCurrent, mas acho que nao e
>por ela que eu acesso qualquer dado do contexto transacional.
>
>Dei uma olhada tambem no interceptador do lado servidor
>org.jboss.tm.iiop.TxServerClientInterceptor, que e o equivalente do interceptador
>que do lado cliente coloca o contexto transacional, mas nao encontrei nada muito
>util.
>
>Enfim, como obter acesso ao contexto transacional que e carregado junto com
>a requisicao IIOP?
>
>Nao sei se faz sentido o que acabei de escrever, mas agradeco qualquer ajuda.
>
>Abracos.
>
>
>