Em um mundo replicado normal, ocorre a seguinte sequência:
- MAIN ASE: excluir N linhas emitidas
- RS: exclua N linhas enviadas ao destino de replicação
- TARGET: excluir as mesmas N linhas
No entanto, o que acontece se ocorrer a seguinte sequência de eventos?
- TARGET: excluir N linhas (antes que o servidor principal as exclua)
- MAIN ASE: excluir N linhas emitidas
- RS: exclua N linhas enviadas ao destino de replicação
- TARGET: Nenhuma dessas linhas para excluir?!?!?!
O que acontece depois?
O servidor do representante falha? A transação ASE principal é abortada? Todo mundo age como se isso nunca tivesse acontecido e a replicação funcionasse (já que o resultado final é como se tivesse acontecido)?
PS Sim, eu sei, normalmente você nunca deve fazer tal manobra e os dados nunca devem ser alterados no destino de replicação. E se não, você deve usar "definir a replicação" na sessão do servidor principal. A questão é "o que acontece se isso ocorrer, em violação do 'deveria'".