1 / 30

Seminar Großrechneraspekte

Seminar Großrechneraspekte. Messaging Systeme MQSeries Doreen Baum. Überblick. MQSeries-Architektur Kommunikation zwischen Queue-Managern Aktivieren von Applikationen Kommunikation zwischen Client und Server MQI (Message-Queuing-Interface) Code Fragment Zusammenfassung.

signa
Download Presentation

Seminar Großrechneraspekte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar Großrechneraspekte Messaging Systeme MQSeries Doreen Baum

  2. Überblick • MQSeries-Architektur • Kommunikation zwischen Queue-Managern • Aktivieren von Applikationen • Kommunikation zwischen Client und Server • MQI (Message-Queuing-Interface) • Code Fragment • Zusammenfassung

  3. MQ-Series – Architektur

  4. Bausteine und Gesamtarchitektur

  5. Bestandteile des Queuing-Systems • Queue-Manager (MQM) • Listener • Trigger-Monitor • Channel-Initiator • Message-Channel-Agent (MCA oder Mover)

  6. Kommunikation zwischenQueue-Managern

  7. Kommunikation zwischen 2 Queue-Manager

  8. Automatischer Kommunikationsstart

  9. Möglichkeiten der Aktivierung Queue-Manager startet das Channel-Programm: • Sobald die erste Nachricht auf die Xmit-Queue gelegt wird • Jedesmal, wenn eine Nachricht auf die Xmit-Queue gelegt wird • Erst wenn die Queue eine bestimmte Anzahl von Nachrichten enthält

  10. Aktivierungsablauf

  11. Aktivieren von Applikationen

  12. Aktivieren einer Applikation

  13. Aktivierungstypen Eine Trigger-Message wird in die Initiation-Queue geschrieben, wenn: • every: es wird eine Nachricht in den Ziel-Queue geschrieben • first: sobald die Ziel-Queue leer wird • n messages: es befinden sich n Nachrichten in der Ziel-Queue

  14. Kommunikation zwischen Client und Server

  15. Arten von Clients • Fat-Client • Verfügen über lokalen Queue-Manager • Slim-Client oder MQSeries-Client • Haben keinen lokalen Queue-Manager • Nur arbeitsfähig, wenn Client mit einem Server verbunden ist

  16. MQI und Massage-Channels

  17. Rechner-Type • MQSeries-Client  Slim-Client • MQSeries-Server  Zwischen-Knoten • Leaf-Node  Fat-Client

  18. Client/Server-Kommunikation

  19. Kommunikations-Modi • synchron: • Applikation wartet auf eintreffende Nachrichten • Verarbeitung fortsetzen nach Eintreffen • asynchron • Verarbeitung beginnt, wenn Applikation gestartet wird und eine Nachricht vorhanden ist

  20. Massage-Queuing-Interface (MQI)

  21. API-Calls • MQCONN: Verbindung mit Queue-Manager herstellen • MQCONNX: Verbindung mit Queue-Manager über eine schnelle Verbindung herstellen • MQBEGIN: startet eine Arbeitseinheit, die von einem Queue-Manager koordiniert wird

  22. API-Calls • MQOPEN: öffnet eine Queue • MQPUT: legt eine Nachricht auf eine Queue • MQCLOSE: schließt eine Queue • MQPUT1: Kombination von MQOPEN, MQPUT und MQCLOSE • MQINQ: fordert Informationen über den Queue-Manager oder eines seiner Objekte an

  23. API-Calls • MQSET: verändert einige Attribute eines Objektes • MQCMIT: abgelegte Nachrichten werden verfügbar gemacht und zurück gekommenen Nachrichten werden gelöscht • MQBACK: abgelegte Nachrichten werden gelöscht und zurück gekommene Nachrichten werden wieder auf Queue gelegt

  24. API-Calls • MQDISC: trennt die Verbindung zum Queue-Manager

  25. Code Fragment MQCONN HCON; // Connection handle MQHOBJ Hobj1; // Object handle for queue 1 MQHOBJ Hobj2; // Object handle for queue 2 MQLONG CompCode, Reason; // Return Codes MQOD od1 = {MQOD_DEFAULT}; // Object Descriptor queue 1 MQOD od2 = {MQOD_DEFAULT}; // Object Descriptor queue 2 MQMD md = {MQMD_DEFAULT}; // Message Descriptor MQPMO pmo = {MQPMO_DEFAULT}; // Put message options MQGMO gmo = {MQGMO_DEFAULT}; // Get message options // Verbindung zu Queue-Manager herstellen strcpy (QMName, "MYQMGR"); MQCONN (QMName, &Hcon, &CompCode, &Reason);

  26. Code Fragment // Queue für die Ausgabe öffnen strcpy (od1.ObjectName, "QUEUE1"); MQOPEN (Hcon, &od1, MQOO_OUTPUT, &Hobj1, &CompCode, &Reason); // Nachricht auf den Queue legen MQPUT (Hcon, Hobj1, &md, &pmo, 100, &buffer, &CompCode, &Reason); // Queue für die Ausgabe schließen MQCLOSE (Hcon, &Hobj1, MQCO_NONE, &CompCode, &Reason);

  27. Code Fragment // Queue für die Eingabe öffnen options = MQCO_INPUT_AS_Q_DEF; strcpy (od2.ObjectName, "QUEUE2"); MQOPEN (Hcon, &od2, options, &Hobj2, &CompCode, &Reason); // Get Message gmo.Options = MQGMO_NO_WAIT; buflen = sizeof (buffer-1); memcpy (md.MSGId MQMI_NONE, sizeof (md.MsgId); memset (md.CorrelId, 0x00, sizeof (MQBYTE24)); MQGET (Hcon, &Hobj2, &md, &gmo, buflen, buffer, 100, MQOPEN, &CompCode, &Reason);

  28. Code Fragment // Queue für die Eingabe schließen options = 0; MQCLOSE (Hcon, &Hobj2, options, &CompCode, &Reason);  // Verbindung zum Queue-Manager trennen MQDISC (Hcon, &CompCode, &Reason);

  29. Zusammenfassung • MQSeries-Applikationen können mit minimalem Aufwand entwickelt und getestet werden • Auf vielen Plattformen lauffähig, deshalb gute Kommunikation über Netzwerk mit unterschiedlichen Komponenten • Konsistentes API auf allen Plattformen

  30. Literatur • Einführung in z/OS und OS/390 P.Herrmann/U.Kebschull/W.G.Spruth

More Related