In de context van Message Queuing zijn wachtrijen tijdelijke opslaglocaties voor verschillende soorten berichten. Wachtrijen kunnen worden gemaakt door:
- Toepassingen
- Beheerders
- Message Queuing
Wachtrijen die worden gemaakt door toepassingen of beheerders, worden toepassingswachtrijen genoemd. Wachtrijen die door Message Queuing worden gemaakt, worden systeemwachtrijen genoemd.
Toepassingswachtrijen
Message Queuing voorziet in de volgende soorten toepassingswachtrijen:
Openbare en persoonlijke wachtrijen
Openbare wachtrijen
In een domeinomgeving bestaan openbare wachtrijen uit wachtrijen die worden gepubliceerd in AD DS (Active Directory Domain Services), en die daarom over een geheel forest worden gerepliceerd. Alleen de eigenschappen van deze wachtrijen worden gerepliceerd, niet de wachtrijen zelf of hun inhoud. Elke computer binnen uw forest kan mogelijk toegang krijgen tot informatie over openbare wachtrijen, mits de gebruiker voldoende machtigingen heeft om toegang te krijgen tot de desbetreffende wachtrijobjecten. In het algemeen kan elke gebruiker in het forest die toegang heeft tot AD DS en die de machtiging Bericht verzenden heeft voor een bepaalde openbare wachtrij, berichten naar die wachtrij verzenden. Deze machtiging wordt standaard verleend wanneer de wachtrij wordt gemaakt. Als u berichten uit een openbare wachtrij wilt lezen, moet u voor de desbetreffende wachtrij beschikken over de machtiging Bericht bekijken of Bericht ontvangen.
In een AD DS-omgeving kunt u garanderen dat een wachtrij wordt geregistreerd in Active Directory en dat er een back-up van de registratie wordt gemaakt door de wachtrij als openbaar te definiëren. Deze wachtrijen zijn permanent en beschikbaar voor andere toepassingen.
Persoonlijke wachtrijen
Persoonlijke wachtrijen zijn wachtrijen die niet worden gepubliceerd in AD DS. Dergelijke wachtrijen worden alleen weergegeven op de computer waarop deze zich bevinden. Het voordeel van persoonlijke wachtrijen is dat er geen Active Directory-overhead is, zodat:
- Ze sneller kunnen worden gemaakt.
- Er bij het openen geen wachttijd is.
- Er geen replicatieoverhead is.
In een werkgroepomgeving zijn alleen persoonlijke wachtrijen beschikbaar.
Een Message Queuing-toepassing heeft alleen het pad van een wachtrij op de lokale computer nodig om toegang te kunnen krijgen tot die wachtrij. Een Message Queuing-toepassing op een externe computer heeft een directe of persoonlijke indelingsnaam nodig om toegang tot een dergelijke wachtrij te kunnen krijgen. Om berichten uit de wachtrij te kunnen lezen, heeft de externe Message Queuing-toepassing de machtiging Bericht ontvangen nodig voor die wachtrij. Standaard is iedereen gemachtigd om berichten naar openbare en persoonlijke wachtrijen te verzenden.
Transactionele en niet-transactionele wachtrijen
Een transactionele wachtrij is een wachtrij die alleen transactieberichten bevat. Dit zijn berichten die bij een transactie worden verzonden. De vereisten voor het verzenden en ontvangen van berichten zijn gebaseerd op het gebruikte type wachtrij (transactioneel of niet-transactioneel) en de locatie van de wachtrij (lokaal of extern).
Berichten verzenden
Wanneer transacties worden gebruikt om berichten te verzenden, kunnen de berichten worden verzonden naar elke willekeurige transactionele wachtrij, onafhankelijk van de locatie van deze wachtrij. Transactionele wachtrijen kunnen echter alleen berichten accepteren die worden verzonden binnen de context van een transactie. Op dezelfde manier kunnen niet-transactionele wachtrijen alleen berichten verzenden die worden verzonden buiten de context van een transactie.
Berichten ontvangen
U kunt berichten ontvangen van lokale of externe wachtrijen.
Subwachtrijen
Met subwachtrijen kunnen toepassingen berichten groeperen. Subwachtrijen zijn nuttig bij de volgende scenario's:
- Verwerking van werkorders. Als een toepassing berichten verwerkt die items uit verschillende werkorders bevat, kunnen de subwachtrijen worden gebruikt om de orderregels per werkorder te groeperen, zodat ze efficiënter kunnen worden verwerkt.
- Verwerking van gevaarlijke berichten. Als een toepassing een bericht ontvangt dat niet direct kan worden verwerkt, kan dat bericht worden verplaatst naar een foutsubwachtrij, waar het bericht later kan worden verwerkt.
Subwachtrijen worden impliciet gemaakt wanneer ze worden geopend. Met andere woorden: wanneer een bericht wordt verplaatst naar een subwachtrij die nog niet bestaat, wordt de subwachtrij gemaakt. Subwachtrijen die leeg zijn, worden verwijderd en hebben geen open ingangen. Toepassingen kunnen berichten niet rechtstreeks naar subwachtrijen verzenden. Ze kunnen berichten alleen verplaatsen naar een subwachtrij. Ze kunnen berichten ontvangen van subwachtrijen en berichten verplaatsen tussen een hoofdwachtrij en een subwachtrij, of tussen subwachtrijen van dezelfde hoofdwachtrij. Ze kunnen berichten niet verplaatsen van de subwachtrij van een hoofdwachtrij naar de subwachtrij van een andere hoofdwachtrij.
In het volgende voorbeeld kunnen berichten heen en weer worden verplaatst tussen subwachtrij 1 (of subwachtrij 2) en de map Wachtrijberichten van wachtrij a. Berichten kunnen ook worden verplaatst tussen subwachtrij 1 en subwachtrij 2. Op dezelfde manier kunnen berichten heen en weer worden verplaatst tussen wachtrij z en de subwachtrijen daarvan, subwachtrij 3 en subwachtrij 4.
Berichten kunnen echter niet worden verplaatst tussen wachtrij a en subwachtrij 3 of subwachtrij 4, of tussen wachtrij z en subwachtrij 1 of subwachtrij 2. Berichten kunnen ook niet worden verplaatst tussen de subwachtrijen van wachtrij a (subwachtrij 1 of subwachtrij 2) en de subwachtrijen van wachtrij z (subwachtrij 3 of subwachtrij 4).
Subwachtrijen hebben geen eigen eigenschappen of status. Ze delen de eigenschappen van de hoofdwachtrij. Een subwachtrij heeft bijvoorbeeld geen eigen:
- Quota
- Toegangsbeheerlijst (ACL)
- Transactioneel type
Subwachtrijen delen de quota van de hoofdwachtrij, en berichten in de subwachtrij worden ingepast in die quota.
Subwachtrijen kunnen niet worden gemaakt onder logboek- of andere systeemwachtrijen, of onder andere subwachtrijen.
Beheerwachtrijen
Beheerwachtrijen worden gegenereerd door toepassingen. Hierin worden door het systeem gegenereerde negatieve en positieve bevestigingsberichten opgeslagen die worden gemaakt door Message Queuing of door connectortoepassingen. Deze bevestigingsberichten worden via programmacode door de verzendende toepassing opgegeven in het oorspronkelijke bericht. Elke beschikbare niet-transactionele wachtrij kan worden gespecificeerd als beheerwachtrij. Beheerwachtrijen bevatten geen beheerberichten. Deze worden opgeslagen in interne persoonlijke wachtrijen.
In de door het systeem gegenereerde bevestigingsberichten die worden geretourneerd naar deze wachtrijen, kan worden aangegeven of een bericht is aangekomen in de doelwachtrij, of het al dan niet is opgehaald uit de doelwachtrij, of beide. Elk bevestigingsbericht bevat informatie waarin wordt beschreven waardoor de bevestiging is veroorzaakt en naar welk bericht de bevestiging verwijst. Wanneer de verzendende toepassing bevestigingsberichten aanvraagt, moet deze toepassing aangeven welke wachtrij moet worden gebruikt als beheerwachtrij en wat het bevestigingsniveau van het bericht is. Een beheerwachtrij is doorgaans een lokale wachtrij, zodat de verzendende toepassing de bevestigingsberichten lokaal kan lezen.
Antwoordwachtrijen
Net zoals beheerwachtrijen, worden ook antwoordwachtrijen door toepassingen gegenereerd. Deze worden gebruikt om door toepassingen gegenereerde antwoordberichten op te slaan, die in het algemeen worden geretourneerd door een toepassing die berichten uit een wachtrij leest. Antwoordwachtrijen worden door middel van programmacode gespecificeerd door de verzendende toepassing wanneer een bericht wordt verzonden. Elke beschikbare wachtrij kan worden gespecificeerd als een antwoordwachtrij. Antwoordberichten zijn niet hetzelfde als beheerdersantwoordberichten, die worden opgeslagen in een interne persoonlijke wachtrij.
De antwoordberichten die worden geretourneerd naar deze wachtrijen, moeten worden begrepen door de toepassing die de antwoordberichten retourneert en de toepassing die de antwoordberichten leest. Message Queuing heeft geen controle over de informatie die wordt verzonden in antwoordberichten. De verzendende toepassing moet bij het aanvragen van antwoordberichten aangeven welke wachtrijen moeten worden gebruikt als antwoordwachtrijen. Antwoordwachtrijen zijn meestal lokale wachtrijen, zodat de verzendende toepassing de antwoordberichten lokaal kan lezen.
Wanneer u zowel een antwoordwachtrij als een beheerwachtrij nodig hebt, kunt u de functionaliteit hiervan combineren in één wachtrij. Omdat alle beheerwachtrijen niet-transactioneel moeten zijn, zal deze wachtrij echter alleen niet-transactionele berichten accepteren.
Rapportenwachtrijen
Rapportenwachtrijen worden door toepassingen gegenereerd en worden gebruikt om rapportberichten in op te slaan die door Message Queuing of connectortoepassingen worden gegenereerd wanneer de verzendende toepassing vraagt om tracering. De rapportberichten geven de route aan die een bericht heeft gevolgd onderweg naar een externe computer, of de route die een testbericht heeft gevolgd naar een testwachtrij op een externe computer. Elke computer kan slechts één rapportenwachtrij bevatten.
Alle rapportenwachtrijen moeten het volgende label en de volgende wachtrijtype-id hebben:
- Label: MQ-rapportwachtrij
- Wachtrijtype-id:
{55EE8F32-CCE9-11CF-B108-0020AFD61CE9}
De Message Queuing-beheerder maakt doorgaans rapportenwachtrijen met behulp van Active Directory - gebruikers en computers. Een toepassing kan deze wachtrijen echter ook genereren, mits het juiste label en de juiste wachtrijtype-id worden opgegeven wanneer de wachtrij wordt gemaakt. Message Queuing gebruikt bij het verzenden van rapportberichten het label en de wachtrijtype-id om de juiste wachtrij op te zoeken en te openen.
Systeemwachtrijen
Systeemwachtrijen worden gemaakt door Message Queuing. Toepassingen kunnen de berichten in systeemwachtrijen lezen, maar kunnen er geen berichten naar verzenden. Message Queuing voorziet in verschillende soorten systeemwachtrijen, waaronder:
- Logboekwachtrijen, die kopieën bevatten van alle berichten die uit een wachtrij zijn verwijderd. Computerlogboeken bevatten kopieën van alle berichten die vanaf een computer zijn verzonden.
- Interne persoonlijke wachtrijen, die worden gebruikt als tussentijdse wachtrijen voor het opslaan en doorsturen van berichten die onderweg zijn naar een doelwachtrij. Deze wachtrijen worden niet gepubliceerd in AD DS. Uitgaande wachtrijen zijn lokale interne persoonlijke wachtrijen die automatisch worden gegenereerd om berichten in op te slaan die worden verzonden naar externe wachtrijen.
- Wachtrijen voor onbestelbare berichten, die berichten bevatten die niet kunnen worden afgeleverd. Message Queuing biedt een transactionele wachtrij voor onbestelbare berichten en een niet-transactionele wachtrij voor onbestelbare berichten.
- Connectorwachtrijen, die worden gebruikt voor het verzenden van berichten tussen verschillende platforms.
- Uitgaande wachtrijen, dat wil zeggen lokale interne wachtrijen die worden gebruikt om berichten in op te slaan die worden verzonden naar externe wachtrijen. Berichten kunnen worden opgeslagen in uitgaande wachtrijen als de computer offline is, en vervolgens naar doelwachtrijen op externe computers worden gestuurd zodra de verbinding is hersteld. Deze wachtrijen worden automatisch gegenereerd en kunnen niet handmatig worden gemaakt of verwijderd.
Om wachtrijen te beheren, kunt u de volgende procedures uitvoeren: