Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Executar um procedimento armazenado de um formulário do Windows de forma assíncrona e depois desconectar?


Este é realmente um cenário bastante comum. Você não pode fazer nada baseado no cliente porque o cliente pode ir embora e se desconectar e você perderá o trabalho realizado até agora. A solução é usar a Ativação do Service Broker :você cria um serviço no banco de dados e anexa um procedimento ativado. Em sua aplicação (ou página ASP) você envia uma mensagem para o serviço e embute os parâmetros necessários para seu procedimento. Após a confirmação do aplicativo, a mensagem ativa o procedimento de serviço. o procedimento de serviço lê os parâmetros da mensagem e chama seu procedimento. como a ativação ocorre em um encadeamento do servidor não relacionado à sua conexão original, isso é confiável. Na verdade, o servidor pode até desligar e reiniciar enquanto seu procedimento está sendo executado e o trabalho será revertido e retomado, pois a mensagem de ativação acionará novamente o procedimento de serviço após o reinício.

Atualizar

Publiquei os detalhes de como fazer isso, incluindo código de exemplo no meu blog:Execução de procedimento assíncrono .