Compartilhar via


Usando o MSMQ como um transporte RPC

O subsistema RPC dá suporte ao uso do MSMQ como transporte em modos síncronos e assíncronos.

O modo síncrono usa chamadas de procedimento remoto convencionais. Essas chamadas usam pontos de extremidade conhecidos e o transporte de fila de mensagens, ncadg_mq, como o protocolo de transporte. No modo síncrono, seus procedimentos remotos podem ter parâmetros [ in] e [ out] e podem usar os serviços de segurança RPC padrão. O subsistema RPC cria uma fila de resposta para chamadas remotas que contêm parâmetros [out ]. O modo síncrono é útil para aplicativos em que o cliente precisa receber dados do servidor. A limitação main desse modo é que, assim como nas chamadas convencionais de procedimento remoto, o cliente e o servidor devem estar em execução e permanecer em execução durante a chamada.

O modo assíncrono permite que os aplicativos cliente façam chamadas para o servidor e retornem imediatamente, independentemente do estado do aplicativo de servidor ou do computador servidor. Ele também disponibiliza um subconjunto de recursos do MSMQ para gerenciar filas de mensagens e fluxo de informações. A função RpcBindingSetOption permite controlar a qualidade do serviço, a prioridade de chamada, o registro em diário, a segurança e o tempo de vida da fila de processo do servidor. A função RpcServerUseProtseqEpEx permite especificar atributos da fila de processo do servidor, como persistência, autenticação e criptografia da fila.

Você implementa o MSMQ assíncrono como faria com o MSMQ síncrono. Você deve usar pontos de extremidade conhecidos e definir o protocolo de transporte para ser ncadg_mq. No arquivo IDL, aplique o atributo de mensagem às funções que usam enfileiramento de mensagens assíncronas. Observe que as funções de mensagem só podem ter parâmetros [in].