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


Архитектура компонентов очереди

Служба компонентов COM+ улучшает модель программирования COM путем предоставления среды, в которой компонент можно вызывать синхронно (в режиме реального времени) или асинхронно (в очереди). Компонент не должен знать, используется ли он в режиме реального времени или в контексте очереди.

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

Служба компонентов COM+ в очереди состоит из следующих частей:

  • Запись (для клиента или стороны отправки)
  • Прослушиватель (для сервера или стороны получения)
  • Проигрыватель (для сервера или стороны получения)

Diagram that shows the path from the client to the server: client, recorder, queue, listener, player, server.

Записыватель

В обычном сценарии с компонентами очереди клиент вызывает компонент в очереди. Вызов выполняется в средство записи компонентов очереди, который упаковывает его как часть сообщения на сервер и помещает его в очередь. Средство записи маршалирует контекст безопасности клиента в сообщение и записывает все вызовы метода клиента. В качестве прокси-сервера средство записи выбирает интерфейсы из интерфейсов очереди в каталоге COM+.

Представление записи отправляется в очередь сообщений в качестве сообщения, отправляемого на сервер. Если компонент очереди имеет параметр атрибута транзакции "Обязательный" или "Поддерживаемый", очередь сообщений принимает доставку сообщения только в том случае, если клиентская транзакция фиксирует и очередь очереди сообщений является транзакционной, которая обычно устанавливается по умолчанию. Если параметр атрибута транзакции требует нового, очередь сообщений может принимать сообщение, даже если клиентская транзакция прерывается. Дополнительные сведения о транзакциях см . в разделе "Очередь сообщений транзакций".

Прослушиватель

Прослушиватель компонентов очереди извлекает сообщение из очереди и передает его в проигрыватель компонентов очереди.

Проигрыватель

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

Перемещение сообщений

Перемещение сообщений в очереди — это программа, которая перемещает все сообщения очереди сообщений из одной очереди в другую, чтобы их можно было получить. Программа перемещения сообщений — это объект автоматизации, который можно вызвать с помощью VBScript; Дополнительные сведения см. в разделе "Обработка ошибок".