Использование параметров в файле конфигурации экземпляра
Если настройка экземпляра служб Notification Services выполняется с помощью XML-файла конфигурации экземпляра (ICF), то можно использовать параметры, позволяющие обеспечить большую безопасность и портативность файла ICF и упростить процесс его обновления. Также можно передать значения из файла ICF в файлы определения приложения (ADF).
Если настройка экземпляра служб Notification Services выполняется программным путем, то объекты параметров не используются. Если требуется отдельное место для обновления значений определения экземпляра и определений приложений, то можно использовать переменные.
Параметры служб Notification Services
Службы Notification Services позволяют вместо значений элементов использовать параметры. Использование параметров дает определенные преимущества:
- Важные данные можно хранить вне ICF- и ADF-файлов и предоставлять значения только при создании или обновлении экземпляра.
- Определить значение параметра можно только один раз, а затем использовать его в нескольких элементах.
- Можно упростить обновление экземпляра и приложения, размещая часто изменяющиеся значения в одном и том же месте.
В ICF- или ADF-файлах заменяемый параметр выглядит следующим образом: %MyParam%
. Это имя параметра, заключенное в символы процента. При указании значения параметра нужно указать имя (MyParam
) и значение этого параметра, например MyServer
.
При создании или обновлении экземпляра службы Notification Services заменяют параметр (%MyParam%
) на указанное значение (MyServer
).
Для ICF-файлов значения параметра можно ввести в элементе ParameterDefaults с помощью ввода в командной строке nscontrol или в диалоговых окнах среды SQL Server Management Studio, используемых для создания или обновления экземпляра. Однако среда SQL Server Management Studio допускает только один уровень замещения параметра. Например, параметр А может ссылаться на параметр B, только если B сам не имеет ссылку на какой-либо параметр.
Определение параметров по умолчанию в ICF-файле
Значения для ICF-параметров можно предоставить в элементе ICF ParameterDefaults. Службы Notification Services считывают из этого элемента имена параметров и их значения, а затем заменяют соответствующие параметры указанными значениями.
Например, можно использовать параметр для указания пути файла, который является общим файлом для нескольких элементов. Можно назвать этот параметр BaseDirPath
и создать в файле ICF следующие элементы:
<BaseDirectoryPath>%BaseDirPath%\Stock</BaseDirectoryPath>
...
<AssemblyName>%BaseDirPath%\SMS.dll</AssemblyName>
Затем можно ввести значение для %BaseDirPath%
, как указано ниже:
<ParameterDefaults>
<Parameter>
<Name>BaseDirPath</Name>
<Value>C:\NS</Value>
</Parameter>
</ParameterDefaults>
При создании или обновлении экземпляра Notification Services заменяет каждое вхождение %BaseDirPath%
в ICF-файле строкой "C:\NS". Это аналогично использованию в файле ICF следующих элементов:
<BaseDirectoryPath>C:\NS\Stock</BaseDirectoryPath>
...
<AssemblyName>C:\NS\SMS.dll</AssemblyName>
Определение значений параметров при создании и обновлении экземпляра
Если значения параметров необходимо хранить не в ICF-файле, то можно предоставить значения при создании или обновлении экземпляра, или в виде переменных среды. Например, если для создания экземпляра используется программа командной строки nscontrol, то в ней могут содержаться значения имени пользователя и пароля.
В этом примере для канала доставки требуется имя пользователя и пароль. Хранить эти данные в файле ICF не требуется, поэтому используйте следующие параметры:
<DeliveryChannel>
<DeliveryChannelName>MyChannel</DeliveryChannelName>
<ProtocolName>MyProtocol</ProtocolName>
<Arguments>
<Argument>
<Name>UserName</Name>
<Value>%User%</Value>
</Argument>
<Argument>
<Name>Password</Name>
<Value>%Pwd%</Value>
</Argument>
</Arguments>
</DeliveryChannel>
Значения для параметров можно ввести в командной строке:
nscontrol create -in "C:\NS\InstanceConfig.xml" User=<userName>
Pwd=<enterStrongPasswordHere>
При создании или обновлении экземпляра значения параметров также можно ввести с помощью среды SQL Server Management Studio.
Очередность значений параметров
При создании или обновлении экземпляра в разделе ParameterDefaults можно определить значения для того же параметра, что и для переменной среды. По этой причине значения параметров обладают разной очередностью.
- Значения параметров, предоставляемые при создании или обновлении экземпляра, будут перезаписывать значения, хранящиеся в переменных среды и в разделе ParameterDefaults.
- Переменные среды переопределяют значения ParameterDefaults.
- Значения ParameterDefaults имеют самую низкий важность.
Передача параметров в ADF-файл
В ICF-файле для описания приложения, размещенного в экземпляре, используется элемент Application. Элемент Application имеет дочерний элемент Parameters. Можно использовать этот дочерний элемент для установки значений параметров для ADF-файла.
Например, в ADF-файле необходимо указать, на каких серверах работают внутрипроцессные поставщики событий, генератор и распространители. Выполните это с помощью элементов SystemName в ADF. Если все эти компоненты запускаются на одном сервере и надо указать имя сервера при создании экземпляра, то можно использовать параметры ADF-файла:
<HostedProvider>
...
<SystemName>%ApplicationServer%</SystemName>
...
<Generator>
<SystemName>%ApplicationServer%</SystemName>
...
<Distributor>
<SystemName>%ApplicationServer%</SystemName>
Можно указать значение этого параметра в элементе Application ICF-файла:
<Application>
...
<Parameters>
<Parameter>
<Name>ApplicationServer</Name>
<Value>Server01</Value>
</Parameter>
</Parameters>
</Application>
Службы Notification Services заменяют каждое вхождение %ApplicationServer%
в ADF-файле на значение Server01
при создании экземпляра служб.
Значения параметров для ADF также можно предоставить в элементе ADF ParameterDefaults.
По мере надобности можно комбинировать эти методы подстановки. Например, если требуется использовать параметр, такой как %AppServer%
, для значения ApplicationServer
, то значение для %AppServer%
можно ввести в командной строке.
См. также
Основные понятия
Задание имени экземпляра
Указание имени системы баз данных
Определение базы данных экземпляра
Соединение приложений с экземпляром
Определение пользовательских протоколов доставки
Определение каналов доставки
Настройка шифрования аргументов
Указание версии и журнала экземпляра
Использование параметров в файле определения приложения (ADF-файл)
Другие ресурсы
Настройка экземпляров служб Notification Services
ParameterDefaults Element (ICF)
Parameters Element (ICF)
ParameterDefaults Element (ADF)
Программа nscontrol
Определение приложений служб Notification Services