Включение сквозного чтения и записи с задержкой в кэше (кэширование в AppFabric 1.1)
Перед включением поставщика со сквозным чтением или записью с задержкой Кэш Microsoft AppFabric 1.1 для Windows Server для кэша сначала нужно выполнить следующие действия:
Расширение класса DataCacheStoreProvider (кэширование в AppFabric 1.1)
Развертывание поставщика сквозного чтения или записи с задержкой (кэширование в AppFabric 1.1)
После этого все готово к включению поставщика для кэша,
Включение поставщика с помощью Windows PowerShell
Поставщик можно связать с кэшем с помощью команд Windows PowerShell New-Cache и Set-CacheConfig. Эти команды поддерживают следующие параметры, настраивающие поставщики со сквозным чтением и задержкой записи.
Параметр | Тип | Описание |
---|---|---|
ProviderType |
string |
Полное имя типа сборки поставщика. Этот поставщик реализует функции записи с задержкой и сквозного чтения. Для имени учитывается регистр символов. |
ProviderSettings |
hashtable |
Одна пара "ключ-значение" или несколько, указывающие параметры конфигурации поставщика, например данные для подключения. |
ReadThroughEnabled |
string |
Этот параметр используется для включения функции сквозного чтения. По умолчанию данный параметр равен "false". |
WriteBehindEnabled |
string |
Этот параметр используется для включения функции записи с задержкой. По умолчанию данный параметр равен "false". |
WriteBehindInterval |
integer |
Количество секунд, отводимых на запись элемента кэша в поставщике после его записи в кэш. |
WriteBehindRetryCount |
integer |
Максимальное число повторных попыток подключения к поставщику с задержкой записи. (Значение |
WriteBehindRetryInterval |
integer |
Задаваемый в секундах интервал между повторными попытками в случае сбоя подключения к поставщику с задержкой записи. |
Обратите внимание, что команда Set-CacheConfig не требует отключать кластер кэша для изменения поставщика, если используется параметр refreshNow. Это не относится к другим изменениям конфигурации кэша, для которых требуется сначала остановить кластер кэша.
Параметр ProviderType использует полное имя класса, реализующего поставщик. Один из способов найти полное доменное имя сборки – использовать программу gacutil.exe для поиска зарегистрированной сборки в глобальном кэше сборок. Это показано в следующем примере.
gacutil.exe /l RTProvider
Данная команда возвращает полное доменное имя сборки в глобальном кэше сборок, например:
RTProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=80e2cb5f6ba933f0, processorArchitecture=MSIL
К нему достаточно присоединить квалифицированное имя класса. Например, если имя класса – Provider
, то параметр ProviderType в этом примере будет содержать следующую строку.
RTProvider.Provider, RTProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=80e2cb5f6ba933f0
Обратите внимание, что параметр ProviderSettings содержит пары "ключ-значение", специфичные для поставщика. Этот параметр необходим только тогда, когда поставщику нужны эти параметры.
Пример
В следующем примере создается новый кэш с именем Cache1
, для которого включается поставщик со сквозным чтением и задержкой записи RTProvider
.
New-Cache Cache1 -ReadThroughEnabled true -WriteBehindEnabled true -WriteBehindInterval 60 -ProviderType "RTProvider.Provider, RTProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=80e2cb5f6ba933f0" -ProviderSettings @{"setting1"="value1";"setting2"="value2"}
Обратите внимание, что параметр ProviderSettings передает две пары "ключ-значение" в форме, которая в среде Windows Powershell используется для хэш-таблиц.
Прочие соображения
Если при включении поставщика возникает ошибка, возможно, что поставщик не был зарегистрирован надлежащим образом. Убедитесь, что поставщик зарегистрирован на всех узлах кэша, и что вы правильно указали полное имя.
Если вы обновляете библиотеку DLL поставщика в глобальном кэше сборок на всех узлах кэша, то кластер кэша не будет использовать новую версию, пока служба кэша не будет перезапущена с помощью команд Windows PowerShell Restart-CacheCluster или Start-CacheHost.
Объекты DataCacheItem хранятся в кластере кэша в сериализованной форме. Если поставщику требуется десериализовать данные в DataCacheItem, то сборки, связанные с сериализованными объектами, также должны находиться в кэше сборок на узлах кэша.
См. также
Основные понятия
Расширение класса DataCacheStoreProvider (кэширование в AppFabric 1.1)
Развертывание поставщика сквозного чтения или записи с задержкой (кэширование в AppFabric 1.1)
2012-03-05