Utilizzo dei parametri nel file di definizione dell'applicazione (ADF)

Se si definisce un'applicazione di Notification Services in un file di definizione dell'applicazione (ADF) XML, è possibile utilizzare i parametri per rendere l'ADF più sicuro, portatile e facile da aggiornare. È inoltre possibile passare valori da un file di configurazione dell'istanza (ICF) ai file ADF.

Se si definisce un'applicazione a livello di programmazione, non sono presenti oggetti parametro. È possibile utilizzare le variabili come singolo elemento per aggiornare un valore per un'applicazione.

Parametri di Notification Services

Notification Services consente di utilizzare i parametri anzichè i valori di elemento. L'utilizzo dei parametri può essere un vantaggio per vari motivi:

  • È possibile escludere i dati riservati dalla definizione dell'applicazione e specificare i valori solo quando si crea o si aggiorna l'applicazione.
  • È possibile definire un valore di parametro una volta e utilizzarlo in più elementi.
  • È possibile semplificare gli aggiornamenti di istanze e applicazioni inserendo i valori con maggiore probabilità di modifica in un'unica posizione.

All'interno di un ADF, un parametro da sostituire è analogo al seguente: %MyParam%. Questo è il nome del parametro tra caratteri di percentuale, simile a una variabile di ambiente. Quando si definisce un valore per il parametro, specificare il nome (MyParam) e un valore per il parametro, ad esempio MyServer. Come le variabili di ambiente, per i nomi dei parametri non viene fatta distinzione tra maiuscole e minuscole.

Quando si crea o si aggiorna l'applicazione, Notification Services sostituisce il parametro (%MyParam%) con il valore specificato (MyServer).

Per l'ADF, è possibile specificare i valori dei parametri nell'elemento ParameterDefaults dell'ADF ed è possibile passare i valori dall'ICF all'applicazione definendo i nomi ei valori dei parametri nella sezione Application dell'ICF.

ms166503.note(it-it,SQL.90).gifImportante:
Se si utilizzano i parametri in un file ADF o ICF, ma non si specificano i valori per i parametri quando si crea o si aggiorna l'istanza, la procedura di creazione o aggiornamento non riesce.

Definizione dei valori predefiniti dei parametri nell'ADF

È possibile specificare i valori per i parametri dell'ADF nell'elemento ParameterDefaults dell'ADF. Notification Services legge i nomi e i valori dei parametri da tale elemento e quindi sostituisce i parametri corrispondenti con i valori specificati.

Ad esempio, è possibile utilizzare un parametro per un percorso di file comune a più elementi. È possibile denominare il parametro BaseDirPath e creare gli elementi seguenti nell'ADF:

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

È quindi possibile specificare un valore per %BaseDirPath% come segue:

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

Quando si crea o si aggiorna l'istanza, Notification Services sostituisce ogni occorrenza di %BaseDirPath% nell'ADF con la stringa "C:\NS". Dal punto di vista logico questo corrisponde all'utilizzo degli elementi seguenti nell'ADF:

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

Passaggio di parametri da un ICF

All'interno dell'ICF, si utilizza l'elemento Application per descrivere un'applicazione ospitata dall'istanza. L'elemento Application dispone di un elemento figlio Parameters. È possibile utilizzare questo elemento figlio per definire i valori dei parametri per l'ADF.

Ad esempio, nell'ADF è necessario definire quale server esegue i provider di eventi non hosted, il generatore e i server di distribuzione. È possibile eseguire tale operazione tramite gli elementi SystemName nell'ADF. Se si eseguono tutti i componenti su un server e si desidera definire il nome server quando si crea l'istanza, è possibile utilizzare i parametri nell'ADF:

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

È quindi possibile definire un valore per il parametro nell'elemento Application dell'ICF:

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

Quando si crea l'istanza, Notification Services sostituisce ogni occorrenza di %ApplicationServer% nell'ADF con il valore "Server01".

Passaggio di parametri nella compilazione di un'istanza

Per mantenere i valori dei parametri esterni all'ICF e all'ADF, è possibile specificare i valori al momento della creazione o dell'aggiornamento dell'istanza oppure all'interno di variabili di ambiente. Ad esempio, se si utilizza l'utilità del prompt dei comandi nscontrol per creare un'istanza di Notification Services, è possibile specificare i valori di nome utente e password dalla riga di comando.

Per passare questi valori all'ADF, è necessario utilizzare i parametri all'interno della sezione Application dell'ICF. Utilizzando l'esempio precedente, anzichè definire il server dell'applicazione nell'ICF, è possibile utilizzare il parametro %Server%, come illustrato nel codice seguente:

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

Quindi, dalla riga di comando è possibile specificare i valori per il parametro:

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

Quando si crea o si aggiorna l'istanza, il valore Server01 sostituisce %Server% nell'ICF. Server01 sostituisce quindi tutte le occorrenze di %ApplicationServer% nell'ADF.

È inoltre possibile passare i parametri per l'ADF quando si utilizza SQL Server Management Studio per creare e aggiornare le istanze di Notification Services. Tuttavia, SQL Server Management Studio consente un solo livello di sostituzione di parametri. Ad esempio, il parametro A può fare riferimento al parametro B solo se B non fa a sua volta riferimento a un altro parametro.

Precedenza dei valori dei parametri

È possibile definire un valore per lo stesso parametro nella sezione ParameterDefaults, come variabile di ambiente, e quando si crea o si aggiorna l'istanza. Per questo motivo esiste la precedenza tra i valori dei parametri:

  • I valori dei parametri specificati quando si crea o si aggiorna l'istanza avranno la precedenza sui valori specificati nelle variabili di ambiente e nella sezione ParameterDefaults.
  • Le variabili di ambiente hanno la precedenza sui valori di ParameterDefaults.
  • I valori di ParameterDefaults hanno la priorità minima.

Vedere anche

Concetti

Utilizzo di parametri nel file di configurazione di un'istanza

Altre risorse

ParameterDefaults Element (ADF)
Parameter Element (ADF)
ParameterDefaults Element (ICF)
Utilità nscontrol
Definizione di applicazioni di Notification Services
Configurazione delle istanze di Notification Services

Guida in linea e informazioni

Assistenza su SQL Server 2005