Sim, seja num banco local, seja num banco remoto, seja uma Transação distribuída (ie,com DMLs rolando em dois databases) o princípio da Atomicidade é mantido nessa Transação controlada externamente : a idéia do gerenciador externo é que ele recebe uma "fila" , uma "sequência" de transações a executar MAs não necessariamente elas foram originadas por uma sessão de banco - pense no exemplo de um email, de uma mensagem - o emissor da mensagem pode nem estar mais online quando o email chega pro destinatário,pois eles vão sendo "empilhados", "enfileirados" no servidor de email , que à pedido desse remetente Lê na ordem cada elemento na fila , o processa/envia e depois remove... Agora, que fique CLARO : ao usar o XA, vc está PROGRAMANDO, vc está escrevendo uma lógica, então é VOCÊ que está no controle - com grandes poderes vem grande responsabilidade, se vc não programar DIREITINHo, se vc implementar umalógica Furada, Claro que vc pode ter lost update, pode ter violação de atomicidade... É por isso que o manual http://docs.oracle.com/cd/E13218_01/wlp/docs81/sp2/db/5XA.html , por exemplo, nos diz bem diretamente :
"An XA driver can guarantee atomicity of updates across multiple participating resources. Two things are required: Configuration settings and application code. " Ou seja, ele diz CAN, e não WILL, ele PODE assegurar Atomicidade, DESDE QUE seja usado direto... OK ?? E torno a repetir : o gerenciador de transações do RDBMS Oracle é tão certinho, já tão longamente testado & aprovado, que eu só penso em Transações não-controladas pelo RDBMS *** SE ** e ** APENAS SE ** realmente há um impedimento, por exemplo não haverá uma sessão de conexão ao database , caso da Aplicação que citei, algo assim ... Transações distribuídas entre Oracle e SQL Server , DESDE QUE haja sim conexão/comunicação constante entre os dois bancos E QUE a Trsnação distribuída vai ser online, **** Não são **** por si só uma causa válida pra apelar pro XA, pois OBVIAMENTE o Oracle pode SIM acessar o SQL server via database link e enviar comandos pra lá : http://www.techrepublic.com/article/distributed-transactions-span-sql-server-and-oracle/1054237/ é um exemplo um pouco antigo mas ainda válido.... valide DIREITINHO se realmente o XA éaplicável no seu caso... []s Chiappa