Processamento assíncrono de transações em cascata
Algumas transações podem ser configuradas para propagar em todos os registros relacionados. Isso significa que a alteração no registro principal é transacionada (em cascata) para todos os registros secundários. Os relacionamentos em cascata são configurados no nível da tabela. Para obter mais informações sobre relacionamentos em cascata, consulte Configurar comportamento em cascata de relacionamento de tabela.
Modo síncrono versus assíncrono
Por padrão, as operações em cascata são realizadas como uma transação síncrona. Para uma transação em cascata síncrona, todos os registros impactados são identificados pelo sistema. Conforme os registros são processados, eles serão bloqueados pelo sistema. Após todas as alterações terem sido concluídas, os registros serão desbloqueados e a transação será concluída.
As transações síncronas com um grande número de registros podem gerar problemas de desempenho para ambientes quando transações de execução prolongada falharem devido a tempos limite do servidor. Os registros são bloqueados, impedindo que outros trabalhos e transações de usuários que operam nos mesmos registros sejam executados. Além disso, transações de execução prolongada podem resultar no atraso de transações e solicitações pendentes que reduzem o desempenho do sistema e podem gerar interrupção no trabalho.
Se o ambiente estiver detectando tempos limite ou desempenho degradado enquanto operações em cascata síncronas estiverem em andamento, o seu ambiente poderá ser beneficiado ao habilitar o modo assíncrono. As principais diferenças entre os modos são descritas na seguinte tabela.
Modo síncrono | Modo assíncrono |
---|---|
Nenhum outro trabalho pode ser executado no conjunto inteiro de registros selecionados (direto ou em cascata) até que a operação em cascata seja concluída. | Para Atribuir, Excluir e Mesclar as alterações em cascata são processadas em lote, bloqueando apenas os registros que estão sendo processados no lote. Isso permite que outros trabalhos sejam executados durante a operação completa de alterações em cascata. |
Quando o trabalho é concluído, todos os dados exibem o novo valor desejado. | Conforme o trabalho é executado, cada lote concluído exibirá o valor desejado. Isso significa que haverá um momento em que alguns dados exibem o valor desejado e outros exibem o valor original até que toda a operação seja concluída. Isso é conhecido como "consistência eventual". |
Se um único registro falhar, todos os dados serão revertidos para o valor original. A reversão exige uma nova edição de todos os registros concluídos, o que leva mais tempo. | Se um único trabalho falhar, será realizada uma nova tentativa várias vezes para tentar finalizar. Se o trabalho não puder ser concluído, a falha será registrada na área Trabalhos do Sistema. Observe que os registros concluídos com êxito retêm o novo valor. |
Se um dos registros na lista em cascata tiver um valor diferente do esperado, o trabalho falhará e será revertido. Por exemplo, suponha que o registro inicial pertence ao Proprietário 1 e a operação em cascata deseja alterá-lo para Proprietário 2. Se um dos registros relacionados downstream for alterado para Proprietário 3 ou for excluído antes do bloqueio, todo o trabalho será revertido. | Para Atribuir, a operação sempre funciona no modo de substituição, alterando o valor atual para o novo valor com base no relacionamento pai-filho. Não há falhas de trabalho devido a uma incompatibilidade de valor original. Para Excluir, se um registro que era esperado como parte do conjunto estiver faltando, todos os registros até o ponto de falha serão considerados concluídos. O usuário ou administrador pode reexecutar o trabalho com falha, que recalcula o trabalho para continuar sem o registro ausente. Para Mesclar, se houver um problema com um registro ausente, a tarefa será repetida e executada sem o registro ausente. |
Modo assíncrono
Quando uma transação em cachoeira atinge o limite de registros incluídos, os registros são processados de forma assíncrona,
Operation | Threshold |
---|---|
Atribuir | 1.000 registros |
Delete | 5,000 registros |
Mesclagem | 1.000 registros |
Rastreamento do progresso da operação assíncrona
Os administradores podem monitorar o processamento de operações assíncronas na área de Configurações.
Selecione Ambientes na área de navegação. Em seguida, selecione o ambiente que você deseja.
Selecione Configurações, expanda Auditoria e registros e escolha Trabalhos do sistema.
As operações em cascata são exibidas na exibição Trabalhos do Sistema.
Para visualizar somente operações em cascata, no seletor Exibição, selecione Operações em cascata.
As operações em cascata apresentam um dos status a seguir:
- Concluído: Todos os lotes da transação em cachoeira foram concluídos com sucesso.
- Em andamento: Mudanças em cachoeira estão em andamento.
- Falha: Após várias tentativas, algumas das alterações em cachoeira falharam.
Nota
Não é possível cancelar um trabalho em cascata assíncrono. Aguarde a conclusão, indicada por um status de Concluído ou Falha.
Abrir uma operação em cascata exibirá:
Quantas tentativas ocorreram para a transação específica.
Data e hora de criação e conclusão.
Quem criou o trabalho.
As mensagens associadas ao trabalho, como motivos de falha ou exceções.
Quais transações em cascata podem ser processadas de forma assíncrona?
As transações em cascata Atribuir, Excluir e Mesclar podem ser processadas de forma assíncrona.
Nota
Outras transações, como compartilhar/cancelar compartilhamento, exibição de valor acumulado e especificar novamente o pai estão atualmente em revisão para processamento assíncrono.
Solução de problemas com operações em cascata assíncronas
Quando os trabalhos em cascata síncronos falham, eles são interrompidos e revertem todas as alterações para que nenhum dos registros inclua as alterações solicitadas. Este pode ser um processo demorado, pois as reversões podem levar tanto tempo quanto a tentativa original e a repetição da operação começará novamente a partir do primeiro registro.
As operações assíncronas serão repetidas várias vezes, se ocorrer uma falha. Na maioria dos casos, a repetição do trabalho resulta em sucesso e o trabalho pode continuar até a conclusão. Em alguns casos raros, tentar novamente não resolverá o problema. Quando isso acontecer, o trabalho assíncrono fará uma pausa, e o administrador e o usuário poderão solucionar o problema e retomar o trabalho do ponto em que foi pausado.
Causas comuns de falhas em operações em cascata
Os motivos comuns para falhas no processamento de operações em cascata incluem:
- Exceções de plug-in
- Exceções de segurança
Exceções de plug-in
Os plug-ins são adicionados ao processamento de operações em cascata para realizar ações específicas quando alterações são feitas em um registro, como enviar um email ou acionar uma atualização diferente em outros registros. Estes podem ser fornecidos por terceiros ou desenvolvidos internamente. Se um plug-in gerar uma exceção, a operação em cascata falhará Dependendo do motivo da exceção, uma nova tentativa pode resolver o problema. Se a tarefa em cascata assíncrona for pausada devido a falhas, valide todos os plug-ins associados às operações para certificar-se de que não estejam gerando exceções. Uma vez corrigido, o trabalho pode ser retomado.
Exceções de segurança
As exceções de segurança ocorrem quando o usuário que executou a operação em cascata não tem privilégios suficientes para fazer uma alteração em um ou mais registros, ou o usuário é desabilitado ou removido do sistema.
Se o usuário ainda estiver no sistema, verifique se ele possui os privilégios necessários para modificar os registros e se ele tem permissão para executar as ações especificadas. Depois que isso for resolvido, retome o trabalho.
Se o usuário foi desativado ou removido do sistema, a reativação ou readição do usuário resolverá o problema e o trabalho poderá ser retomado. No entanto, se o usuário tiver que ser excluído ou desabilitado ou não deveria ter permissões para as ações ou registros, o trabalho deverá ser cancelado e reiniciado por alguém com as permissões apropriadas.
Para quaisquer outros problemas com trabalhos com falha, entre em contato com o Microsoft Suporte. Mais informações: Visão geral de suporte
Solução de problemas de exclusão de arquivo durante a mesclagem em cascata
Se você tiver falhas com operações de mesclagem em cascata porque os arquivos são excluídos durante a execução do trabalho, você pode ignorar a verificação de nível superior. Isso permite que a mesclagem continue, mesmo que alguém exclua um registro do conjunto, enquanto o trabalho está sendo executado em segundo plano. Quando você optar por mesclar registros, na parte inferior da janela de mesclagem, desmarque a opção A verificação do nível superior é habilitada por padrão. Desmarque para ignorar a verificação do nível superior.
Exemplo de Mesclagem de registro
Imagine que você tem contas com relacionamento a contato, que possui relacionamento com ordens. Você deseja mesclar dois registros de conta.
Se o trabalho for executado com êxito, a mesclagem atribuirá todos os contatos relacionados e suas ordens à conta de destino.
Se durante o processo de mesclagem de registro outro usuário excluir um registro de contato relacionado, mas ainda existirem registros de ordem relacionados ao registro de contato, a tarefa de mesclagem falhará porque está faltando um registro pai para um filho. Se você optar por pular a verificação do nível superior durante a mesclagem do registro, as ordens com o registro de contato ausente serão mescladas no registro da conta de destino. No entanto, nenhum registro de contato relacionado será atribuído à conta de destino e o trabalho será concluído.
Mesclagem causando bloqueios que impedem outras alterações de acesso
A operação Mesclagem em Cascata concede acesso ao novo proprietário da tabela subordinada. Para fazer isso, a operação Mesclagem em Cascata acessa e faz alterações na Tabela de Objetos Principais que exigem um bloqueio. Se uma operação de mesclagem contiver muitos registros (com base no relacionamento em cascata), esse bloqueio poderá permanecer por um longo tempo. Isso pode resultar em um erro se uma operação tentar conceder ou revogar o acesso de um registro não relacionado durante a execução da mesclagem. Se isso ocorrer, tente executar a mesclagem fora do horário de funcionamento para que o bloqueio possa ser reduzido.