I forbindelse med MSMQ er køer midlertidige lagerplaceringer til forskellige typer meddelelser. Køer kan oprettes af:

  • Programmer

  • Administratorer

  • MSMQ

De køer, der oprettes af programmer eller administratorer, kaldes programkøer. De køer, der oprettes af MSMQ, kaldes systemkøer.

Programkøer

MSMQ omfatter følgende typer programkøer:

Offentlige og private køer

Offentlige køer

I et domænemiljø er offentlige køer køer, der udgives i Active Directory-domænetjenester og sidenhen replikeres i en hel skov. Det er kun egenskaberne for disse køer, der replikeres, ikke selve køerne eller deres indhold. Enhver computer i skoven kan få adgang til oplysninger om offentlige køer, hvis blot brugeren har de rette tilladelser til at få adgang til de pågældende køobjekter. Generelt set kan enhver bruger i skoven, som har adgang til Active Directory-domænetjenester og har tilladelsen Send meddelelse til en given offentlig kø, sende meddelelser til den. Denne tilladelse gives som standard, når køen oprettes. Hvis du vil læse meddelelser fra en offentlig kø, skal du have tilladelsen Vis meddelelse eller Modtag meddelelse til køen.

I miljøet Active Directory-domænetjenester sikrer definitionen af de offentlige køer, at køer registreres i katalogtjenesten, og at registreringen sikkerhedskopieres. De er vedvarende og tilgængelige for andre programmer.

Private køer

Private køer er køer, der ikke udgives i Active Directory-domænetjenester. De vises kun på den lokale computer, hvor de findes. Private køer har den fordel, at de ikke belaster nogen katalogtjenester, hvilket giver køer, der:

  • Er hurtigere at oprette

  • Ikke har nogen ventetid, når der opnås adgang til dem

  • Ikke belaster nogen replikeringer

I et arbejdsgruppemiljø er kun private køer tilgængelige:

For at et MSMQ-program på den lokale computer kan få adgang til en privat kø, skal programmet bare kende stien til køen. I forbindelse med et MSMQ-program på en fjerncomputer kræver programmet et direkte eller privat formatnavn for at få adgang til sådan en kø. Hvis du vil læse meddelelser fra køen, skal det eksterne MSMQ-program have tilladelsen Modtag meddelelse til køen. Som standard har alle tilladelse til at sende meddelelser til offentlige og private køer.

Transaktionskøer og køer uden transaktion

En transaktionskø er en kø, der kun indeholder transaktionsmeddelelser, som er meddelelser, der sendes i en transaktion. Kravene til afsendelse og modtagelse af meddelelser er baseret på den anvendte køtype (transaktionskø eller kø uden transaktion) og køens placering (lokalt eller eksternt).

Sende meddelelser

Når du bruger transaktioner for at sende meddelelser, kan meddelelserne sendes til enhver transaktionskø, uanset hvor køen er placeret, men transaktionskøer kan kun acceptere meddelelser, der sendes i forbindelse med en transaktion. På samme måde kan køer uden transaktion kun acceptere meddelelser, der sendes uden for en transaktion.

Modtage meddelelser

Du kan modtage meddelelser fra en lokal eller ekstern kø.

Underkøer

Underkøer gør det muligt for programmer at gruppere meddelelser. Underkøer er praktiske i følgende situationer:

  • Behandling af produktionsordrer. Hvis et program behandler meddelelser, der indeholder poster fra forskellige produktionsordrer, kan det bruge underkøerne til at gruppere vareposter efter produktionsordre for at sikre en mere effektiv behandling.

  • Håndtering af uautoriserede meddelelser. Hvis et program modtager en meddelelse, som det ikke kan behandle på det pågældende tidspunkt, kan det flytte meddelelsen til en fejlunderkø til senere behandling.

Underkøer oprettes indirekte, når de åbnes. Det vil med andre ord sige, at når en meddelelse flyttes til en underkø, opretter denne handling egentlig en underkø, hvis en sådan ikke findes i forvejen. Underkøer slettes, når de er tomme, og de har ingen åbne handler. Programmer kan ikke sende meddelelser direkte til underkøer. De kan kun flytte meddelelser til en underkø. De kan modtage meddelelser fra underkøer, flytte dem mellem en hovedkø og dens underkø eller flytte dem mellem underkøer i samme hovedkø. De kan ikke flytte dem fra underkøen i en hovedkø til underkøen i en anden hovedkø.

I nedenstående figur kan meddelelser f.eks. flyttes frem og tilbage mellem underkø1 (eller underkø2) og meddelelsesmappen Kø i køa. Meddelelser kan også flyttes mellem underkø1 og underkø2. På samme måde kan meddelelser flyttes frem og tilbage mellem køz og dens underkø, underkø3 og underkø4.

Meddelelser kan dog ikke flyttes frem og tilbage mellem køa og underkø3 eller underkø4 eller mellem køz og underkø1 eller underkø2. Meddelelser kan heller ikke flyttes frem og tilbage mellem underkøerne i køa (underkø1 eller underkø2) og underkøerne i køz (underkø3 eller underkø4).

Underkøer

Underkøer har ikke deres egne egenskaber eller tilstand. De deler egenskaber med hovedkøen. En underkø har f.eks. ikke sin egen:

  • Kvote

  • Adgangskontrolliste

  • Transaktionstype

Underkøer deler kvote med hovedkøen, og meddelelser i underkøen indregnes i denne kvote.

Underkøer kan ikke oprettes under journal- eller andre systemkøer, eller andre underkøer.

Administrationskøer

Administrationskøer er programoprettede køer. De bruges til at gemme systemoprettede negative og positive bekræftelser, som MSMQ eller forbindelsesprogrammer opretter. De angives automatisk af afsenderprogrammet i de originale meddelelser . Enhver tilgængelig kø uden transaktion kan angives som en administrationskø. Administrationskøer indeholder ikke administrative meddelelser, som gemmes i interne private køer.

De systemoprettede bekræftelser, der returneres til disse køer, kan angive, om en meddelelse er ankommet til destinationskøen, om den er hentet fra destinationskøen, eller begge dele. Hver bekræftelse indeholder oplysninger, der beskriver, hvad der udløste bekræftelsen, og hvilken meddelelse bekræftelsen henviser til. Når der anmodes om bekræftelser, skal afsenderprogrammet angive, hvilken kø der skal bruges som administrationskø, og meddelelsens bekræftelsesniveau. En administrationskø er typisk en lokal kø, så afsenderprogrammet kan læse bekræftelserne lokalt.

Svarkøer

Ligesom administrationskøer er svarkøer programoprettede køer. De bruges til at gemme programoprettede svarrmeddelelser, der typisk returneres af et program, der læser meddelelser fra en kø. Svarkøer angives automatisk af afsenderprogrammet, når en meddelelse sendes. Enhver tilgængelig kø kan angives som en svarkø. Svarmeddelelser er ikke det samme som administrative svarmeddelelser, som gemmes i en intern privat kø.

De svarmeddelelser, der returneres til disse køer, skal forstås af det program, der returnerer svarmeddelelserne, og det program, der læser svarmeddelelserne. MSMQ har ikke kontrol over, hvilke oplysninger der sendes i svarmeddelelser. Når der anmodes om svarmeddelelser, skal afsenderprogrammet angive, hvilke køer det vil bruge som svarkøer. Typisk er svarkøer lokale køer, så afsenderprogrammet kan læse svarmeddelelserne lokalt.

Når der både er brug for en svarkø og en administrationskø, kan deres funktioner samles i en enkelt kø. Da alle administrationskøer imidlertid skal være køer uden transaktion, accepterer denne kø kun meddelelser uden trransaktion.

Rapporteringskøer

Rapporteringskøer er programoprettede køer, der bruges til at gemme rapporteringsmeddelelser, som MSMQ eller forbindelsesprogrammer opretter, når afsenderprogrammet anmoder om sporing. Rapporteringsmeddelelserne angiver den rute, en meddelelse har taget til destinationen på en fjerncomputer, eller den rute, en testmeddelelse har taget til en testkø på en fjerncomputer. Der kan kun være én rapporteringskø for hver computer.

Alle rapporteringskøer skal have følgende navn og køtype-id:

  • Etiket: MQReport-kø

  • Køtype-id:

    {55EE8F32-CCE9-11CF-B108-0020AFD61CE9}

MSMQ-administratoren opretter typisk rapporteringskøer ved hjælp af Active Directory-brugere og computere. De kan dog også oprettes af et program, hvis det korrekte navn og køtype-id angives, når køen oprettes. MSMQ bruger navnet og køtype-id'et til at lokalisere og åbne den rette kø, når der skal sendes rapporteringsmeddelelser.

Systemkøer

MSMQ opretter systemkøer. Programmer kan læse meddelelserne i systemkøer, men kan ikke adressere meddelelser til dem. MSMQ indeholder forskellige typer af systemkøer, herunder:

  • Journalkøer, der indeholder kopier af alle de meddelelser, der er fjernet fra en kø. Computerjournaler indeholder kopier af alle de meddelelser, der er sendt fra en computer.

  • Interne private køer, der bruges som mellemliggende kø til lagring og videresendelse af meddelelser, der er undervejs til en destinationskø. Disse køer udgives ikke i Active Directory-domænetjenester. Udgående køer er lokale interne private køer, der oprettes automatisk til lagring af meddelelser, der sendes til eksterne køer.

  • Køer til uanbringelige meddelelser, som indeholder meddelelser, der ikke kan leveres. MSMQ indeholder en kø til uanbringelige transaktionsmeddelelser og en kø til uanbringelige meddelelser uden transaktion.

  • Forbindelseskøer, der bruges til meddelelser på tværs af platforme.

  • Udgående køer, som er lokale interne private køer, der bruges til lagring af meddelelser, der sendes til eksterne køer. Meddelelser kan lagres i udgående køer i offlinetilstand og derefter sendes til destinationskøer på fjerncomputere, når forbindelsen er genoprettet. Disse køer oprettes automatisk og kan ikke oprettes eller slettes manuelt.

Benyt følgende fremgangsmåder efter behov for at administrere køer:


Indholdsfortegnelse