Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Er is weinig moeite nodig om te profiteren van het MSMQ-transport in uw RPC-toepassing. Voor synchrone berichten hoeft u alleen het transport van de berichtenwachtrij (ncadg_mq) op te geven als protocolreeks. Het ncadg_mq-protocol ondersteunt alle standaard datagramfuncties, behalve het uitzenden van aanroepen. Houd er ook rekening mee dat het transport van berichtenwachtrijen momenteel geen dynamische eindpunten ondersteunt.
Door het kenmerk [bericht] toe te passen op externe proceduredeclaraties in het IDL-bestand, implementeert u automatisch asynchrone berichtenwachtrijen voor deze aanroepen. Dit maakt het mogelijk voor de client- en servertoepassingen om veel van de eigenschappen te beheren die zijn gekoppeld aan berichten en berichtenwachtrijen, waaronder:
- Kwaliteit van de dienstverlening
- Bevestiging van Ontvangst
- Dagboekschrijven
- Oproepprioriteit
- Persistentie van serverproceswachtrij
Kwaliteit van de service is de inspanning die het transport zal leveren om de aanroep naar het serverproces te leveren. Een snelle levering wordt in de wachtrij geplaatst in het geheugen, dus het is redelijk snel, maar de oproep gaat verloren als een computer of netwerkverbinding op het verkeerde moment uitvalt. Een herstelbare overdracht wordt opgeslagen in een schijfbestand totdat het wordt bezorgd, zodat de oproep niet verloren gaat, zelfs niet bij een computercrash. Dit biedt gegarandeerde levering, maar tegen een kosten in de prestaties, omdat elke aanroep naar de schijf wordt geschreven.
U kunt ook aangeven dat het MSMQ-transport moet wachten op bevestiging dat de aanroep de doelwachtrij (server) heeft bereikt voordat deze terugkeert. Als u deze optie kiest, wordt de client geblokkeerd totdat de server de aanroep bevestigt, anders keert het besturingselement onmiddellijk terug naar de client na het maken van de aanroep.
Door logboeken te gebruiken, kunnen aanroepen worden vastgelegd op schijf. Als logboeken zijn ingeschakeld, wordt elke aanroep op schijf geregistreerd terwijl deze wordt verzonden naar de volgende hop op weg naar het serverproces.
Oproepprioriteit kan worden gebruikt in combinatie met het kenmerk RPC [bericht] om aanroepen met een hogere prioriteit voorrang te geven op aanroepen met een lagere prioriteit, zelfs als de oproepen met een hoge prioriteit later binnenkomen. Oproepprioriteit werkt ook op een beperkte manier met synchrone RPC, maar synchrone RPC-aanroepen kunnen niet op dezelfde manier worden gestapeld als asynchrone aanroepen.
Het clientproces bepaalt alle bovenstaande eigenschappen door RpcBindingSetOption-aan te roepen. Zodra deze eigenschappen zijn ingesteld, blijven deze van kracht totdat ze worden gewijzigd in een andere aanroep naar RpcBindingSetOption-.
Het RPC-serverproces kan de levensduur van de ontvangstwachtrij beheren. De wachtrij wordt standaard verwijderd wanneer het serverproces wordt afgesloten. Het serverproces kan echter RpcServerUseProtseqEpEx gebruiken bij het instellen van het eindpunt om het transport te laten weten dat de wachtrij blijft bestaan en oproepaanvragen accepteert, zelfs wanneer het serverproces niet wordt uitgevoerd. In dit geval worden de aanroepen in de wachtrij geplaatst en later uitgevoerd wanneer het serverproces weer online komt.
Notitie
Als u asynchrone [bericht] aanroepen gebruikt in een interface, moet u de interface registreren door RpcServerRegisterIf of RpcServerRegisterIfEx aan te roepen voordat u RpcServerUseProtseqEpEx-(ncadg_mq) aanroept. Zodra u de protocolvolgorde hebt ingeschakeld, worden alle aanroepen die al in de wachtrij staan voor de server, uit de wachtrij gelezen. Als de bijbehorende RPC-interface niet is geregistreerd, mislukken de aanroepen. Deze situatie kan zich voordoen als u een permanent eindpunt hebt ingesteld voor uw externe procedure-aanroepen, de server is afgesloten en clients oproepen blijven verzenden naar de server. Deze aanroepen worden gestapeld in de wachtrij en wachten tot ze worden gelezen zodra de server weer online is.
Zie RpcBindingSetOption, RpcServerUseProtseqEpExen [bericht], ncadg_mqvoor meer informatie.