[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:46:13 -0200
Em resposta à minha própria pergunta. Acho que me confundi por causa
daquele mecanismo de mapeamento reverso de Java para IDL. Agora me
lembrei que de fato o RMI/IIOP e CORBA têm de ser tratados de maneira
idêntica. Mas a questão dos interceptadores CORBA... huuuum... isso
ainda me deixou com uma ponta de dúvida.
Abraços,
Giuliano
> 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.
>>
>>
>>
>
>