tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1765
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo!

    Da mir gerade mal ein wenig langweilig ist, dachte ich mir ich mach mal was sinnvolles und
    schau mir mal wieder ein wenig über den Tellerrand diesmal in Richtung Messaging unter .Net mit MSMQ
    (Microsoft Message Queue)

    Vorbereitung:
    Zuerst muß man sich lokal die MSMQ Erweiterungen für Windows XP installieren:
    -> Systemsteuerung -> Software -> Windows Komponenten hinzufügen -> Message Queueing... alles Selektieren.
    (Windows XP CD bereit halten)

    Ist die MSMQ Erweiterung installiert, kann man in der Computerverwaltung eine Message Queue anlegen, was wir auch
    gleich tun.
    Rechte Maustaste auf Arbeitsplatz -> Verwalten -> Dienste und Anwendungen -> Message Queuing
    (Da wir unsere Message Queue nicht in einem Active Directory veröffentlichen, und wir im sogenannten
    Workstation Mode arbeiten wollen legen wir nun eine Private Warteschlange mit dem Namen privateTestQueue an.
    Dazu klicken wir mit der Rechten Maustaste auf "Private Warteschlangen" -> Neu -> Private Warteschlange.

    Anschließend erscheint unsere Warteschlange unter dem entsprechenden Knoten.

    Nun bauen wir uns ein kleines Point-to-Point Messaging Beispiel in C#:
    Dazu müssen wir noch einen Verweis hinzufügen: "System.Messaging".

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;
    using System.Messaging;
     
    namespace De.Tutorials.Training
    {
        public class MessagingExample
        {
            string messageQueuePath;
     
            public MessagingExample(string messageQueuePath)
            {
                this.messageQueuePath = messageQueuePath;
            }
     
            public static void Main(string[] args)
            {
                MessagingExample simpleMessageQueue = new MessagingExample(@"FormatName:direct=os:.\Private$\privateTestQueue");
                simpleMessageQueue.StartMessageProduction();
                simpleMessageQueue.StartMessageReceiving();
            }
     
            private void StartMessageReceiving()
            {
                Thread thread = new Thread(new ThreadStart(ReceiveMessages));
                thread.Start();
     
            }
     
            private void ReceiveMessages()
            {
                MessageQueue messageQueue = new MessageQueue(messageQueuePath);
                messageQueue.Formatter = new XmlMessageFormatter(new Type[] { typeof(string) });
                while (true)
                {
                    Message message = messageQueue.Receive();
                    Console.WriteLine("Received: " + message.Body);
     
                }
            }
     
            private void StartMessageProduction()
            {
                Thread thread = new Thread(new ThreadStart(ProduceMessages));
                thread.Start();
            }
     
            private void ProduceMessages()
            {
                MessageQueue messageQueue = new MessageQueue(messageQueuePath);
                while (true)
                {
                    string message = "Message: Fooooo" + System.DateTime.Now.Ticks;
                    Console.WriteLine("Sending Message: " + message);
                    messageQueue.Send(message);
                    Thread.Sleep(5000);
                }
            }
        }
    }

    "FormatName:direct=os:.\Private$\privateTestQueue" gibt den Pfad zu unserer MessageQueue an. Dabei steht der . für
    localhost. Da wir eine private Message Queue verwenden findet man die (analog zu den Administrativen Freigaben wie C$ unter Windows) unter Private$.

    Na ja, jetzt hat man zumindest mal was zum rumspielen

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  2. #2
    The_Dark_Night Tutorials.de Gastzugang
    Der Code funktioniert so nicht******
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    was funktioniert denn nicht? Welche Windows bzw. .Net Version verwendest du denn?
    Unter Windows XP funktionierts bei mir mit .Net 2.0

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 21.05.08, 15:38
  2. Messaging mit JBossMQ
    Von Thomas Darimont im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 12
    Letzter Beitrag: 08.09.07, 09:49
  3. Google bietet neue Instant Messaging Lösung an
    Von Thomas Darimont im Forum Smalltalk
    Antworten: 9
    Letzter Beitrag: 25.08.05, 22:34
  4. XML Datei an MSMQ schicken
    Von lukburg im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 23.08.04, 08:21
  5. Antworten: 4
    Letzter Beitrag: 06.04.04, 12:39