Usar parámetros en un archivo de definición de aplicación (ADF)

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

Si define una aplicación mediante programación, no hay objetos de parámetro. Puede utilizar variables si desea un lugar único donde actualizar un valor para una 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 de la definición de aplicación y proporcionar los valores sólo al crear o actualizar la aplicación.
  • 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 ADF, un parámetro que se va a reemplazar es como éste: %MyParam%. Es el nombre de parámetro rodeado de caracteres de porcentaje, similar a una variable de entorno. Al definir un valor para el parámetro, especifique el nombre (MyParam) y un valor para el parámetro, como MyServer. Al igual que las variables de entorno, los nombres de parámetro no distinguen entre mayúsculas y minúsculas.

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

Para el ADF, puede proporcionar valores de parámetro en el elemento ParameterDefaults del ADF y pasar valores del ICF a la aplicación definiendo nombres de parámetro y valores en la sección Application del ICF.

ms166503.note(es-es,SQL.90).gifImportante:
Si utiliza parámetros en un ADF o un ICF, pero no proporciona valores para los parámetros al crear o actualizar la instancia, se producen errores en el proceso de creación o actualización.

Definir parámetros predeterminados en el ADF

Puede proporcionar valores para los parámetros ADF en el elemento ParameterDefaults del ADF. Notification Services lee los nombres de parámetro 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 al parámetro BaseDirPath y crear los siguientes elementos en su ADF:

<BaseDirectoryPath>%BaseDirPath%\Stock</BaseDirectoryPath>
...
<AssemblyName>%BaseDirPath%\MyContentFormatter.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 ADF por la cadena "C:\NS". Lógicamente, es lo mismo que utilizar los siguientes elementos en su ADF:

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

Pasar parámetros de un ICF

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. Para ello, utilice elementos 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".

Pasar parámetros al compilar una instancia

Si desea conservar valores de parámetro fuera del ADF e 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 una instancia de Notification Services, puede proporcionar los valores de nombre de usuario y contraseña en la línea de comandos.

Para pasar estos valores al ADF, debe utilizar parámetros en la sección Application del ICF. Al utilizar el ejemplo anterior, en lugar de definir el servidor de aplicaciones en el ICF, se puede utilizar el parámetro %Server% como se muestra en este código:

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

Después, puede proporcionar valores para el parámetro en la línea de comandos:

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

Al crear o actualizar la instancia, el valor Server01 reemplaza %Server% en el ICF. A continuación, Server01 reemplaza todas las repeticiones de %ApplicationServer% en el ADF.

También puede pasar parámetros al ADF cuando se utiliza SQL Server Management Studio para crear y actualizar instancias de Notification Services. 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.

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 tienen la prioridad más alta y 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.

Vea también

Conceptos

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

Otros recursos

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

Ayuda e información

Obtener ayuda sobre SQL Server 2005