[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Re: Diferencas entre transacoes
- Subject: Re: Diferencas entre transacoes
- From: Giuliano Mega <megag@xxxxxxxxxxxx>
- Date: Thu, 16 Dec 2004 15:08:21 -0200
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