다음을 통해 공유


ADF(응용 프로그램 정의 파일)에서 매개 변수 사용

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

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

Notification Services 매개 변수

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

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

ADF 내에서 바꿀 매개 변수는 환경 변수와 비슷하게 해당 이름이 퍼센트 문자로 묶어 표시됩니다(예: %MyParam%). 매개 변수 값을 정의할 때는 매개 변수 이름(MyParam)과 MyServer와 같은 매개 변수 값을 지정합니다. 환경 변수와 마찬가지로 매개 변수 이름은 대/소문자를 구분하지 않습니다.

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

ADF의 경우 ADF의 ParameterDefaults 요소를 제공할 수 있으며 ICF의 Application 섹션에 매개 변수 이름 및 값을 정의하여 ICF에서 응용 프로그램으로 값을 전달할 수 있습니다.

ms166503.note(ko-kr,SQL.90).gif중요:
ADF 또는 ICF에서 매개 변수를 사용하지만 인스턴스를 만들거나 업데이트할 때 매개 변수 값을 제공하지 않으면 생성 또는 업데이트 프로세스가 실패합니다.

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

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

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

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

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

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

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

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

ICF에서 매개 변수 전달

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

ADF에 이러한 값을 전달하려면 ICF의 Application 섹션 내에 매개 변수를 사용해야 합니다. 위의 예에서 ICF에 응용 프로그램 서버를 정의하지 않고 다음 코드와 같이 %Server% 매개 변수를 사용할 수 있습니다.

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

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

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

인스턴스를 만들거나 업데이트할 때 ICF에서 %Server% 대신 값 Server01이 사용됩니다. 그런 후 ADF에 나오는 모든 %ApplicationServer% 대신 Server01이 사용됩니다.

또한 SQL Server Management Studio를 사용하여 Notification Services 인스턴스를 생성 및 업데이트할 때 ADF에 매개 변수를 전달할 수도 있습니다. 그러나 SQL Server Management Studio에서는 한 수준의 매개 변수 대체만 허용합니다. 예를 들어 매개 변수 A는 매개 변수 B가 자체적으로 다른 매개 변수를 참조하지 않을 때만 매개 변수 B를 참조할 수 있습니다.

매개 변수 값 선행 규칙

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

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

참고 항목

개념

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

관련 자료

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

도움말 및 정보

SQL Server 2005 지원 받기