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

Re: Diferencas entre transacoes



    Oi Ivan,

>Ola a todos.
>Lembro de ter ouvido em classe que as transacoes CORBA sao diferentes, pois
>nestas o recurso e quem se registra com a transacao (no caso o coordinator). E
>no caso de transacoes nao CORBA (JTA?), os participantes sao conhecidos a
>priori. Era algo mais ou menos assim. Alguem pode me explicar melhor essa
>diferenca? O que significa este "conhecer a priori"? 
>
    Bem, meio que correndo o risco de dizer o que você já sabe, as 
únicas diferenças que pude apreciar entre os dois sistemas estão 
contidas, a meu ver, no papel assumido pelos recursos e no conhecimento 
detido pelo lado que inicia a transação (o servidor de aplicação) em 
ambos os casos. Me explico. No OTS, o lado responsável por registrar 
recursos com o coordenador central é o próprio lado que os contém. O 
"recurso", portanto, assume um papel ativo e auto-suficiente - nem o 
coordenador nem o servidor de aplicação que propaga o contexto 
transacional são responsáveis por determinar quais são os recursos que 
participam numa transação. Num certo sentido, dá pra dizer que o 
servidor de aplicação que inicia a transação não tem que conhecer, "a 
priori", quais os recursos que vão participar. Eu gosto de dizer que, no 
OTS, o recurso é inteligente e o lado que inicia a transação 
(coordenador/servidor de aplicação) é burro.

    No JTA, por outro lado, é papel do servidor de aplicação determinar 
quais dos proxies locais de recursos XA participam em cada uma das 
transações distribuídas. Então o "servidor de aplicação", nesse caso, 
deve deter um certo conhecimento a respeito dos recursos, algo que não 
era necessário com as transações CORBA. Em particular, é necessário que 
o servidor de aplicação saiba quando um dado recurso passa a participar 
na transação distribuída - o recurso XA nunca vai ser capaz de 
determinar isso sozinho. Seguindo a analogia do outro parágrafo posso 
dizer que, no JTA, o recurso (XA) é que é burro e o servidor de 
aplicação (lado que inicia a transação), por sua vez, é inteligente.

>E transacoes nao CORBA sao
>o que, as transacoes definidas no JTA?
>  
>
    Isso. Pelo menos foi o que eu entendi do negócio. Claro que a 
especificação não é nada rígida com relação à divisão de 
papéis/conhecimentos dentro de um dado design de classes para um sistema 
JTA, então às vezes o troço pode se tornar um pouco confuso.

    Ufa. Alguém entendeu outra coisa?

       Abraços,

          Giuliano