Использование параметров в файле конфигурации экземпляра

Если настройка экземпляра служб 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

Справка и поддержка

Получение помощи по SQL Server 2005