Processamento assíncrono de transações em cascata
Determinadas transações podem ser configuradas para propagarem em cascata em todos os registos relacionados. Isto significa que a alteração de um registo principal é efetuada por transação (em cascada horizontal) através de todos os registos subordinados. As relações em cascata são configuradas ao nível da tabela. Para obter mais informações sobre relações em cascata, consulte o Configurar comportamento em cascata da relação da mesa.
Modos síncronos vs. assíncronos
Por predefinição, as operações em cascata são efetuadas como uma transação síncrona. Para uma transação síncrona em cascata, todos os registos afetados são identificados pelo sistema. À medida que os registos são processados, são bloqueados pelo sistema. Depois de concluídas todas as alterações, os registos são desbloqueados e a transação é concluída.
As transações síncronas com um grande número de registos podem causar problemas de desempenho nos ambientes quando as transações de execução prolongada falham devido a tempos limite do servidor. Os registos são bloqueados para impedir a execução de outras tarefas e transações de utilizador que utilizam os mesmos registos. Além disso, as transações de execução prolongada poderão resultar num registo de transações e pedidos pendentes que reduzem o desempenho do sistema e podem causar a paragem do trabalho.
Se um ambiente deparar-se com tempos limite ou a deterioração do desempenho enquanto as operações de propagação em cascata síncronas estão em curso, o seu ambiente poderá beneficiar da ativação do modo assíncrono. As principais diferenças entre os modos são descritas na tabela que se segue.
Modo síncrono | Modo assíncrono |
---|---|
Não é possível executar outras tarefas no conjunto completo de registos selecionados (de forma direta ou em cascata) até que a operação em cascata esteja concluída. | Para Atribuir, Eliminar e Unir, as alterações em cascata são agrupadas em lote, bloqueando apenas os registos que estão a ser processados dentro do lote. Isto permite que outras tarefas sejam executadas durante a operação de alteração em cascata completa. |
Quando a tarefa for concluída, todos os dados mostram o novo valor pretendido. | À medida que a tarefa é executada cada lote concluído apresenta o valor pretendido. Isto significa que, a dada altura, alguns dados irão mostrar o valor pretendido e alguns irão mostrar o valor original até a operação completa ser concluída. Isto denomina-se como "consistência eventual." |
Se um único registo falhar, todos os dados são revertidos para o valor original. A reversão requer nova edição de todos os registos concluídos, o que demora mais tempo. | Se uma única tarefa falhar, é repetida várias vezes para tentar a conclusão. Se não for possível concluir a tarefa, a falha é registada na área Tarefas de Sistema. Repare que os registos concluídos com êxito retêm o novo valor. |
Se um dos registos na lista em cascata tiver um valor que é diferente do valor esperado, a tarefa falha e é revertida. Por exemplo, assuma que o registo inicial pertence ao Proprietário 1 e a operação em cascata pretende alterá-lo para Proprietário 2. Se um dos registos relacionados a jusante tiver sido alterado para Proprietário 3 ou for eliminado antes de o bloqueio ocorrer, a tarefa completa é revertida. | Para Atribuir, a operação funciona sempre no modo de substituição, alterando o valor atual para o novo valor com base na relação elemento principal-elemento subordinado. Não existem falhas de trabalho devido a um erro de correspondência de valor original. Para Eliminar, se faltar um registo que era esperado como parte do conjunto, todos os registos até ao ponto de falha são considerados concluídos. O utilizador ou administrador pode voltar a executar a tarefa com falha, o que recalcula o trabalho para continuar sem o registo em falta. Para Unir, se houver um problema com um registo em falta, a tarefa volta a ser tentada novamente e executada sem o registo em falta. |
Modo assíncrono
Quando uma transação em cascata atinge o limite para registros incluídos, os registros são processados de forma assíncrona,
Operation | Threshold |
---|---|
Atribuir | 1000 registos |
Delete | 5,000 registos |
Unir | 1000 registos |
Monitorizar o progresso da operação assíncrona
Os administradores podem monitorizar o processamento de operações assíncronas na área Definições.
Inicie sessão no centro de administração do Power Platform.
Selecione Ambientes no área de navegação. Em seguida, selecione o ambiente pretendido.
Selecione Definições, expanda Auditoria e registos e, em seguida, selecione Tarefas de sistema.
As operações em cascata são apresentadas na vista Tarefas de Sistema.
Para ver apenas operações em cascata, no seletor Vista, selecione Operações em Cascata.
As operações em cascata têm qualquer um dos seguintes estados:
- Concluído: Todos os lotes da transação em cascata foram concluídos com êxito.
- Em andamento: Mudanças em cascata estão em andamento.
- Falha: Após várias tentativas, algumas das alterações em cascata falharam.
Nota
Não é possível cancelar uma tarefa em cascata assíncrona. Tem de aguardar que a mesma seja concluída indicando um estado de Concluída ou Com falhas.
Ao abrir uma operação em cascata é apresentado o seguinte:
Quantas repetições ocorreram para a transação específica.
Datas e horas de criação e conclusão.
Quem criou a tarefa.
Quaisquer mensagens associadas à tarefa, tais como razões da falha ou exceções.
Que transações em cascata podem ser processadas de forma assíncrona?
As transações em cascata Atribuir, Eliminar e Unir podem ser processadas de forma assíncrona.
Nota
Outras transações, tais como partilhar/não partilhar, vista de rollup e re-hierarquização estão atualmente em revisão para processamento assíncrono.
Resolução de problemas com operações em cascata assíncronas
Quando as tarefas em cascata síncronas falham, param e são revertidas todas as alterações para que nenhum dos registos inclua as alterações solicitadas. Este pode ser um processo demorado, uma vez que as reversões podem tanto como a tentativa original e a nova tentativa da operação começa novamente a partir do primeiro registo.
As operações assíncronas são tentadas várias vezes se ocorrer uma falha. Na maioria dos casos, a repetição da tarefa resulta num êxito e a tarefa pode continuar até à conclusão. Em alguns casos raros, tentar novamente não resolve o problema. Quando isto acontece, a tarefa assíncrona é colocada em pausa, e o administrador e o utilizador podem resolver o problema, retomando a tarefa a partir do ponto em que foi colocada em pausa.
Causas comuns de falhas nas operações em cascata
As razões comuns para as falhas no processamento de operações em cascata incluem:
- Exceções do plug-in
- Exceções de segurança
Exceções do plug-in
Os plug-ins são adicionados ao processamento das operações em cascata para executar ações específicas quando são feitas alterações a um registo, como enviar um e-mail ou desencadear uma atualização diferente noutros registos. Podem ser fornecidos por terceiros ou desenvolvidos internamente. Se um plug-in gerar uma exceção, a operação em cascata falha. Consoante a razão da exceção, uma repetição 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 assegurar que não estão a gerar exceções. Uma vez corrigida, a tarefa pode ser retomada.
Exceções de segurança
As exceções de segurança ocorrem quando o utilizador que executou a operação em cascata tem privilégios insuficientes para alterar um ou mais registos, ou o utilizador é desativado ou removido do sistema.
Se o utilizador ainda estiver no sistema, verifique se tem os privilégios necessários para modificar os registos e que tem permissão para executar as ações especificadas. Depois de isto estar resolvido, retome a tarefa.
Se o utilizador tiver sido desativado ou removido do sistema, voltar a ativar ou a adicionar o utilizador resolve o problema e a tarefa pode ser retomada. No entanto, se o utilizador tiver de ser eliminado ou desativado, ou se não for suposto ter permissões para as ações ou os registos, a tarefa deve ser cancelado e reiniciada por alguém com permissões adequadas.
Para quaisquer outros problemas com trabalhos falhados, contacte o Microsoft Serviço de Apoio. Mais informações: Descrição geral do suporte
Resolução de problemas de eliminação de ficheiros durante a união em cascata
Se ocorrerem falhas com as operações de união em cascata por os ficheiros serem eliminados durante a execução da tarefa, poderá ignorar a verificação de hierarquização. Isto permite continuar a união, mesmo que alguém elimine um registo do conjunto enquanto a tarefa está em segundo plano. Quando opta por unir registos, na parte inferior da janela de união, desmarque a opção A verificação de hierarquização está ativada por predefinição. Desmarque esta opção para ignorar a verificação de hierarquização.
Exemplo de Intercalar registos
Imagine que tem contas com uma relação de contacto, que tem uma relação com encomendas. Pretende unir dois registos de contas.
Se a tarefa for executada com êxito, a união atribui todos os contactos relacionados e as suas encomendas à conta de destino.
Se, durante o processo de união de registos, outro utilizador eliminar um registo de contacto relacionado, mas ainda existirem registos de encomenda relacionados com o registo de contacto, a tarefa de união falha porque falta um registo subordinado num registo principal. Se optar por ignorar a verificação de hierarquização durante a união de registos, as encomendas com o registo de contacto em falta são unidas no registo de conta de destino. No entanto, nenhum registo de contacto relacionado é atribuído à conta de destino e a tarefa é concluída.
A união causa bloqueios que impedem outras alterações ao acesso
A operação União de Cascata dá acesso ao novo proprietário da tabela subordinada. Para tal, a operação Unir em Cascata acede e faz alterações à Tabela de Objeto Principal que requer um bloqueio. Se uma operação de união contiver muitos registos (baseados na relação da cascata), este bloqueio pode estar em vigor por um longo período de tempo. Isto pode resultar num erro se uma operação tentar conceder ou revogar o acesso de um registo não relacionado enquanto a união estiver em execução. Se isto ocorrer, tente executar a união em horas de folga para que o bloqueio possa ser reduzido.