Configurar persistência do fluxo de trabalho usando cmdlets do Windows Server AppFabric

Você pode usar os cmdlets AppFabric para obter ou definir as configurações de persistência do servidor para os serviços de fluxo de trabalho. Você pode configurar os recursos de persistência no nível de serviço para um serviço de fluxo de trabalho especifico ou em um servidor, site ou escopo de aplicativo e o serviço herdar essas configurações definidas em um nível superior. Para obter mais informações sobre como as configurações funcionam na hierarquia do IIS, consulte Configurando processo no Windows Server AppFabric.

Dica

Para executar interativamente um cmdlet do AppFabric, é necessário usar o console do Windows PowerShell para Windows Server AppFabric, inserir o cmdlet adequado e pressionar ENTER. Para obter mais informações sobre como executar cmdlets do AppFabric, em geral, consulte Executando cmdlets do Windows Server AppFabric. Para obter informações detalhadas sobre parâmetros de escopo (-SiteName, -VirtualPath, -Uri, etc.), consulte Escopo do cmdlet e para obter informações detalhadas sobre parâmetros de pipe (ApplicationInfo e ServiceInfo), consulte Pipe de cmdlet.

Este tópico contém seções que descrevem como configurar os recursos de persistência de um Servidor SQL para um serviço de fluxo de trabalho.

Para configurar os recursos de persistência do servidor SQL para os serviços de fluxo de trabalho usando cmdlets

Esta seção descreve como usar os cmdlets do AppFabric para obter, definir ou redefinir os valores dos elementos relativos à persistência do servidor SQL e os atributos no arquivo de configuração associado ao escopo especificado.

Cmdlet

Descrição

Get-ASAppSqlServicePersistence

Obtém os valores dos elementos relativos à persistência e atributos do elemento sqlWorkflowInstanceStore no arquivo de configuração associado ao escopo especificado.

Set-ASAppSqlServicePersistence

Define os valores dos elementos relativos à persistência e atributos do elemento sqlWorkflowInstanceStore no arquivo de configuração associado ao escopo especificado.

Clear-ASAppSqlServicePersistence

Desmarca ou remove o elemento sqlWorkflowInstanceStore do arquivo de configuração associado com o escopo especificado.

Opções de sintaxe para o cmdlet Get-ASAppSqlServicePersistence

// to get workflow service persistence settings at the root level
Get-ASAppSqlServicePersistence -Root

// to get workflow service persistence settings at the Web site level
Get-ASAppSqlServicePersistence -SiteName <String> 

// to get workflow service persistence settings at the virtual application or service level that the VirtualPath points to 
Get-ASAppSqlServicePersistence -SiteName <String> -VirtualPath <String>] 

// to get workflow service persistence settings at the site, virtual application or service level that the Uri points to
Get-ASAppSqlServicePersistence -Uri <Uri> 

// to get workflow service persistence settings at the application level specified by the ApplicationObject.
Get-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> 
// Ex: Get-ASApplication -SiteName "Default Web Site" -VirtualPath /SampleApp | Get-ASAppSqlServicePersistence

// to get workflow service persistence settings at the service level specified by the Service Object
Get-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> 
// Ex: Get-ASApplicationService –SiteName “Default Web Site” –VirtualPath “/SampleApp/SampleService.xamlx” | Get-ASAppSqlServicePersistence

Opções de sintaxe para o cmdlet Set-ASAppSqlServicePersistence

Set-ASAppSqlServicePersistence [-SiteName] <String> [[-VirtualPath] <String>] [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence [-Uri] <Uri> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

Set-ASAppSqlServicePersistence [-ConnectionString <String>] [-ConnectionStringName <String>] [-EnableNetPipeProtocol] [-HostLockRenewalPeriod <TimeSpan>] [-InstanceCompletionAction {DeleteAll | DeleteNothing}] [-InstanceEncodingOption {GZip | None}] [-InstanceLockedExceptionAction {AggressiveRetry | BasicRetry | NoRetry}] [-Root] [-RunnableInstancesDetectionPeriod <Time>] [-UseInherited] [<CommonParameters>]

A tabela a seguir lista os parâmetros específicos para o cmdlet Set-ASAppSqlServicePersistence.

Parâmetro

Descrição

HostLockRenewalPeriod

Especifica o intervalo no qual um host deve renovar seu bloqueio na instância de serviço do fluxo de trabalho antes de o bloqueio expirar. Se o host não renovar o bloqueio dentro do período de tempo especificado, a instância de serviço do fluxo de trabalho é desbloqueada e um outro host pode obter o bloqueio na instância.

InstanceCompletionAction

Especifica se as informações de estado da instância é mantida em banco de dados de persistência após a instância do serviço de fluxo do trabalho ser concluída. Os valores permitidos para esse parâmetro são: DeleteAll e DeleteNothing.

InstanceEncodingOption

Especifica se as informações de estado da instância devem ser compactadas usando o algoritmo GZip antes de serem salvas no repositório de persistência. Os valores possíveis são GZip e Nenhum.

InstanceLockedExceptionAction

Especifica qual ação o host de serviço deve tomar ao receber uma InstanceLockedException quando o host tenta bloquear uma instância de serviço do fluxo de trabalho atualmente bloqueada por um outro host. As opções permitidas para esse campo são as seguintes: NoRetry, BasicRetry e AggressiveRetry. A lista a seguir fornece as descrições para estas três opções:

  • NoRetry. O host de serviço não tenta bloquear a instância do serviço de fluxo de trabalho e passa a InstanceLockedException para o chamador.  Se o fluxo de trabalho permanecer na memória por um período além de 60 segundos, use NoRetry como a repetição. O valor padrão é NoRetry.

  • BasicRetry. O host do serviço tenta novamente bloquear a instância do serviço de fluxo de trabalho com um intervalo linear entre tentativas de repetição e transfere InstanceLockedException para o chamador no final da sequência. Se seu fluxo de trabalho permanecer na memória entre aproximadamente 5 a 60 segundos e as mensagens chegarem em lotes onde é mais provável que mensagens enviadas para a mesma instância no mesmo host processem todas as mensagens antes de descarregar o fluxo de trabalho, use BasicRetry para alcançar a melhor latência sem perder recursos.

  • AggressiveRetry. O host do serviço tenta novamente bloquear a instância do serviço de fluxo de trabalho com uma retirada exponencial entre tentativas de repetição e transfere a exceção para o chamador no final da sequência. Se o fluxo de trabalho permanecer na memória por um tempo muito curto (menos de 5 segundos) ou uma Web farm for maior e a chance de outra mensagem ser entregue ao mesmo host não for muito alta, use AggressiveRetry para alcançar a melhor latência.

Dica

Com BasicRetry e AggressiveRetry, o tempo limite é automaticamente definido como qualquer tempo limite da chamada e não pode ser configurado.

Período de detecção de instâncias executáveis

Especifica o período após o qual o Repositório de Instâncias de Fluxo de Trabalho SQL executará uma tarefa de detecção a fim de detectar todas as instâncias de fluxo de trabalho que podem ser executadas ou ativadas presentes no banco de dados de persistência após o ciclo de detecção anterior.

Dica

Você só precisa passar um valor para o parâmetro que deseja alterar. Não é necessário passar valor para todos os parâmetros.

Opções de sintaxe para o cmdlet Clear-ASAppSqlServicePersistence

Clear-ASAppSqlServicePersistence -Root

Clear-ASAppSqlServicePersistence -SiteName <String> 

Clear-ASAppSqlServicePersistence -SiteName <String> -VirtualPath <String>] 

Clear-ASAppSqlServicePersistence -Uri <Uri> 

Clear-ASAppSqlServicePersistence -ApplicationObject <ApplicationInfo> 
// Ex: Get-ASApplication -SiteName "Default Web Site" -VirtualPath /SampleApp | Clear-ASAppSqlServicePersistence

Clear-ASAppSqlServicePersistence -ServiceObject <ServiceInfo> 
// Ex: Get-ASApplicationService –SiteName “Default Web Site” –VirtualPath “/SampleApp/SampleService.xamlx” | Clear-ASAppSqlServicePersistence

  2011-12-05