Utilisation de paramètres dans un fichier de configuration d'instance (ICF)

Si vous configurez une instance de Notification Services à l'aide d'un fichier XML de configuration d'instance (ICF), vous pouvez utiliser des paramètres pour améliorer la sécurité et la portabilité du fichier ICF et faciliter sa mise à jour. Vous pouvez également transmettre des valeurs du fichier ICF dans des fichiers de définition d'application (ADF).

Si vous configurez une instance de Notification Services par programme, il n'y a pas d'objets de paramètre. Si vous voulez un emplacement unique afin de mettre à jour une valeur pour la définition d'instance et les définitions d'application, vous pouvez utiliser des variables.

Paramètres de Notification Services

Notification Services vous permet d'utiliser des paramètres à la place des valeurs d'éléments. L'utilisation des paramètres est intéressante à bien des égards :

  • Vous pouvez conserver les données sensibles en dehors des fichiers ICF et ADF et fournir les valeurs uniquement lors de la création ou de la mise à jour de l'instance.
  • Vous pouvez définir une valeur de paramètre une seule fois et utiliser celle-ci dans plusieurs éléments.
  • Vous pouvez simplifier les mises à jour d'instances et d'applications en plaçant les valeurs susceptibles d'être modifiées dans un endroit unique.

Dans un fichier ICF ou ADF, un paramètre à remplacer ressemble à ceci : %MyParam%. Il s'agit du nom du paramètre entouré des caractères de pourcentage. Lorsque vous définissez une valeur pour le paramètre, vous spécifiez son nom (MyParam) et sa valeur, par exemple MyServer.

Lorsque vous créez ou mettez à jour l'instance, Notification Services remplace le paramètre (%MyParam%) par la valeur que vous spécifiez (MyServer).

Pour le fichier ICF, vous pouvez fournir des valeurs de paramètre dans l'élément ParameterDefaults, sur la ligne de commande nscontrol ou dans les dialogues SQL Server Management Studio utilisés pour créer ou pour mettre à jour l'instance. Cependant, SQL Server Management Studio n'autorise qu'un seul niveau de substitution de paramètres. Par exemple, le paramètre A peut faire référence au paramètre B uniquement si B ne fait pas lui-même référence à un autre paramètre.

Définition des valeurs par défaut des paramètres dans le fichier ICF

Vous pouvez fournir des valeurs pour les paramètres ICF dans l'élément ParameterDefaults du fichier ICF. Notification Services lit les noms et les valeurs de paramètre dans cet élément et remplace les paramètres correspondants par les valeurs spécifiées.

Par exemple, vous pouvez utiliser un paramètre pour un chemin d'accès de fichier commun à plusieurs éléments. Vous pouvez nommer ce paramètre BaseDirPath et créer les éléments suivants dans votre fichier ICF :

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

Vous pouvez ensuite fournir une valeur pour %BaseDirPath% de la façon suivante :

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

Lorsque vous créez ou mettez à jour l'instance, Notification Services remplace chaque occurrence de %BaseDirPath% dans le fichier ICF par la chaîne « C:\\NS ». Cela équivaut logiquement à utiliser les éléments suivants de votre fichier ICF :

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

Définition des valeurs de paramètre lors de la création ou de la mise à jour d'une instance

Si vous souhaitez conserver des valeurs de paramètre en dehors du fichier ICF, vous pouvez fournir des valeurs lors de la création ou de la mise à jour de l'instance ou dans des variables d'environnement. Par exemple, si vous employez l'utilitaire de ligne de commande nscontrol pour créer l'instance, vous pouvez indiquer le nom d'utilisateur et le mot de passe sur la ligne de commande.

Dans cet exemple, votre canal de remise nécessite un nom d'utilisateur et un mot de passe. Si vous ne voulez pas stocker ces informations dans le fichier ICF, utilisez les paramètres suivants :

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

Vous pouvez ensuite fournir des valeurs pour les paramètres sur la ligne de commande :

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

Vous pouvez également fournir des valeurs de paramètre si vous créez ou mettez à jour l'instance avec SQL Server Management Studio.

Priorité des valeurs de paramètre

Il est possible de définir une valeur pour le même paramètre dans la section ParameterDefaults, en tant que variable d'environnement, et lors de la création ou de la mise à jour de l'instance. Par conséquent, les valeurs de paramètre sont hiérarchisées :

  • Les valeurs de paramètre fournies lors de la création ou de la mise à jour de l'instance supplantent les valeurs fournies dans les variables d'environnement et dans la section ParameterDefaults.
  • Les variables d'environnement supplantent les valeurs ParameterDefaults.
  • Les valeurs ParameterDefaults ont la priorité la plus faible.

Transmission des paramètres à un fichier ADF

Dans le fichier ICF, vous utilisez l'élément Application pour décrire une application hébergée par l'instance. L'élément Application possède un élément enfant Parameters. Vous pouvez utiliser cet élément enfant afin de définir des valeurs de paramètre pour le fichier ADF.

Par exemple, dans le fichier ADF, vous devez définir les serveurs qui vont exécuter les fournisseurs d'événements hébergés, le générateur et les serveurs de distribution. Pour cela, vous utilisez les éléments SystemName du fichier ADF. Si vous exécutez tous ces composants sur un serveur unique et si vous voulez définir le nom du serveur lorsque vous créez l'instance, vous pouvez utiliser des paramètres du fichier ADF :

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

Vous pouvez ensuite définir une valeur pour ce paramètre dans l'élément Application du fichier ICF :

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

Lorsque vous créez l'instance, Notification Services remplace chaque occurrence de %ApplicationServer% dans le fichier ADF par la valeur Server01.

Vous pouvez également fournir des valeurs de paramètre pour le fichier ADF dans l'élément ParameterDefaults du fichier ADF.

Vous pouvez combiner ces méthodes de substitution selon les besoins. Par exemple, si vous devez utiliser un paramètre tel que %AppServer%, pour la valeur ApplicationServer, vous pouvez fournir une valeur pour %AppServer% sur la ligne de commande.

Voir aussi

Concepts

Spécification du nom d'instance
Spécification du nom du système de base de données
Définition de la base de données d'instance
Associations d'applications à une instance
Définition des protocoles de remise personnalisés
Définition des canaux de remise
Configuration du chiffrement des arguments
Spécification de la version et de l'historique d'une instance
Utilisation de paramètres dans un fichier de définition d'application (ADF)

Autres ressources

Configuration des instances de Notification Services
ParameterDefaults Element (ICF)
Parameters Element (ICF)
ParameterDefaults Element (ADF)
Utilitaire nscontrol
Définition des applications Notification Services

Aide et Informations

Assistance sur SQL Server 2005