Período de Renovação do Bloqueio do Anfitrião
A propriedade Período de Renovação do Bloqueio de Anfitrião do Arquivo de Instâncias do Fluxo de Trabalho do SQL permite-lhe especificar o período de tempo no qual o anfitrião renova o respetivo bloqueio numa instância de fluxo de trabalho. O bloqueio permanece válido para o Período de Renovação do Bloqueio do Anfitrião + 30 segundos. Se o anfitrião não renovar o bloqueio (por outras palavras, prolongar a concessão) dentro deste período de tempo, o bloqueio expira e o fornecedor de persistência desbloqueia a instância. O valor desta propriedade é do tipo TimeSpan do formulário "hh:mm:ss". O valor mínimo permitido é "00:00:01" (1 segundo). O valor predefinido desta propriedade é "00:00:30" (30 segundos).
Esta propriedade é significativa em cenários em que um anfitrião de serviço de fluxo de trabalho falha antes de poder desbloquear uma instância de serviço de fluxo de trabalho que possui. Neste cenário, o bloqueio na instância do serviço de fluxo de trabalho na base de dados de persistência é removido pelo fornecedor de persistência após o bloqueio expirar para que outro anfitrião de serviço de fluxo de trabalho em execução no mesmo computador ou noutro computador num farm de servidores possa adquirir o bloqueio e carregar a instância do serviço de fluxo de trabalho para a memória para retomar a execução do último estado persistente.
Definir um valor mais elevado para esta propriedade faz com que as instâncias do serviço de fluxo de trabalho sejam bloqueadas na base de dados de persistência por mais tempo e, por conseguinte, atrasa a recuperação da instância a partir do último ponto de persistência. Definir um intervalo curto para esta propriedade faz com que a nova instância do anfitrião do serviço de fluxo de trabalho recolha rapidamente a instância do serviço de fluxo de trabalho falhada, mas provoca um aumento da carga de trabalho para o anfitrião do serviço de fluxo de trabalho e a base de dados SQL Server.
O Arquivo de Instâncias de Fluxo de Trabalho do SQL executa uma tarefa interna que é reativada periodicamente e deteta instâncias com bloqueios expirados. Quando localiza instâncias com bloqueios expirados, coloca as instâncias na tabela RunnableInstances para que um anfitrião de fluxo de trabalho possa recolher e executar estas instâncias.