WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Kommunikationsbereichs- oder Kanaldatenstrukturen

Zu den Programmen von CICS Transaction Server for z/OS kann eine Verbindung hergestellt werden, indem entweder Kommunikationsbereichsdatenstrukturen oder Kanaldatenstrukturen als Eingabe verwendet werden, die ihrerseits dieselben Datenstrukturen als Ausgabe zurückgeben. Der CICSRequest-Knoten unterstützt die Interaktion mit CICS durch Kommunikationsbereichs- oder Kanaldatenstrukturen.

Kanäle sind eine moderne Alternative zu Kommunikationsbereichen, da die maximale Größe der Kommunikationsbereiche von 32766 Byte für sie nicht gilt und sie größere Flexibilität bei den Eingabe- und Ausgabedatenstrukturen ermöglichen.

Kommunikationsbereiche

Wenn ein Kommunikationsbereich (COMMAREA) als Eingabedatenstruktur für die Kommunikation mit CICS dient, sendet der CICSRequest-Knoten einen Abschnitt des Eingabehauptteils, wie in den Anfrageeigenschaften des CICSRequest-Knotens definiert, als Kommunikationsbereich an CICS.

Der zurückkehrende Kommunikationsbereich wird dann in die Ausgabebaumstruktur gestellt und ersetzt den vorhandenen Hauptteil an der Stelle, die in den Ergebniseigenschaften des CICSRequest-Knotens definiert ist. Der Kommunikationsbereich kann anschließend über die Eigenschaften von 'Syntaxanalyse der Antwortnachricht' des CICSRequest-Knotens für die Syntaxanalyse konfiguriert werden.

Stellen Sie beim Definieren einer Kommunikationsbereichsdatenstruktur sicher, dass der Eigenschaftswert Kommunikationsbereichslänge des CICSRequest-Knotens groß genug ist, um die Daten der Eingabeanforderung oder der Ausgabeantwort zu enthalten, ohne den Maximalwert von 32767 Byte zu überschreiten. Wenn der Wert für Länge des Kommunikationsbereichs nicht groß genug für die Antwortdaten oder die Anforderungsdaten ist, kommt es in zu einem Speicherverlust in CICS. Die Größe des Kommunikationsbereichs kann nicht vom CICS-Programm geändert werden. Überschreiten die serialisierten Anforderungsdaten die Kommunikationsbereichslänge, werden die Daten auf die Länge des Kommunikationsbereichs abgeschnitten. Sie können den Wert für die Kommunikationsbereichslänge beim CICS-Administrator oder -Entwickler erfragen.

Der Standardwert für die Basiseigenschaft Datenstruktur des CICSRequest-Knotens ist Kommunikationsbereich.

Weitere Informationen zur Verwendung eines Kommunikationsbereichs als Eingabedatenstruktur finden Sie in den Abschnitten CICS Transaction Server for z/OS-Datenstruktur definieren, Nachrichtenfluss mit einem CICSRequest-Knoten entwickeln und Nachricht für den CICSRequest-Knoten formen.

Kanäle

CICS-Kanäle enthalten eine Reihe von Strukturen, die als Container bezeichnet werden. Container enthalten die Geschäftsinformationen, auf die das CICS-Zielprogramm zugreift. Jeder Container kann bis zu 2 GB Daten enthalten, und die Anzahl der Container pro Kanal richtet sich allein nach dem Bedarf. Dies sorgt für Flexibilität bei der Größe und dem Aufbau der der Daten. Jeder Containername ist ein alphanumerischer Wert mit maximal 16 Zeichen, der innerhalb des Kanals eindeutig sein muss. Er wird zum Abrufen des Containerinhalts aus dem Kanal benötigt.

Es gibt zwei Containertypen: Zeichencontainer (character) und Binärcontainer (binary). Der Containertyp kann Einfluss auf die Datenkonvertierung zwischen WebSphere Message Broker und CICS haben, jedoch nicht auf das Format der Informationen, die in diesen Container gestellt werden können.
Zeichencontainer
Bei Zeichencontainern handelt es sich wohl in den meisten Fällen um einzelne Zeichenfolgen oder diskrete Datenelemente, obwohl es auch zugeordnete Strukturen sein können. Es ist jedoch wichtig zu beachten, dass die Datenkonvertierung auf die im Container enthaltenen Daten angewendet wird. Beim Erstellen eines Zeichencontainers werden Informationen zur ID des codierten Quellcodezeichensatzes (Coded Character Set ID, CCSID) für den Container als Metadaten an CICS gesendet. Das CICS-Programm konvertiert die Metadaten durch Aufruf der Anwendungsprogrammierschnittstelle (API) GET CONTAINER in die Standard-CCSID der Region, sofern keine andere CCSID angegeben wird. Anschließend stellt das CICS-Programm den Container zurück in den Kanal, sodass die konvertierten Daten von der WebSphere Message Broker-Anwendung direkt abgerufen und verwendet werden können.
Binärcontainer
Binärcontainer können mithilfe einer COBOL-Copybook-Struktur zugeordnet werden oder es können diskrete Werte sein. Die Datenkonvertierung wird nicht auf die im Binärcontainer enthaltenen Daten angewendet. Deshalb werden die in einem Binärcontainer enthaltenen Daten an CICS gesendet und ohne Konvertierung in ihrem ursprünglichen Format wieder aus CICS abgerufen.

Anders als bei Kommunikationsbereichsstrukturen, bei denen die Größe der Antwort bereits in der Anforderung zu berücksichtigen ist, muss bei Binärcontainern die Größe des Antwortkanals nicht der Anforderung entsprechen.

Kanäle und Container in CICS

Der CICS-Kanal im folgenden Beispieldiagramm enthält zwei Container: CustomerName (Kundenname) und Order (Auftrag).

Im Diagramm ist ein Beispielkanal in CICS mit zwei Containern dargestellt. Der erste ist ein Zeichencontainer mit dem Namen 'CustomerName' (Kundenname), der den Wert 'Joe Bloggs' enthält. Der zweite ist ein Binärcontainer mit dem Namen 'Order' (Auftrag), der eine komplexe Struktur enthält, die durch ein COBOL-Copybook dargestellt wird.

CustomerName ist ein Zeichencontainer (CHAR), der als einzigen Wert die Zeichenfolge Joe Bloggs enthält. Da es sich bei CustomerName um einen Zeichencontainer handelt, kann die Datenkonvertierung auf die Daten im Container angewendet werden. Order ist ein Binärcontainer (BIN), der mithilfe einer COBOL-Copybook-Struktur oder einer C-Headerdatei erstellt werden kann, die Sie anschließend importieren können, um Ihre Nachrichtengruppe mit Nachrichtendefinitionen zu füllen. Das als Beispiel angegebene Copybook beschreibt den binären Aufbau der Daten, die vom empfangenden CICS-Programm erwartet werden.
01 ORDER_STRUCTURE.
          03 QTY                  COMP-1.
          03 ITEM                 PIC X(10).
          03 PRICE                PIC S9(9).
Das CICS-Zielprogramm kann beide genannten Container aus dem Kanal abrufen, indem der Name des Containers beim Ausführen der API GET CONTAINER angegeben wird. Wenn das CICS-Programm die Daten empfängt, werden sie auf die im Programm festgelegte Weise verarbeitet. Beispielsweise kann das Programm andere Container im Kanal platzieren, um mithilfe der API PUT CONTAINER eine Antwort für den aufgerufenen Container zu liefern.

Kanäle und Container in WebSphere Message Broker

In WebSphere Message Broker wird ein CICS-Kanal als Nachrichtensammlungsstruktur dargestellt. Eine Nachrichtensammlung kann untergeordnete Nachrichten enthalten, die vom CICSRequest-Knoten alle als einzelne Container behandelt werden. Beim Verwenden einer Kanaldatenstruktur nutzt der CICSRequest-Knoten eine Nachrichtensammlungsstruktur sowohl für die Eingabe als auch die Ausgabe. Weitere Informationen zu Nachrichtensammlungen finden Sie im Abschnitt Nachrichtensammlungen und zum Erstellen einer Nachrichtensammlung im Abschnitt Nachrichtensammlung mit ESQL erstellen.

Der Name der Nachrichtensammlung wird zur Benennung des Kanals verwendet. Der Name der untergeordneten Nachricht in der Nachrichtensammlung dient als Name des Containers im Kanal und muss eindeutig sein. Wenn der Name der untergeordneten Nachricht in der Nachrichtensammlung nicht eindeutig ist, wird die Anforderung in CICS abgelehnt.

In der folgenden Tabelle ist die Zuordnung zwischen Kanal und Container einerseits und Nachrichtensammlung und untergeordneter Nachricht andererseits dargestellt:
CICS WebSphere Message Broker
Name des Kanals Name der Nachrichtensammlung
Name des Containers (muss innerhalb des übergeordneten Kanals eindeutig sein) Name der untergeordneten Nachricht (muss innerhalb der Nachrichtensammlung eindeutig sein)

Name/Wert-Attribute

In WebSphere Message Broker können Container erstellt werden, indem einer Nachrichtensammlung Name/Wert-Attribute hinzugefügt werden. Eine Nachrichtensammlung kann keine oder mehrere Attribute haben. Der Name eines Attributs muss innerhalb der Nachrichtensammlung eindeutig sein. Ein Standardattribut für die Nachrichtensammlung ist ein Attribut namens CollectionName.

Sie können einer Nachrichtensammlung Name/Wert-Attribute hinzufügen, um CICS-Container zu erstellen. Mit Ausnahme des Attributs CollectionName (Name der Sammlung) können Name/Wert-Attribute in der Nachrichtensammlung anstelle von kompletten Nachrichtenordnern für einfache Daten verwendet werden. Beispielsweise kann in der Nachrichtensammlung ein Name/Wert-Zeichenfolgeattribut festgelegt und direkt durch den CICSRequest-Knoten genutzt werden, ohne dass eine Nachrichtengruppe für das Element erstellt werden muss.

Name/Wert-Attribute können von Containern sowohl bei der Ausgabe erstellt als auch bei der Eingabe akzeptiert werden. Weitere Informationen zum Erstellen eines Attributs anstelle eines Nachrichtenordners aus einem Container finden Sie im Abschnitt CICSRequest-Knoten.

Der CICS-Kanal im folgenden Beispieldiagramm wird durch eine Nachrichtensammlung mit dem Namen Collection dargestellt. Die Nachrichtensammlung Collection enthält zwei Container, die durch untergeordnete Nachrichten mit den Namen CustomerName und Order dargestellt werden. Sowohl CollectionName als auch CustomerName ist ein Name/Wert-Attribut, doch das Attribut CollectionName wird vom CICSRequest-Knoten nicht als Attribut behandelt und deshalb nicht an CICS gesendet.

Im Diagramm ist ein CICS-Kanal zu sehen, der durch eine Nachrichtensammlung mit dem Namen 'Collection' dargestellt wird. Die Nachrichtensammlung 'Collection' enthält zwei Container, die durch untergeordnete Nachrichten mit den Namen 'CustomerName' und 'Order' dargestellt werden.

Wenn das Attribut CustomerName vom CICSRequest-Knoten als Zeichencontainer behandelt werden soll, muss dies in der Eigenschaft 'LocalEnvironment' für die lokale Umgebung angegeben werden.

Lokale Umgebung

Jede untergeordnete Nachricht in einer Nachrichtensammlung wird standardmäßig so behandelt, als gehöre sie zum Binärtyp, was Auswirkungen darauf hat, ob die Daten in die ID des codierten Zeichensatzes (CCSID) für die CICS-Region konvertiert werden. Sie können diese Standardeinstellung jedoch in der lokalen Umgebung dynamisch überschreiben und für jede Nachricht einzeln den Zeichentyp festlegen. Beispielsweise können Sie unter LocalEnvironment.Destination.CICS.RequestChannel.Containers den folgenden Wert festlegen:
SET
OutputLocalEnvironment.Destination.CICS.RequestChannel.Containers.<Containername> = CHARACTER;

Wenn eine Nachrichtensammlung nach der entsprechenden Anforderung vom CICSRequest-Knoten ausgegeben wird, enthält die Eigenschaft 'LocalEnvironment' die Informationen zum Rückgabetyp des Containers. Wenn der Antwortkanal z. B. von CICS zurückkommt, werden in 'LocalEnvironment' die Containertypen angezeigt, die an folgender Stelle zurückgekommen sind: LocalEnvironment.CICS.ResponseChannel.Containers.<Containername> = CHARACTER

Der Name des Kanals, der auf 16 alphanumerische Zeichen begrenzt ist, kann wie folgt überschrieben werden:
SET
OutputLocalEnvironment.Destination.CICS.RequestChannel.ChannelName =
<Neuer_Kanalname>;
Wenn nur ein einzelner Container für die Eingabe erforderlich ist, muss keine Nachrichtensammlung erstellt werden. Stattdessen kann eine normale Nachricht verwendet werden, wobei jedoch für ChannelName ein alphanumerischer Kanalname mit maximal 16 Zeichen in 'LocalEnvironment' festgelegt werden muss. Der alphanumerische Containername für SingleMessageContainerName mit maximal 16 Zeichen, der erstellt werden muss, ist darüber hinaus an folgender Stelle anzugeben:
SET
OutputLocalEnvironment.Destination.CICS.RequestChannel.SingleMessageContainerName =
<Containername_für_einzelne_Nachricht>;

Da eine Nachrichtensammlung es ermöglicht, dass jeder Container im Kanal als separate Nachricht modelliert wird, hat jede Nachricht ihre eigenen Struktur- und Syntaxanalyseoptionen. Beispielsweise kann ein Container auf XML und ein anderer auf einem Copybook basieren, die jeweils durch die Verwendung von XMLNSC- bzw. MRM-Nachrichten innerhalb einer Nachrichtensammlung dargestellt werden.

Jede untergeordnete Nachricht in der Nachrichtensammlung enthält Angaben zu Nachrichtendomäne, -gruppe, -typ, -format, -CCSID und -codierung. Diese Informationen sind im Ordner Eigenschaften gespeichert, der der untergeordneten Nachricht zugeordnet ist, die zu einem Bytestrom serialisiert und an CICS gesendet wird. Die Serialisierung der untergeordneten Nachrichtenordner in der Nachrichtensammlung, die an CICS gesendet wird, findet auf der Ebene des letzten untergeordneten Elements der Nachrichteneigenschaftenendomäne statt. Nicht alle CICS-Container müssen durch eine Nachrichtengruppe dargestellt werden.

Im vorherigen Beispiel kann der Container Order als MRM-Nachricht dargestellt werden, und aus dem Copybook 'ORDER_STRUCTURE' kann eine Nachrichtengruppe zu deren Darstellung erstellt werden. Der Rückgabekanal wird in eine Nachrichtensammlung konvertiert, in der jede untergeordnete Nachricht einen Container aus dem Kanal dargestellt. Untergeordnete Nachrichten in der Nachrichtensammlung werden mithilfe des Namens der jeweiligen untergeordneten Nachricht einer Liste mit Angaben zu Nachrichtendomäne, -gruppe, -typ, -format, -CCSID und -codierung zugeordnet, wobei jedoch bei zeichenbasierten Nachrichten die CCSID und Codierungsinformationen ignoriert werden. Wenn in der Nachricht keine Zuordnung gefunden wird, kann eine Standardzuordnung erstellt werden.

Da im Voraus nicht bekannt ist, wie viele Container die Antwort enthält, wird als Ausgabe immer eine Nachrichtensammlung erstellt.

Anhand der Eigenschaften zur Syntaxanalyse der Antwortnachricht für den CICSRequest-Knoten können Sie eine Zuordnung zwischen dem Rückgabecontainer und den Angaben zu Nachrichtendomäne, -gruppe, -typ, -format, -CCSID und -codierung herstellen. Insbesondere mithilfe der Eigenschaft Position für Ergebnisdaten kann die Ergebnisbaumstruktur auf einen einzelnen Nachrichtenordner oder ein einzelnes Feld bzw. eine einzelne untergeordnete Baumstruktur für die Ausgabe reduziert werden. Weitere Informationen zur Eigenschaft Position für Ergebnisdaten finden Sie im Abschnitt CICSRequest-Knoten.

Folgende Details müssen für die Nachricht angegeben werden, damit sie zum Eingabeterminal des CICSRequest-Knotens gelangt und in eine Reihe von Containern verarbeitet werden kann und damit diese Container bei der Ausgabe im Antwortkanal zurück in die Nachricht eingefügt werden können:
  • Als Name des Kanals muss ein alphanumerischer Wert mit maximal 16 Zeichen angegeben werden.

    Da der Kanal in WebSphere Message Broker durch eine Nachrichtensammlung dargestellt wird, können Sie den Kanalnamen erstellen, indem Sie den Namen der Nachrichtensammlung festlegen. Die Namen von Nachrichtensammlungen werden mithilfe des Attributs CollectionName festgelegt. Weitere Informationen zum Erstellen einer Nachrichtensammlung und zum Festlegen von deren Namen finden Sie im Abschnitt Nachrichtensammlung mit ESQL erstellen.

  • Folgende Details müssen für jeden Container im Kanal angegeben werden:
    • Einen alphanumerischen Wert mit maximal 16 Zeichen als Namen.

      Da ein Container in WebSphere Message Broker durch eine untergeordnete Nachricht dargestellt wird, können Sie den Containernamen erstellen, indem Sie den Namen der untergeordneten Nachricht festlegen. Weitere Informationen zum Erstellen einer Nachrichtensammlung und zum Festlegen des Namens einer untergeordneten Nachricht finden Sie im Abschnitt Nachrichtensammlung mit ESQL erstellen.

    • Einen Containertyp, z. B. binary oder character.
    • Ein Verzeichnis, in dem die Antwortdaten gespeichert werden sollen.

Mit einem Beispiel wird veranschaulicht, wie ein kanalbasiertes CICS-Programm aufgerufen wird, indem eine Nachrichtensammlung für den CICSRequest-Knoten erstellt und mit Daten gefüllt wird, und wie die Nachrichtensammlung nach diesem Aufruf verarbeitet wird. Der Abschnitt CICS Transaction Server for z/OS Channel Connectivity enthält weitere Informationen hierzu.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:23


KonzeptthemaKonzeptthema | Version 8.0.0.5 | bc16120_