다음을 통해 공유


Queue Moniker 사용

큐 모니커는 큐에 대기 중인 구성 요소를 프로그래밍 방식으로 활성화하는 데 사용됩니다. 큐 모니커를 사용하려면 새 모니커에서 바로 오른쪽에 호출할 개체의 CLSID(클래스 ID)를 받아야 합니다. 왼쪽 접두사를 사용하면 새 모니커가 CLSID를 왼쪽의 모니커에 전달합니다.

구성 요소 서비스 관리 도구

적용 되지 않습니다.

Visual Basic

GetObject 표시 이름 매개 변수는 인스턴스화할 서버 개체의 "queue:/new:"이며, 그 다음에는 중괄호를 사용하거나 사용하지 않는 프로그램 ID 또는 문자열 형식 GUID가 옵니다. 다음 예제에서는 큐 모니커를 사용하여 구성 요소의 세 가지 유효한 활성화를 보여 줍니다.

  1. Set objMyQC = GetObject ("queue:/new:QCShip.Ship")
    
  2. Set objMyQC = GetObject ("queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}")
    
  3. Set objMyQC = GetObject ("queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE")
    

C/C++

CoGetObject 표시 이름 매개 변수는 인스턴스화할 서버 개체의 "queue:/new:"이고, 그 다음에는 중괄호를 사용하거나 사용하지 않는 프로그램 ID 또는 문자열 형식 GUID가 옵니다. 다음 예제에서는 큐 모니커를 사용하여 구성 요소의 세 가지 유효한 활성화를 보여 줍니다.

  1. hr = CoGetObject (
      L"queue:/new:QCShip.Ship",
      NULL, IID_IShip, (void**)&pShip);
    
  2. hr = CoGetObject (
      L"queue:/new:{812DF40E-BD88-11D0-8A6D-00C04FC340EE}", 
      NULL, IID_IShip, (void**)&pShip);
    
  3. hr = CoGetObject (
      L"queue:/new:812DF40E-BD88-11D0-8A6D-00C04FC340EE",
      NULL, IID_IShip, (void**)&pShip);
    

설명

큐 모니커는 메시지 큐에 전송된 메시지의 속성을 변경하는 선택적 매개 변수를 허용합니다. 예를 들어 메시지 큐 메시지를 우선 순위 6으로 보내려면 대기 중인 구성 요소가 다음과 같이 활성화됩니다.

hr = CoGetObject (
  L"queue:Priority=6,ComputerName=MyComp/new:QCShip.Ship",
  NULL, IID_IShip, (void**)&pShip);

다음 표에서는 대상 큐에 영향을 주는 큐 모니커 매개 변수를 나열합니다.

매개 변수 Description
컴퓨터 이름
메시지 큐 경로 이름의 컴퓨터 이름 부분을 지정합니다. 메시지 큐 큐 경로 이름은 ComputerNameem>QueueName<으로 형식이 지정됩니다. 지정하지 않으면 구성된 애플리케이션과 연결된 컴퓨터 이름이 사용됩니다.
QueueName
메시지 큐 이름을 지정합니다. 메시지 큐 큐 경로 이름은 ComputerNameem>QueueName<으로 형식이 지정됩니다. 지정하지 않으면 구성된 애플리케이션과 연결된 큐 이름이 사용됩니다.
비 트랜잭션 큐를 얻으려면 큐 이름을 먼저 지정한 다음 동일한 이름의 COM+ 애플리케이션을 만들 수 있습니다.
PathName
전체 메시지 큐 경로 이름을 지정합니다. 지정하지 않으면 구성된 애플리케이션과 연결된 메시지 큐 큐 경로 이름이 사용됩니다. 대상 이름을 재정의하려면 메시지 큐 작업 그룹 설치에 대해 다음 형식으로 경로를 지정할 수 있습니다.
Queue:PathName=ComputerName\PRIVATE$\AppName/new:Myproject.CMyClass
참고: C 및 Microsoft Visual C++ 프로그래밍 언어 모두 문자열 리터럴 내에서 하나의 백슬래시를 나타내기 위해 두 개의 백슬래시가 필요합니다(예: chicago\payroll).
FormatName
COM+ 애플리케이션을 큐에 대기 중으로 표시하면 COM+에서 이름이 애플리케이션과 동일한 메시지 큐 큐를 만듭니다. 해당 큐의 메시지 큐 형식 이름은 COM+ 애플리케이션과 연결된 COM+ 카탈로그에 있습니다. 대상 이름을 재정의하려면 메시지 큐 작업 그룹 설치에 대해 다음 형식으로 형식 이름을 지정할 수 있습니다.
Queue:FormatName=DIRECT=OS:ComputerName\PRIVATE$\AppName/new:ProgId
Active Directory 구성에서 "PRIVATE$"은 큐 이름의 일부로 지정되지 않습니다.

참고

선택적 큐 모니커 매개 변수는 왼쪽에서 오른쪽으로 처리됩니다. 각 키워드(keyword) 한 번만 지정합니다. PathName 매개 변수를 지정하면 ComputerName 및 QueueName 매개 변수모두 바뀝니다. 특정 FormatName 매개 변수는 ComputerName, QueueNamePathName 매개 변수에 대한 사전 지식을 삭제합니다.

대기 중인 구성 요소 수신기를 특정 프라이빗 큐와 연결

COM+ 큐에 대기된 구성 요소 수신기는 대기 중으로 표시된 COM+ 애플리케이션과 연결된 큐에서만 수신합니다. COM+ 애플리케이션을 큐에 대기 중으로 표시하면 COM+에서 이름이 애플리케이션과 동일한 메시지 큐 큐를 만듭니다. 해당 큐의 메시지 큐 형식 이름은 COM+ 애플리케이션과 연결된 COM+ 카탈로그에 있습니다. COM+ 애플리케이션이 시작되고 수신 대기로 표시되면 COM+ 애플리케이션 프로세스의 수신기가 시작되고 큐가 열립니다. 다음 표에서는 메시지 큐 메시지에 영향을 주는 큐 모니커 매개 변수를 나열합니다.

매개 변수 Description
AppSpecific
부호 없는 정수(예: AppSpecific=12345)를 지정합니다.
AuthLevel
메시지 인증 수준을 지정합니다. 인증된 메시지는 디지털 서명되어 있으며 메시지를 보내는 사용자에 대한 인증서가 필요합니다. 허용되는 값은 다음과 같습니다.
  • MQMSG_AUTH_LEVEL_NONE,0
  • MQMSG_AUTH_LEVEL_ALWAYS,1
배달
메시지 배달 옵션을 지정합니다. 이 값은 트랜잭션 큐에 대해 무시됩니다. 허용되는 값은 다음과 같습니다.
  • MQMSG_DELIVERY_EXPRESS,0
  • MQMSG_DELIVERY_RECOVERABLE,1
EncryptAlgorithm
메시지 큐에서 메시지를 암호화하고 암호를 해독하는 데 사용할 암호화 알고리즘을 지정합니다. 허용되는 값은 다음과 같습니다.
  • CALG_RC2, CALG_RC4
  • EncryptAlgorithm에 대한 메시지 큐에 허용되는 정수 값입니다.
HashAlgorithm
암호화 해시 함수를 지정합니다. 허용되는 값은 다음과 같습니다.
  • CALG_MD2, CALG_MD4, CALG_MD5, CALG_SHA, CALG_SHA1, CALG_MAC, CALG_SSL3_SHAMD5, CALG_HMAC, CALG_TLS1PRF
  • HashAlgorithm에 대한 메시지 큐에 허용되는 정수 값입니다.
저널
메시지 큐 메시지 저널 옵션을 지정합니다. 허용되는 값은 다음과 같습니다.
  • MQMSG_JOURNAL_NONE,0
  • MQMSG_DEADLETTER,1
  • MQMSG_JOURNAL,2
레이블
최대 MQ_MAX_MSG_LABEL_LEN 문자까지 메시지 레이블 문자열을 지정합니다.
MaxTimeToReachQueue
메시지가 큐에 도달하는 최대 시간(초)을 지정합니다.
허용되는 값은 다음과 같습니다.
  • INFINITE
  • LONG_LIVED
  • 시간(초)
MaxTimeToReceive
대상 애플리케이션에서 메시지를 받을 최대 시간(초)을 지정합니다. 허용되는 값은 다음과 같습니다.
  • INFINITE
  • LONG_LIVED
  • 시간(초)
우선 순위
허용되는 메시지 큐 값 내에서 메시지 우선 순위 수준을 지정합니다.
허용되는 값은 다음과 같습니다.
  • MQ_MIN_PRIORITY,0
  • MQ_MAX_PRIORITY,7
  • MQ_DEFAULT_PRIORITY,3
  • 0에서 7 사이의 숫자
PrivLevel
메시지를 암호화하는 데 사용되는 개인 정보 수준을 지정합니다.
허용되는 값은 다음과 같습니다.
  • MQMSG_PRIV_LEVEL_NONE, NONE, 0
  • MQMSG_PRIV_LEVEL_BODY, BODY,
  • MQMSG_PRIV_LEVEL_BODY_BASE, BODY_BASE, 1
  • MQMSG_PRIV_LEVEL_BODY_ENHANCED, BODY_ENHANCED, 3
추적
메시지 큐 라우팅 추적에 사용되는 추적 옵션을 지정합니다.
허용되는 값은 다음과 같습니다.
  • MQMSG_TRACE_NONE,0
  • MQMSG_SEND_ROUTE_TO_REPORT_QUEUE,1

COM+ 관리 SDK 함수의 전체 집합은 COM 개체를 사용하여 사용할 수 있습니다. 이렇게 하면 필요에 따라 모든 프로그램이 COM+ 애플리케이션을 시작하고 중지할 수 있습니다.

참고

COM+ 애플리케이션이 시작되면 애플리케이션 내의 개별 구성 요소가 아니라 실행 중인 애플리케이션입니다. 애플리케이션이 큐에 대기되지 않은 구성 요소를 호출하면 구성 요소가 포함된 COM+ 애플리케이션이 시작됩니다. 수신기 검사 상자를 사용하도록 설정하면 수신기도 큐에 대기 중인 구성 요소에 대한 메시지 처리를 시작하고 시작합니다. 큐에 대기 중인 구성 요소 서비스를 이러한 방식으로 시작할 수 있지만 큐에 대기 중인 구성 요소와 큐에 대기되지 않은 구성 요소를 단일 COM+ 애플리케이션으로 패키지하는 경우 큐에 대기되지 않은 구성 요소가 실행되는 경우 큐에 대기 중인 구성 요소가 실제로 시작되도록 해야 합니다. 그렇지 않은 경우 대기 중인 구성 요소를 다른 구성 요소와 분리된 COM+ 애플리케이션에 패키지합니다.

구성 요소 큐 활성화