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


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

Подсистема RPC поддерживает использование MSMQ в качестве транспорта в синхронных и асинхронных режимах.

Синхронный режим использует обычные вызовы удаленных процедур. Эти вызовы используют известные конечные точки и транспорт очереди сообщений ncadg_mqв качестве протокола передачи. В синхронном режиме удаленные процедуры могут иметь [ в] и [ вне] параметры и могут использовать стандартные службы безопасности RPC. Подсистема RPC создает очередь ответа для удаленных вызовов, содержащих параметры [out]. Синхронный режим полезен для приложений, где клиент должен получать данные с сервера. Основное ограничение этого режима заключается в том, что, как и при обычных вызовах удаленных процедур, клиент и сервер должны работать и оставаться запущенными в течение длительности вызова.

Асинхронный режим позволяет клиентским приложениям выполнять вызовы к серверу и немедленно возвращать их независимо от состояния серверного приложения или компьютера сервера. Он также делает подмножество функций MSMQ доступными для управления очередями сообщений и потока информации. Функция RpcBindingSetOption позволяет контролировать качество обслуживания, приоритет вызова, журналирование, безопасность и время существования очереди процессов сервера. Функция RpcServerUseProtseqEpEx позволяет указать атрибуты очереди процесса сервера, такие как сохраняемость очередей, проверка подлинности и шифрование.

Вы реализуете асинхронный MSMQ так же, как и синхронный MSMQ. Необходимо использовать известные конечные точки и определить транспортный протокол для ncadg_mq. В файле IDL примените атрибут сообщения к функциям, используюющим асинхронную очередь сообщений. Обратите внимание, что функции сообщений могут иметь только параметры [in].