Поделиться через


Использование идентификатора очереди

Моникер очереди используется для программной активации компонента очереди. Моникер очереди требует, чтобы он получил идентификатор класса (CLSID) объекта, который будет вызываться из нового моникера, находящегося непосредственно справа от объекта. Когда имеет префикс слева, новый моникер передает CLSID моникеру, который находится слева от него.

Средство администрирования служб компонентов

Не применяется.

Visual Basic

Параметр отображаемого имени GetObject — это "queue:/new:", за которым следует идентификатор программы или 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:", за которым следует идентификатор программы или 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);

В следующей таблице перечислены параметры моникера очереди, влияющие на целевую очередь.

Параметр Описание
ИмяКомпьютера
Указывает часть имени компьютера в имени пути очереди сообщений. Имя пути очереди сообщений отформатировано как Имя компьютера<em>Имя очереди. Если оно не указано, используется имя компьютера, связанное с настроенным приложением.
Имя очереди
Указывает имя очереди сообщений. Имя пути очереди сообщений отформатировано как Имя компьютера<em>Имя очереди. Если это не указано, используется имя очереди, связанное с настроенным приложением.
Чтобы получить очередь без транзакций, сначала можно указать имя очереди, а затем создать приложение COM+ с тем же именем.
PathName
Указывает полное имя пути очереди сообщений. Если не указано, используется имя пути очереди сообщений, связанного с настроенным приложением. Чтобы переопределить имя назначения, путь можно указать в следующей форме для установки рабочей группы очереди сообщений:
Очередь:PathName=Имя_компьютера\PRIVATE$\AppName/new:Myproject.CMyClass
Примечание. В языках программирования C и Microsoft Visual C++ требуется использовать две обратные косые черты для представления одной обратной косой черты в строковых литералах, например, chicago\payroll.
FormatName
Когда вы помечаете приложение COM+ как размещённое в очереди, COM+ создает очередь сообщений, имя которой совпадает с именем приложения. Имя формата очереди сообщений этой очереди находится в каталоге COM+, связанном с приложением COM+. Для переопределения имени назначения в установке рабочей группы для очереди сообщений можно задать имя формата в следующей форме:
Очередь:FormatName=DIRECT=OS:Имя_компьютера\PRIVATE$\AppName/new:ProgId
В конфигурации Active Directory "PRIVATE$" не указывается в качестве части имени очереди.

Заметка

Необязательные параметры имени очереди обрабатываются слева направо. Укажите каждое ключевое слово только один раз. Указание параметра PathName заменяет параметры ComputerName и QueueName. Определённый параметр FormatName удаляет предыдущее знание параметров ComputerName, QueueNameи PathName.

Связывание прослушивателя компонентов очереди с конкретной приватной очередью

Прослушиватель компонентов COM+ получает только из очередей, которые связаны с приложением COM+, помеченным как имеющее очередное обслуживание. Когда вы отмечаете приложение COM+ как находящееся в очереди, COM+ создает очередь сообщений, имя которой совпадает с именем приложения. Имя формата очереди сообщений этой очереди находится в каталоге COM+, связанном с приложением COM+. Когда приложение COM+ запускается и помечено для прослушивания, в процессе приложения COM+ запускается прослушиватель и открывается очередь. В следующей таблице перечислены параметры идентификатора очереди, влияющие на сообщение очереди.

Параметр Описание
AppSpecific
Указывает целое число без знака, например AppSpecific=12345.
УровеньАутентификации
Указывает уровень проверки подлинности сообщения. Прошедшее проверку подлинности сообщение имеет цифровую подпись и требует сертификата для пользователя, отправляющего сообщение. Допустимые значения:
  • MQMSG_AUTH_LEVEL_NONE,0
  • MQMSG_AUTH_LEVEL_ALWAYS,1
доставки
Задает параметр доставки сообщений. Это значение игнорируется для транзакционных очередей. Допустимые значения:
  • MQMSG_DELIVERY_EXPRESS,0
  • MQMSG_DELIVERY_RECOVERABLE,1
Алгоритм шифрования
Указывает алгоритм шифрования, используемый очередью сообщений для шифрования и расшифровки сообщения. Допустимые значения:
  • CALG_RC2, CALG_RC4
  • Любое целочисленное значение, допустимое для очереди сообщений для EncryptAlgorithm.
Алгоритм хеширования
Указывает криптографическую хэш-функцию. Допустимые значения:
  • 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
Указывает максимальное время (в секундах), чтобы сообщение достигло очереди.
Допустимые значения:
  • БЕСКОНЕЧНЫЙ
  • Долго живущий
  • Количество секунд
MaxTimeToReceive
Указывает максимальное время (в секундах) для получения сообщения целевым приложением. Допустимые значения:
  • БЕСКОНЕЧНЫЙ
  • ДОЛГОВЕЧНЫЙ
  • Количество секунд
Приоритет
Задает уровень приоритета сообщения в допустимых значениях очереди сообщений.
Допустимые значения:
  • 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, ТЕЛО,
  • MQMSG_PRIV_LEVEL_BODY_BASE, BODY_BASE, 1
  • MQMSG_PRIV_LEVEL_BODY_ENHANCED, BODY_ENHANCED, 3
трассировки
Задает параметры трассировки, используемые в трассировке маршрутизации Message Queuing.
Допустимые значения:
  • MQMSG_TRACE_NONE,0
  • MQMSG_SEND_ROUTE_TO_REPORT_QUEUE,1

Полный набор функций COM+ Administrative SDK доступен через использование COM-объектов. Это позволяет любой программе запускать и останавливать приложения COM+ по мере необходимости.

Заметка

При запуске приложения COM+ работает именно приложение, а не его отдельные компоненты. Если приложение вызывает компонент, отличный от очереди, запускается приложение COM+, содержащее компонент. Если установлен флажок прослушивателя, прослушиватель запускается и начинает обработку сообщений для компонентов в очереди. Хотя служба очередных компонентов может быть запущена таким способом, если вы упаковываете очередные и неочередные компоненты в одно приложение COM+, убедитесь, что вы действительно хотите, чтобы очередные компоненты запускались, если выполняется неочередной компонент. Если это не так, упаковайте компоненты очереди в приложение COM+, которое отделяется от других компонентов.

Активизация очередей компонентов