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 procedura remota convenzionali. Queste chiamate usano endpoint noti e il trasporto tramite coda di messaggi, ncadg_mq, come protocollo di trasporto. In modalità sincrona, le procedure remote possono avere [ in] e [ out] parametri e possono usare i servizi di sicurezza RPC standard. Il sottosistema RPC crea una coda di risposte per le chiamate remote contenenti [out] parametri. 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 procedura 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 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, il journaling, la sicurezza e la durata della coda dei processi del server. La funzionerpcServerUseProtseqEpExconsente 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. Devi utilizzare endpoint ben noti e definire il protocollo di trasporto come ncadg_mq. Nel file IDL applicare l'attributo messaggio alle funzioni che usano accodamento messaggi asincrono. Si noti che le funzioni di messaggio possono avere solo parametri [in].