Поделиться через


Настройка сохраняемости рабочих процессов с помощью командлетов Windows Server AppFabric

Можно использовать командлеты AppFabric для получения или определения параметров сохраняемости SQL Server для служб рабочих процессов. Можно настроить функции сохраняемости на уровне службы для определенной службы рабочих процессов или на уровне сервера, сайта или приложения, чтобы служба наследовала параметры, заданные на более высоком уровне. Дополнительные сведения о том, как работают конфигурации в иерархии IIS, см. в разделе Процесс настройки в Windows Server AppFabric.

Примечание

Чтобы выполнить командлет AppFabric интерактивно, необходимо использовать консоль Windows PowerShell для Windows Server AppFabric, ввести в ней соответствующий командлет и нажать клавишу ВВОД. Дополнительные сведения о выполнении командлетов AppFabric см. в разделе Запуск командлетов Windows Server AppFabric. Дополнительные сведения о параметрах области (-SiteName, -VirtualPath, -Uri и т. п.) см. в разделе Область действия командлета, а дополнительные сведения о параметрах конвейеризации (ApplicationInfo и ServiceInfo) см. в разделе Конвейеризация командлетов.

В этом разделе содержатся подразделы, посвященные настройке функций сохраняемости SQL Server для службы рабочих процессов.

Настройка функций сохраняемости SQL Server для служб рабочих процессов с помощью командлетов

В этом разделе описано, как использовать командлеты AppFabric для получения, задания или очистки значений элементов и атрибутов, связанных с сохраняемостью SQL Server, в файле конфигурации, связанном с указанной областью.

Командлет

Описание

Get-ASAppSqlServicePersistence

Получает значения элементов и атрибутов, связанных с сохраняемостью и относящихся к элементу sqlWorkflowInstanceStore в файле конфигурации, связанном с определенной областью.

Set-ASAppSqlServicePersistence

Задает значения элементов и атрибутов, связанных с сохраняемостью и относящихся к элементу sqlWorkflowInstanceStore в файле конфигурации, связанном с определенной областью.

Clear-ASAppSqlServicePersistence

Очищает или удаляет элемент sqlWorkflowInstanceStore из файла конфигурации, связанного с определенной областью.

Параметры синтаксиса командлета 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

Параметры синтаксиса командлета 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>]

В следующей таблице приведены параметры, относящиеся к командлету Set-ASAppSqlServicePersistence.

Параметр

Описание

HostLockRenewalPeriod

Указывает интервал, в течение которого узел должен обновить блокировку экземпляра, прежде чем срок ее действия истечет. Если узел не обновит блокировку в течение заданного периода, экземпляр службы рабочих процессов разблокируется и его может заблокировать другой узел.

InstanceCompletionAction

Указывает, должны ли сведения о состоянии экземпляра службы рабочих процессов сохраняться в базе данных сохраняемости после выполнения экземпляра. Допустимые значения для этого параметра: DeleteAll и DeleteNothing.

InstanceEncodingOption

Указывает, следует ли выполнять сжатие данных о состоянии экземпляра с использованием алгоритма GZip до их сохранения в хранилище сохраняемости. Возможные значения: GZip и None.

InstanceLockedExceptionAction

Указывает, какое действие должен предпринять узел службы в случае получения исключения InstanceLockedException при попытке блокировки узлом экземпляра службы рабочих процессов, который в данный момент заблокирован другим узлом. В данном поле можно выбрать следующие параметры: NoRetry, BasicRetry и AggressiveRetry. В следующем списке приведено описание этих трех параметров.

  • NoRetry. Узел службы не пытается заблокировать экземпляр службы рабочих процессов и передает вызывающей стороне исключение InstanceLockedException.  Если рабочий процесс остается в памяти дольше 60 секунд, используйте NoRetry в качестве значения параметра повтора. По умолчанию используется значение NoRetry.

  • BasicRetry. Узел службы пытается повторно заблокировать экземпляр службы рабочих процессов с использованием линейной задержки, а по завершении последовательности передает вызывающей стороне исключение InstanceLockedException. Если рабочий процесс остается в памяти от 5 до 60 секунд, и сообщения поступают пакетами, причем велика вероятность того, что сообщения, отправляемые одному и тому же экземпляру на одном и том же узле, будут полностью обработаны до выгрузки рабочего процесса, то для достижения оптимальной задержки без затраты излишних ресурсов следует использовать BasicRetry.

  • AggressiveRetry. Узел службы пытается повторно заблокировать экземпляр службы рабочих процессов с использованием экспоненциальной задержки, а по завершении последовательности передает вызывающему объекту исключение. Если рабочий процесс остается в памяти очень недолго (менее 5 секунд), или же веб-ферма имеет большой масштаб и шансы на то, что на этот же узел попадет новое сообщение, невелики, используйте AggressiveRetry, чтобы добиться оптимальной задержки.

Примечание

При использовании BasicRetry или AggressiveRetry время ожидания автоматически приравнивается ко времени ожидания вызова; настроить его нельзя.

Период обнаружения годных к запуску экземпляров

Период времени, по истечении которого хранилище экземпляров рабочих процессов SQL запускает задачу для обнаружения готовых к запуску или активации экземпляров рабочих процессов в базе данных сохраняемости после предыдущего цикла обнаружения.

Примечание

Необходимо передать значение параметра, который следует изменить; нет необходимости передавать значения для всех параметров.

Параметры синтаксиса командлета 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