WebSphere MQ-Nachrichtenwarteschlangen

Die Verwendung von Nachrichtenwarteschlangen ist eine Alternative zum Aufrufen eines fernen Programms. Programme kommunizieren mithilfe von Nachrichtenwarteschlangen, indem Nachrichten aus Warteschlangen gelesen und in Warteschlangen geschrieben werden.

Die Schnittstelle für Nachrichtenwarteschlangen (Message Queue Interface - MQI) ist eine IBM® Spezifikation einer Anwendungsprogrammierschnittstelle (API) für den Zugriff auf die WebSphere MQ-Nachrichten- und Warteschlangensteuerungsservices (WebSphere MQ war früher MQSeries), die den Datentransfer zwischen Programmen unterstützen, die auf einer Vielfalt von IBM sowie Nicht-IBM Plattformen ausgeführt werden. Die Services ermöglichen es Programmen, ohne Kenntnisse der niedrigeren Ebenen des Kommunikationsnetzes und ohne Kenntnis der Position der übrigen Programme zu kommunizieren.

Eine Nachrichtenwarteschlange kann sich auf demselben System wie ein Programm (lokal) oder auf einem anderen System (fern) befinden. Warteschlangenmanager verwalten den Zugriff auf Warteschlangen und die Übertragung von Daten zwischen Warteschlangen.

Eine MQI-Nachricht ist eine Zeichenfolge aus Daten, die von einem Programm an ein anderes Programm gesendet wird. Eine MQI-Nachricht besteht aus Programminformationen und Routing-Informationen, die vom Manager der Nachrichtenwarteschlange verwendet werden (Steuerinformationen). Die Struktur und der Inhalt der Programminformationen wird durch die kommunizierenden Programme bestimmt, nicht durch den Warteschlangenmanager.

Programme, die Verfahren für die Verwendung von Nachrichtenwarteschlangen verwenden, weisen folgende Merkmale auf:
  • Es gibt keine physische Verbindung zwischen Programmen.
  • Zugriffsfunktionen auf das Kommunikationsnetz sind in den Warteschlangenmanagern und nicht in den Programmen integriert.
  • Kommunizierende Programme können parallel ausgeführt werden.
  • Kommunizierende Programme müssen nicht gleichzeitig ausgeführt werden.
  • Verbindungsausfälle aufgrund von nicht unterbrechungsfreier Kommunikation verhindern nicht, dass Nachrichten übergeben werden.
  • Die Arbeit wird durch kleine, eigenständige Programme ausgeführt.
  • Kommunikation kann ereignisgesteuert sein.
  • Nachrichten können Prioritäten zugeordnet werden.
  • Nachrichten können wiederherstellbare Ressourcen sein, die festgeschrieben oder rückgängig gemacht sowie mit Datenbank- oder Dateiaktualisierungen versehen sind.
  • Die Auslastung kann ausgeglichen werden, indem mehrere Server zum Ausführen einer einzigen Warteschlange gestartet werden.
  • Die Verfügbarkeit kann erhöht werden, indem für den Service einer Warteschlange mehrere alternative Prozessoren zugeordnet werden.
EGL unterstützt Aufrufe von WebSphere MQ-Nachrichtenwarteschlangen auf zwei Arten:
  • Sie können EGL-spezifische Schlüsselwörter wie add und get next verwenden. In diesem Fall übernimmt EGL alle Details für die Generierung von WebSphere MQ-API-Aufrufen.
  • Zur Unterstützung von älteren Programmen können Sie WebSphere MQ-API-Aufrufe direkt schreiben.

Bei neuem Code sollten für die Kommunikation mit Nachrichtenwarteschlangen EGL-Schlüsselwörter verwendet werden.

EGL verwendet Ressourcenzuordnungen, um die Warteschlange zu ermitteln, der der Datensatz zugeordnet ist. Weitere Informationen finden Sie in Ressourcenzuordnungen für Nachrichtenwarteschlangen definieren.

In den nachfolgenden Abschnitten werden Details zur Erstellung von WebSphere MQ-Programmen in EGL bereitgestellt.

Nachrichten in EGL definieren

EGL verwendet einen Datensatz mit dem Stereotyp 'MQRecord', um die interne Darstellung einer Nachricht zu erstellen.

Für 'MQRecords' gelten dieselben allgemeinen Regeln wie für andere EGL-Datensätze. Sie bestehen aus Nachrichtendaten und einer Anzahl von Eigenschaften. Eine Gruppe von Eigenschaften bestimmt, wie EGL die API-Befehle erstellen soll, die es für die Kommunikation mit WebSphere MQ generiert. Eine weitere Gruppe stellt den physischen Namen der zu verwendenden Nachrichtenwarteschlange (fileName), den logischen Namen der Warteschlange (queueName), die Größe des Datensatzes variabler Länge (lengthItem) und weitere Basisinformationen bereit.

Weitere Informationen zu diesen Eigenschaften finden Sie in MQRecord-Eigenschaften.