Uso di MSMQ come trasporto RPC

Il sottosistema RPC supporta l'uso di MSMQ come trasporto in modalità sincrone e asincrone.

La modalità sincrona usa chiamate di routine remote convenzionali. Queste chiamate usano endpoint noti e il trasporto della coda di messaggi, ncadg_mq, come protocollo di trasporto. In modalità sincrona, le procedure remote possono avere parametri [ in] e [ out] e possono usare i servizi di sicurezza RPC standard. Il sottosistema RPC crea una coda di risposte per le chiamate remote contenenti parametri [out]. La modalità sincrona è utile per le applicazioni in cui il client deve ricevere dati dal server. La limitazione principale di questa modalità è che, come per le chiamate di routine remota convenzionali, sia il client che il server devono essere in esecuzione e rimanere in esecuzione per la durata della chiamata.

La modalità asincrona consente alle applicazioni client di effettuare chiamate al server e di restituire immediatamente, indipendentemente dallo stato dell'applicazione server o del computer server. Rende inoltre disponibile un subset di funzionalità MSMQ per la gestione delle code di messaggi e del flusso di informazioni. La funzione RpcBindingSetOption consente di controllare la qualità del servizio, la priorità delle chiamate, l'inserimento nel journal, la sicurezza e la durata della coda dei processi del server. La funzione RpcServerUseProtseqEpEx consente di specificare gli attributi della coda di processi del server, ad esempio la persistenza della coda, l'autenticazione e la crittografia.

Si implementa MSMQ asincrono come si farebbe con MSMQ sincrono. È necessario usare endpoint noti e definire il protocollo di trasporto da ncadg_mq. Nel file IDL applicare l'attributo message alle funzioni che usano accodamento messaggi asincrono. Si noti che le funzioni di messaggio possono avere solo parametri [in].