다음을 통해 공유


인스턴스 구성 파일에서 매개 변수 사용

XML ICF(인스턴스 구성 파일)를 사용하여 Notification Services 인스턴스를 구성할 경우 매개 변수를 사용하여 ICF를 보다 안전하고 이식 및 업데이트하기 편리하게 만들 수 있습니다. 또한 ICF의 값을 ADF(응용 프로그램 정의 파일)로 전달할 수도 있습니다.

프로그래밍 방식으로 Notification Services 인스턴스를 구성할 경우에는 매개 변수 개체가 없습니다. 단일 위치에서 인스턴스 정의 및 응용 프로그램 정의에 대한 값을 업데이트하려는 경우 변수를 사용할 수 있습니다.

Notification Services 매개 변수

Notification Services에서는 요소 값 대신 매개 변수를 사용할 수 있습니다. 매개 변수를 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • 중요한 데이터를 ICF 및 ADF 외부에 저장한 다음 인스턴스를 만들거나 업데이트할 때만 해당 값을 제공할 수 있습니다.
  • 매개 변수 값을 한 번 정의한 후 여러 요소에서 사용할 수 있습니다.
  • 변경될 가능성이 있는 값을 한 위치에 두어 인스턴스 및 응용 프로그램을 보다 쉽게 업데이트할 수 있습니다.

ICF 또는 ADF 내에서 바꿀 매개 변수는 해당 이름이 퍼센트 문자로 묶여 표시됩니다(예: %MyParam%). 매개 변수 값을 정의할 때는 매개 변수 이름(MyParam)과 MyServer와 같은 매개 변수 값을 지정합니다.

인스턴스를 만들거나 업데이트할 때 Notification Services에서는 매개 변수(%MyParam%)를 사용자가 지정한 값(MyServer)으로 바꿉니다.

ICF의 경우 nscontrol 명령줄 또는 인스턴스를 만들거나 업데이트하는 데 사용되는 SQL Server Management Studio 대화 상자에서 ParameterDefaults 요소에 매개 변수 값을 제공할 수 있습니다. 그러나 SQL Server Management Studio에서는 한 수준의 매개 변수 대체만 허용합니다. 예를 들어 매개 변수 A는 매개 변수 B가 자체적으로 다른 매개 변수를 참조하지 않을 때만 매개 변수 B를 참조할 수 있습니다.

ICF에서 매개 변수 기본값 정의

ICF의 ParameterDefaults 요소에 ICF 매개 변수 값을 제공할 수 있습니다. Notification Services는 이 요소에서 매개 변수 이름 및 값을 읽은 후 해당 매개 변수를 지정된 값으로 바꿉니다.

예를 들어 여러 요소에 공통되는 파일 경로에 대해 매개 변수를 사용할 수 있습니다. 이 매개 변수의 이름으로 BaseDirPath를 지정하고 ICF에서 다음 요소를 만들 수 있습니다.

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

그런 후 다음과 같이 %BaseDirPath% 값을 제공할 수 있습니다.

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

사용자가 인스턴스를 만들거나 업데이트하면 Notification Services는 ICF에 나오는 모든 %BaseDirPath%를 문자열 "C:\NS"로 바꿉니다. 이 작업은 ICF에서 다음 요소를 사용하는 것과 논리적으로 동일합니다.

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

인스턴스를 만들고 업데이트할 때 매개 변수 값 정의

매개 변수 값을 ICF 외부에 저장하려면 인스턴스를 만들거나 업데이트할 때 또는 환경 변수에 해당 값을 제공할 수 있습니다. 예를 들어 nscontrol 명령 프롬프트 유틸리티를 사용하여 인스턴스를 만들 경우 명령줄에 사용자 이름 및 암호 값을 제공할 수 있습니다.

이 예에서 배달 채널에는 사용자 이름과 암호가 필요합니다. 이러한 값을 ICF에 저장하지 않으려고 하므로 다음과 같이 매개 변수를 사용합니다.

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

그런 후 명령줄에 매개 변수 값을 제공할 수 있습니다.

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

또한 SQL Server Management Studio를 사용하여 인스턴스를 만들거나 업데이트할 때 매개 변수 값을 제공할 수도 있습니다.

매개 변수 값 선행 규칙

ParameterDefaults 섹션에서, 환경 변수로서, 그리고 인스턴스를 만들거나 업데이트할 때 동일한 매개 변수에 대한 값을 정의할 수 있습니다. 이러한 이유로 매개 변수 값 사이에 다음과 같은 선행 규칙이 적용됩니다.

  • 인스턴스를 만들거나 업데이트할 때 제공한 매개 변수 값은 환경 변수 및 ParameterDefaults 섹션에 제공된 값보다 우선적으로 적용됩니다.
  • 환경 변수는 ParameterDefaults 값보다 우선적으로 적용됩니다.
  • ParameterDefaults 값은 우선 순위가 가장 낮습니다.

ADF에 매개 변수 전달

ICF 내에서 Application 요소를 사용하여 인스턴스에서 호스팅하는 응용 프로그램을 설명합니다. Application 요소에는 Parameters 자식 요소가 있습니다. 이 자식 요소를 사용하여 ADF에 대한 매개 변수 값을 정의할 수 있습니다.

예를 들어 ADF에서 호스팅된 이벤트 공급자, 생성자 및 배포자가 실행되는 서버를 정의해야 합니다. 이 작업은 ADF의 SystemName 요소를 통해 수행합니다. 이러한 모든 구성 요소를 한 서버에서 실행하고 인스턴스 생성 시 해당 서버 이름을 정의하려면 다음과 같이 ADF에서 매개 변수를 사용할 수 있습니다.

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

그런 후 ICF의 Application 요소에 이 매개 변수 값을 정의할 수 있습니다.

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

인스턴스를 만들 때 Notification Services는 ADF에 나오는 모든 %ApplicationServer%를 값 Server01로 바꿉니다.

또한 ADF의 ParameterDefaults 요소에 ADF에 대한 매개 변수 값을 제공할 수 있습니다.

이러한 대체 방법을 적절히 조합해서 사용할 수 있습니다. 예를 들어 %AppServer%와 같은 매개 변수를 사용해야 할 경우 ApplicationServer 값에 대해 %AppServer% 값을 명령줄에 제공할 수 있습니다.

참고 항목

개념

인스턴스 이름 지정
데이터베이스 시스템 이름 지정
인스턴스 데이터베이스 정의
인스턴스와 응용 프로그램 연결
사용자 지정 배달 프로토콜 정의
배달 채널 정의
인수 암호화 구성
인스턴스 버전 및 기록 지정
ADF(응용 프로그램 정의 파일)에서 매개 변수 사용

관련 자료

Notification Services 인스턴스 구성
ParameterDefaults Element (ICF)
Parameters Element (ICF)
ParameterDefaults Element (ADF)
nscontrol 유틸리티
Notification Services 응용 프로그램 정의

도움말 및 정보

SQL Server 2005 지원 받기