Configurare il salvataggio permanente del flusso di lavoro tramite i cmdlet di Windows Server AppFabric

È possibile utilizzare i cmdlet di AppFabric per ottenere o definire le impostazioni di salvataggio permanente di SQL Server per i servizi del flusso di lavoro. È possibile configurare le funzionalità di salvataggio permanente a livello di servizio per uno specifico flusso di lavoro oppure in ambito server, sito o applicazione e fare in modo che il servizio erediti tali impostazioni definite a livello superiore. Per ulteriori informazioni sulla modalità di funzionamento delle configurazioni nella gerarchia IIS, vedere Processo di configurazione in Windows Server AppFabric.

Nota

Per eseguire un cmdlet di AppFabric in modo interattivo, è necessario utilizzare la console Windows PowerShell per Windows Server AppFabric, immettere il cmdlet appropriato e premere INVIO. Per ulteriori informazioni sull'esecuzione dei cmdlet di AppFabric in generale, vedere Esecuzione dei cmdlet di Windows Server AppFabric. Per informazioni dettagliate sui parametri di ambito (-SiteName, -VirtualPath, -Uri ecc.), vedere Ambito di cmdlet. Per informazioni dettagliate sui parametri di piping (ApplicationInfo e ServiceInfo), vedere Piping di cmdlet.

Nelle sezioni di questo argomento viene descritta la modalità di configurazione delle funzionalità di salvataggio permanente di SQL Server per un servizio del flusso di lavoro.

Per configurare le funzionalità di salvataggio permanente di SQL Server per i servizi del flusso di lavoro mediante i cmdlet

In questa sezione viene descritto come utilizzare i cmdlet di AppFabric per ottenere, impostare o cancellare i valori degli elementi e degli attributi relativi al salvataggio permanente di SQL Server nel file di configurazione associato all'ambito specificato.

Cmdlet

Descrizione

Get-ASAppSqlServicePersistence

Ottiene i valori degli elementi e degli attributi relativi al salvataggio permanente dell'elemento sqlWorkflowInstanceStore nel file di configurazione associato all'ambito specificato.

Set-ASAppSqlServicePersistence

Imposta i valori degli elementi e degli attributi relativi al salvataggio permanente dell'elemento sqlWorkflowInstanceStore nel file di configurazione associato all'ambito specificato.

Clear-ASAppSqlServicePersistence

Cancella o rimuove l'elemento sqlWorkflowInstanceStore dal file di configurazione associato all'ambito specificato.

Opzioni di sintassi per il 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

Opzioni di sintassi per il 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>]

Nella tabella seguente sono elencati i parametri specifici per il cmdlet Set-ASAppSqlServicePersistence.

Parametro

Descrizione

HostLockRenewalPeriod

Specifica l'intervallo entro il quale un host deve rinnovare il blocco dell'istanza di servizio del flusso di lavoro prima che il blocco scada. Se l'host non rinnova il blocco nel periodo di tempo specificato, l'istanza di servizio del flusso di lavoro viene sbloccata e un altro host può ottenere il blocco dell'istanza.

InstanceCompletionAction

Specifica se le informazioni sullo stato dell'istanza vengono mantenute nel database di salvataggio permanente dopo il completamento dell'istanza di servizio del flusso di lavoro. I valori consentiti per questo parametro sono: DeleteAll and DeleteNothing.

InstanceEncodingOption

Specifica se le informazioni sullo stato dell'istanza vengono compresse mediante l'algoritmo GZip prima di essere salvate nell'archivio di salvataggio permanente. I valori possibili sono GZip e Nessuno.

InstanceLockedExceptionAction

Specifica l'azione che dovrà essere eseguita da un host di servizi al momento della ricezione di un'eccezione InstanceLockedException quando l'host tenta di bloccare un'istanza di servizio del flusso di lavoro attualmente bloccata da un altro host. Di seguito sono indicate le opzioni relative a questo campo: NoRetry, BasicRetry e AggressiveRetry. Nell'elenco riportato di seguito vengono fornite le descrizioni relative a queste tre opzioni:

  • NoRetry. L'host del servizio non esegue il tentativo di bloccare l'istanza del servizio di flusso di lavoro e passa InstanceLockedException al chiamante. Se il flusso di lavoro rimane in memoria per un intervallo di tempo superiore a 60 secondi, utilizzare NoRetry come nuovo tentativo. Il valore predefinito è NoRetry.

  • BasicRetry. L'host del servizio tenta nuovamente di bloccare l'istanza del servizio di flusso di lavoro con un intervallo lineare tra tentativi e passa InstanceLockedException al chiamante alla fine della sequenza. Se il flusso di lavoro rimane in memoria per un intervallo di tempo approssimativo compreso tra 5 e 60 secondi, e i messaggi arrivano in batch in cui è più probabile che vengano inviati alla stessa istanza sullo stesso host in modo che tutti vengano elaborati prima di scaricare il flusso di lavoro, utilizzare BasicRetry per ottenere la migliore latenza senza un utilizzo eccessivo di risorse.

  • AggressiveRetry. L'host del servizio tenta nuovamente di bloccare l'istanza del servizio di flusso di lavoro con un intervallo di backoff esponenziale tra un tentativo e l'altro e passa l'eccezione al chiamante alla fine della sequenza. Se il flusso di lavoro rimane in memoria per un intervallo di tempo molto breve (meno di 5 secondi), oppure in una Web farm di grandi dimensioni la probabilità che un altro messaggio venga recapitato allo stesso host è molto elevata, utilizzare AggressiveRetry per ottenere la latenza ottimale.

Nota

Con BasicRetry e AggressiveRetry il timeout viene automaticamente impostato su un qualsiasi timeout della chiamata e non è possibile configurarlo.

Periodo di rilevamento istanze eseguibili

Specifica il periodo di tempo dopo il quale SQL Workflow Instance Store esegue un'attività di rilevamento per individuare tutte le istanze del flusso di lavoro eseguibili o attivabili nel database di salvataggio permanente dopo il ciclo di rilevamento precedente.

Nota

È necessario soltanto passare un valore per il parametro che si desidera modificare. Non è necessario passare valori per tutti i parametri.

Opzioni di sintassi per il 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