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

Re: Propagacao de contexto



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