인스턴스 구성 파일에서 매개 변수 사용
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 응용 프로그램 정의