Freigeben über


Konfigurieren von Workflowpersistenz mithilfe von Windows Server AppFabric-Cmdlets

Sie können AppFabric-Cmdlets zum Abrufen oder Festlegen von SQL Server-Persistenzeinstellungen für Workflowdienste verwenden. Persistenzfeatures können auf Dienstebene für einen bestimmten Workflowdienst oder auf Server-, Site oder Anwendungsebene konfiguriert werden. In diesem Fall kann der Dienst die auf der höheren Ebene definierten Einstellungen per Vererbung übernehmen. Weitere Informationen zur Funktionsweise von Konfigurationen in der IIS-Hierarchie finden Sie unter Konfigurationsvorgang in Windows Server AppFabric.

Hinweis

Wenn Sie ein AppFabric-Cmdlet interaktiv ausführen möchten, müssen Sie die Windows PowerShell-Konsole für Windows Server AppFabric verwenden, das entsprechende Cmdlet eingeben und dann die EINGABETASTE drücken. Weitere Informationen zum Ausführen von AppFabric-Cmdlets im Allgemeinen finden Sie unter Ausführen von Windows Server AppFabric-Cmdlets. Ausführliche Informationen zu Bereichsparametern (-SiteName, -VirtualPath, -Uri usw.) finden Sie unter Cmdlet-Geltungsbereich. Ausführliche Informationen zu Pipingparametern (ApplicationInfo und ServiceInfo) finden Sie unter Piping von Cmdlets.

Dieses Thema enthält Abschnitte, die die Konfiguration von SQL Server-Persistenzfeatures für einen Workflowdienst beschreiben.

So konfigurieren Sie mithilfe von Cmdlets SQL Server-Persistenzfeatures für Workflowdienste

In diesem Abschnitt wird beschrieben, wie AppFabric-Cmdlets zum Abrufen, Festlegen oder Löschen von Werten für die sich auf SQL Server-Persistenz beziehenden Elemente und Attribute in der dem angegebenen Bereich zugeordneten Konfigurationsdatei verwendet werden.

Cmdlet

Beschreibung

Get-ASAppSqlServicePersistence

Ruft die Werte der sich auf Persistenz beziehenden Elemente und Attribute des Elements sqlWorkflowInstanceStore in der dem angegebenen Bereich zugeordneten Konfigurationsdatei ab.

Set-ASAppSqlServicePersistence

Legt die Werte der sich auf Persistenz beziehenden Elemente und Attribute des Elements sqlWorkflowInstanceStore in der dem angegebenen Bereich zugeordneten Konfigurationsdatei fest.

Clear-ASAppSqlServicePersistence

Löscht oder entfernt das Element sqlWorkflowInstanceStore aus der dem angegebenen Bereich zugeordneten Konfigurationsdatei.

Syntaxoptionen für das 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

Syntaxoptionen für das 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>]

Die folgende Tabelle nennt die Parameter, die für das Cmdlet Set-ASAppSqlServicePersistence spezifisch sind.

Parameter

Beschreibung

HostLockRenewalPeriod

Gibt das Intervall an, in dem ein Host seine Sperre für eine Workflowdienstinstanz erneuern muss, bevor die Sperre abläuft. Wenn der Host die Sperre nicht innerhalb des angegebenen Zeitraums erneuert, wird die Sperre der Workflowdienstinstanz aufgehoben, und ein anderer Host kann versuchen, die Sperre für die Instanz zu erwerben.

InstanceCompletionAction

Gibt an, ob die Instanzstatusinformationen in der Persistenzdatenbank nach dem Abschluss der Workflowdienstinstanz erhalten bleiben sollen. Die zulässigen Werte für diesen Parameter sind: DeleteAll und DeleteNothing.

InstanceEncodingOption

Gibt an, ob die Instanzstatusinformationen mithilfe des GZip-Algorithmus komprimiert werden sollen, bevor die Informationen im Persistenzspeicher gespeichert werden. Mögliche Werte sind GZip und None.

InstanceLockedExceptionAction

Gibt an, welche Aktion ein Diensthost ausführen soll, wenn er bei dem Versuch, eine aktuell durch einen anderen Host gesperrte Workflowdienstinstanz zu sperren, eine InstanceLockedException erhält. Die Optionen für dieses Feld lauten wie folgt: NoRetry, BasicRetry und AggressiveRetry. In der folgenden Liste sind die Beschreibungen dieser drei Optionen aufgeführt:

  • NoRetry. Der Diensthost versucht nicht, die Workflowdienstinstanz zu sperren, und übergibt die InstanceLockedException an den Aufrufer. Wenn Ihr Workflow für einen längeren Zeitraum als 60 Sekunden im Arbeitsspeicher verbleibt, verwenden Sie NoRetry als Wiederholungsversuch. Der Standardwert ist NoRetry.

  • BasicRetry. Der Diensthost versucht mit einem linearen Wiederholungsintervall erneut, die Workflowdienstinstanz zu sperren, und übergibt InstanceLockedException am Ende der Sequenz an den Aufrufer. Wenn der Workflow ungefähr 5 bis 60 Sekunden im Arbeitsspeicher verbleibt und Nachrichten in Batches eingehen, wobei es wahrscheinlicher ist, dass Nachrichten an die gleiche Instanz auf dem gleichen Host für die Verarbeitung aller Nachrichten vor dem Entladen des Workflows gesendet werden, verwenden Sie BasicRetry, um die bestmögliche Wartezeit zu erzielen, ohne Ressourcen zu vergeuden.

  • AggressiveRetry. Der Diensthost versucht mit einem exponentiellen Backoffintervall zwischen den Wiederholungsversuchen erneut, die Workflowdienstinstanz zu sperren, und übergibt sie Ausnahme am Ende der Sequenz an den Aufrufer. Wenn der Workflow nur für einen sehr kurzen Zeitraum (weniger als 5 Sekunden) im Arbeitsspeicher verbleibt oder eine Webfarm groß und die Wahrscheinlichkeit gering ist, dass eine andere Nachricht an den gleichen Host übermittelt wird, verwenden Sie AggressiveRetry, um die bestmögliche Wartezeit zu erzielen.

Hinweis

Mit BasicRetry und AggressiveRetry wird der Timeout automatisch auf den jeweiligen Timeout des Aufrufs festgelegt und kann nicht konfiguriert werden.

Erkennungszeitraum für ausführbare Instanzen

Gibt den Zeitraum an, nach dessen Verstreichen der SQL-Workflowinstanzspeicher einen Erkennungstask ausführt, um alle nach dem vorhergehenden Erkennungszyklus ausführbaren oder aktivierbaren Workflowinstanzen in der Persistenzdatenbank zu erkennen.

Hinweis

Sie müssen nur die Parameter übergeben, die Sie ändern möchten. Sie müssen nicht für alle Parameter Werte übergeben.

Syntaxoptionen für das 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