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


Использование параметров в файле определения приложения (ADF-файл)

При определении приложения служб Notification Services в файле определения приложения XML (ADF-файл) можно использовать параметры для обеспечения большей защищенности, переносимости и простоты обновления ADF-файлов. Также можно передавать значения из файла конфигурации экземпляра (ICF-файл) в ADF-файлы.

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

Параметры служб Notification Services

Службы Notification Services позволяют использовать параметры вместо значений элементов. Использование параметров дает определенные преимущества:

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

В ADF-файле параметр, который необходимо заменить, выглядит следующим образом: %MyParam%. Это заключенное в знаки процента имя параметра, что аналогично записи переменных среды. При указании значения параметра нужно указать имя (MyParam) и значение этого параметра, например MyServer. Как и переменные среды, имена параметров нечувствительны к регистру.

При создании или обновлении приложения службы Notification Services заменяют параметр (%MyParam%) указываемым значением (MyServer).

Для ADF-файла можно указать значения параметра в элементе ADF ParameterDefaults, можно передать значения из ICF-файла в приложение путем определения имен параметров и значений в разделе ICF-файла Application.

ms166503.note(ru-ru,SQL.90).gifВажно!
Если в ADF- или ICF-файле используются параметры, но для них не указываются значения при создании или обновлении экземпляра, то процесс создания или обновления заканчивается с ошибкой.

Определение значений параметров по умолчанию в ADF-файле

Можно указывать значения параметров ADF в элементе ADF ParameterDefaults. Службы Notification Services читают имена параметров и значения, содержащиеся в таком элементе, а затем заменяют соответствующие параметры указанными значениями.

Например, можно использовать параметр для указания пути файла, который является общим файлом для нескольких элементов. Этому параметру можно присвоить имя BaseDirPath и создать в ADF-файле следующие элементы:

<BaseDirectoryPath>%BaseDirPath%\Stock</BaseDirectoryPath>
...
<AssemblyName>%BaseDirPath%\MyContentFormatter.dll</AssemblyName>

Затем можно ввести значение для %BaseDirPath%, как указано ниже:

<ParameterDefaults>
    <Parameter>
        <Name>BaseDirPath</Name>
        <Value>C:\NS</Value>
    </Parameter>
</ParameterDefaults>

При создании или обновлении экземпляра службы Notification Services заменяют каждое вхождение %BaseDirPath% в ADF-файле строкой «C:\NS». Это равнозначно использованию в ADF-файле следующих элементов:

<BaseDirectoryPath>C:\NS\Stock</BaseDirectoryPath>
...
<AssemblyName>C:\NS\SMS.dll</AssemblyName>

Передача параметров из ICF-файла

В 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- и ICF-файлов можно указать значения при создании или обновлении экземпляра или в переменных среды. Например, при использовании программы командной строки nscontrol для создания экземпляра служб Notification Services можно указать имя пользователя и значения пароля в командной строке.

Для передачи этих значений в ADF-файл необходимо использовать параметры, содержащиеся в разделе ICF Application. В указанном выше примере, вместо того чтобы определить сервер приложения в ICF, можно использовать параметр %Server%, как показано в этом коде:

<Application>
    ...
    <Parameters>
        <Parameter>
            <Name>ApplicationServer</Name>
            <Value>%Server%</Value>
        </Parameter>
    </Parameters>
</Application>

Затем в командной строке можно указать значения параметра:

nscontrol create -in "C:\NS\InstanceConfig.xml" Server=Server01

При создании или обновлении экземпляра значение «Server01» заменяет %Server% в ICF. «Server01» затем заменяет все вхождения %ApplicationServer% в ADF-файле.

Параметры могут быть также переданы в ADF-файл при использовании SQL Server Management Studio для создания и обновления экземпляров служб Notification Services. Однако среда SQL Server Management Studio допускает только один уровень замещения параметра. Например, параметр А может ссылаться на параметр B, только если B сам не имеет ссылку на какой-либо параметр.

Очередность значений параметров

Можно определить значение для одного и того же параметра в разделе ParameterDefaults как переменную среды и при создании или обновлении экземпляра. По этой причине значения параметров обладают разной очередностью.

  • Значения параметров, предоставляемые при создании или обновлении экземпляра, обладают наивысшей очередностью и переопределяют значения, предоставляемые в переменных среды и в разделе ParameterDefaults.
  • Переменные среды переопределяют значения раздела ParameterDefaults.
  • Самая низкая важность у значений раздела ParameterDefaults.

См. также

Основные понятия

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

Другие ресурсы

ParameterDefaults Element (ADF)
Parameter Element (ADF)
ParameterDefaults Element (ICF)
Программа nscontrol
Определение приложений служб Notification Services
Настройка экземпляров служб Notification Services

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

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