Usar parámetros en un archivo de configuración de instancia

Si configura una instancia de Notification Services utilizando un archivo de configuración de instancia (ICF) XML, puede utilizar parámetros para que la actualización del ICF sea más segura, más portátil y más fácil. También puede pasar valores del ICF a archivos de definición de aplicación (ADF).

Si configura una instancia de Notification Services mediante programación, no hay objetos de parámetro. Puede utilizar variables si desea un lugar único donde actualizar un valor para la definición de instancia y las definiciones de aplicación.

Parámetros de Notification Services

Notification Services le permite usar parámetros en lugar de valores de elemento. Puede ser beneficioso utilizar parámetros por varias razones:

  • Puede mantener los datos confidenciales fuera del ICF y los ADF y proporcionar los valores sólo al crear o actualizar la instancia.
  • Puede definir un valor de parámetro una vez y utilizarlo en varios elementos.
  • Puede facilitar las actualizaciones de la instancia y la aplicación colocando los valores que suelen cambiar en un solo lugar.

Dentro de un ICF o un ADF, un parámetro que se va a reemplazar es como éste: %MyParam%. Es el nombre de parámetro rodeado de caracteres de porcentaje. Al definir un valor para el parámetro, especifique el nombre (MyParam) y un valor para el parámetro, como MyServer.

Al crear o actualizar la instancia, Notification Services reemplaza el parámetro (%MyParam%) por el valor que especifique en (MyServer).

Para el ICF, puede proporcionar valores de parámetro en el elemento ParameterDefaults, en la línea de comandos nscontrol, o en los cuadros de diálogo SQL Server Management Studio utilizados para crear o actualizar la instancia. Sin embargo, SQL Server Management Studio permite sólo un nivel de sustitución de parámetros. Por ejemplo, el parámetro A puede hacer referencia al parámetro B sólo si B no hace referencia a otro parámetro.

Definir parámetros predeterminados en el ICF

Puede proporcionar valores para parámetros de ICF en el elemento ParameterDefaults del ICF. Notification Services lee los nombres de parámetros y los valores de este elemento y, a continuación, reemplaza los parámetros correspondientes por los valores especificados.

Por ejemplo, puede utilizar un parámetro para una ruta de acceso del archivo común a varios elementos. Puede asignar un nombre a este parámetro BaseDirPath y crear los siguientes elementos en su ICF:

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

A continuación, puede proporcionar un valor para %BaseDirPath% de la forma siguiente:

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

Al crear o actualizar la instancia, Notification Services reemplaza cada repetición de %BaseDirPath% en el ICF por la cadena "C:\NS". Lógicamente, esto es lo mismo que utilizar los elementos siguientes en su ICF:

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

Definir valores de parámetro al crear y actualizar una instancia

Si desea conservar valores de parámetro fuera del ICF, puede proporcionar valores al crear o actualizar la instancia o en variables de entorno. Por ejemplo, si utiliza la herramienta de símbolo del sistema nscontrol para crear la instancia, puede proporcionar los valores de nombre de usuario y contraseña en la línea de comandos.

En este ejemplo, su canal de entrega requiere un nombre de usuario y una contraseña. No desea almacenarlos en el ICF, por lo que utiliza los parámetros:

<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>

A continuación, puede proporcionar valores para los parámetros en la línea de comandos:

nscontrol create -in "C:\NS\InstanceConfig.xml" User=<userName>
    Pwd=<enterStrongPasswordHere>

También puede proporcionar valores de parámetro si crea o si actualiza la instancia con SQL Server Management Studio.

Prioridad de valores de parámetro

Es posible definir un valor para el mismo parámetro en la sección ParameterDefaults, como una variable de entorno, y al crear o actualizar la instancia. Por este motivo existe prioridad entre valores de parámetro:

  • Los valores de parámetro proporcionados al crear o actualizar la instancia suplantarán los valores proporcionados en las variables de entorno y en la sección ParameterDefaults.
  • Las variables de entorno suplantan los valores de ParameterDefaults.
  • Los valores de ParameterDefaults tienen la prioridad más baja.

Pasar parámetros a un ADF

Dentro del ICF, utilice el elemento Application para describir una aplicación alojada en la instancia. El elemento Application tiene un elemento secundario Parameters. Puede utilizar este elemento secundario para definir valores de parámetro para el ADF.

Por ejemplo, en el ADF debe definir los servidores que ejecutan los proveedores de eventos alojados, el generador y los distribuidores. Esto se hace mediante elementos de SystemName en el ADF. Si ejecuta todos estos componentes en un servidor y desea definir el nombre de servidor al crear la instancia, puede utilizar parámetros en el ADF:

<HostedProvider>
    ...
    <SystemName>%ApplicationServer%</SystemName>
...
<Generator>
    <SystemName>%ApplicationServer%</SystemName>
...
<Distributor>
    <SystemName>%ApplicationServer%</SystemName>

A continuación, puede definir un valor para este parámetro en el elemento Application del ICF:

<Application>
    ...
    <Parameters>
        <Parameter>
            <Name>ApplicationServer</Name>
            <Value>Server01</Value>
        </Parameter>
    </Parameters>
</Application>

Al crear la instancia, Notification Services reemplaza cada repetición de %ApplicationServer% en el ADF por el valor Server01.

También puede proporcionar valores de parámetro para el ADF en el elemento ParameterDefaults del ADF.

Puede combinar estos métodos de sustitución según sea necesario. Por ejemplo, si usara un parámetro como %AppServer% para el valor ApplicationServer, podría proporcionar un valor para %AppServer% en la línea de comandos.

Vea también

Conceptos

Especificar el nombre de instancia
Especificar el nombre de sistema de la base de datos
Definir la base de datos de instancia
Asociar aplicaciones con una instancia
Definir protocolos de entrega personalizados
Definir canales de entrega
Configurar el cifrado de argumentos
Especificar el historial y la versión de instancia
Usar parámetros en un archivo de definición de aplicación (ADF)

Otros recursos

Configurar instancias de Notification Services
ParameterDefaults Element (ICF)
Parameters Element (ICF)
ParameterDefaults Element (ADF)
nscontrol (utilidad)
Definir aplicaciones de Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005