Архитектура компонентов очереди
Служба компонентов COM+ улучшает модель программирования COM путем предоставления среды, в которой компонент можно вызывать синхронно (в режиме реального времени) или асинхронно (в очереди). Компонент не должен знать, используется ли он в режиме реального времени или в контексте очереди.
Приложения обмена сообщениями похожи на транзакции электронной почты между программами. Запрашивающий отправляет сообщение серверу; когда сервер возвращается к нему, обрабатывается сообщение. Как и электронная почта, система обмена сообщениями должна обрабатывать сведения о сети и гарантировать, что сообщение перемещается с клиента на сервер. В платформе очередных компонентов очередь сообщений отвечает за это.
Служба компонентов COM+ в очереди состоит из следующих частей:
- Запись (для клиента или стороны отправки)
- Прослушиватель (для сервера или стороны получения)
- Проигрыватель (для сервера или стороны получения)
Записыватель
В обычном сценарии с компонентами очереди клиент вызывает компонент в очереди. Вызов выполняется в средство записи компонентов очереди, который упаковывает его как часть сообщения на сервер и помещает его в очередь. Средство записи маршалирует контекст безопасности клиента в сообщение и записывает все вызовы метода клиента. В качестве прокси-сервера средство записи выбирает интерфейсы из интерфейсов очереди в каталоге COM+.
Представление записи отправляется в очередь сообщений в качестве сообщения, отправляемого на сервер. Если компонент очереди имеет параметр атрибута транзакции "Обязательный" или "Поддерживаемый", очередь сообщений принимает доставку сообщения только в том случае, если клиентская транзакция фиксирует и очередь очереди сообщений является транзакционной, которая обычно устанавливается по умолчанию. Если параметр атрибута транзакции требует нового, очередь сообщений может принимать сообщение, даже если клиентская транзакция прерывается. Дополнительные сведения о транзакциях см . в разделе "Очередь сообщений транзакций".
Прослушиватель
Прослушиватель компонентов очереди извлекает сообщение из очереди и передает его в проигрыватель компонентов очереди.
Проигрыватель
Проигрыватель немаршалирует контекст безопасности клиента на стороне сервера, а затем вызывает компонент сервера и выполняет те же вызовы метода. Вызовы метода не будут воспроизводиться проигрывателем до тех пор, пока клиентский компонент не завершит работу, а транзакция, записывающая фиксации вызовов метода.
Перемещение сообщений
Перемещение сообщений в очереди — это программа, которая перемещает все сообщения очереди сообщений из одной очереди в другую, чтобы их можно было получить. Программа перемещения сообщений — это объект автоматизации, который можно вызвать с помощью VBScript; Дополнительные сведения см. в разделе "Обработка ошибок".