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.

Nachrichtensammlung mithilfe von Java erstellen

Nachrichtensammlungen können mithilfe von Java™ und der Klasse 'MbMessageCollection' erstellt werden. Die Verwendung einer Nachrichtensammlung ist nützlich, wenn Nachrichten für die Syntaxanalyse gruppiert werden sollen oder wenn die Nachrichtensammlung so erstellt werden muss, dass sie eine bestimmte Datenstruktur, z. B. eine CICS Transaction Server for z/OS-Kanaldatenstruktur, darstellt.

Bevor Sie beginnen:

Eine Nachrichtensammlung ist eine Nachricht, die aus einem Header vom Typ Properties und einem einzelnen Domänenelement mit dem Namen Collection besteht. Der Ordner Collection enthält eine Reihe untergeordneter Nachrichten, von denen jede einen Ordner vom Typ Properties, einige Header (z. B. MQMD) und einen Hauptteil enthalten kann. Eine Nachrichtensammlung kann auch keine oder mehrere Attribute haben, die Name/Wert-Paare sind. Der Name eines Attributs muss innerhalb der Nachrichtensammlung eindeutig sein. Ein Standardattribut für die Nachrichtensammlung ist ein Attribut namens CollectionName.

Die folgende Abbildung zeigt ein Beispiel für eine Nachrichtensammlungsstruktur.

Dies ist ein Diagramm der Baumstruktur für eine Nachrichtensammlung. Sein Inhalt wird im umgebenden Text beschrieben.

Sie können mithilfe von Java und der Klasse 'MbMessageCollection' eine Nachrichtensammlung erstellen, um Nachrichten für die Syntaxanalyse zusammenzufassen oder um eine bestimmte Datenstruktur (beispielsweise eine CICS-Kanaldatenstruktur) darzustellen.

So konfigurieren Sie eine Nachrichtensammlung mithilfe von Java:

  1. Erstellen Sie anhand des folgenden Beispiels eine neue Nachricht:
    // Neue Nachricht erstellen 
    MbMessageCollection outMessage = new MbMessageCollection();
    MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
  2. Erstellen Sie für die Sammlung anhand des folgenden Beispiels den Ordner Properties:
    // Übergeordneten Ordner 'Properties' und Daten erstellen
    MbElement omroot = outMessage.getRootElement();
    MbElement properties = omroot.createElementAsFirstChild("Properties");
    MbElement property1 = properties.createElementAsLastChild(
    			MbElement.TYPE_NAME_VALUE, "myProperty1", "propertyData1");
    MbElement property2 = properties.createElementAsLastChild(
    	MbElement.TYPE_NAME_VALUE, "myProperty2", "propertyData2");
  3. Erstellen Sie anhand des folgenden Beispiels Name/Wert-Paare:
    // Attribute für Sammlung erstellen (Name/Wert-Paare)
    MbElement cn  = outMessage.createNameValue("CollectionName", "myCollectionName");
    MbElement nv1 = outMessage.createNameValue("NAME1", "Value1");
    MbElement nv2 = outMessage.createNameValue("NAME2", 12345);

    Wie Nachrichtenordner ist auch das Domänenelement immer das letzte untergeordnete Element der Nachrichteneigenschaft.

  4. Das folgende Beispiel veranschaulicht die Erstellung einer Nachricht in der Sammlung. Die Schritte 1, 2 und 3 werden wiederholt.
    public void evaluate(MbMessageAssembly inAssembly) throws MbException {
    	MbOutputTerminal out = getOutputTerminal("out");
    
    	// Neue Nachricht erstellen 
    	MbMessageCollection outMessage = new MbMessageCollection();
    	MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
    
    	// Übergeordneten Ordner 'Properties' und Daten erstellen
    	MbElement omroot = outMessage.getRootElement();
    	MbElement properties = omroot.createElementAsFirstChild("Properties");
    	MbElement property1 = properties.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myProperty1", "propertyData1");
    	MbElement property2 = properties.createElementAsLastChild(
    		MbElement.TYPE_NAME_VALUE, "myProperty2", "propertyData2");
    
    	// Attribute für Sammlung erstellen (Name/Wert-Paare)
    	MbElement cn  = outMessage.createNameValue("CollectionName", "myCollectionName");
    	MbElement nv1 = outMessage.createNameValue("NAME1", "Value1");
    	MbElement nv2 = outMessage.createNameValue("NAME2", 12345);
    		// Ordner 1 erstellen
    		MbElement folder1 = outMessage.createFolder("folder1");
    
    		// Eigenschaften für Ordner 1 erstellen
    		MbElement folder1properties = folder1.createElementAsFirstChild("Properties");
    		MbElement folder1property1 = folder1properties.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myFolder1Property1", "folder1propertyData1");
    		MbElement folder1property2 = folder1properties.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myFolder1Property2", "folder1propertyData2");
    
    		// Hauptteil von Ordner 1 erstellen
    		MbElement mrm = folder1.createElementAsLastChild("MRM");
    
    		// Nachrichtendomänenelement für Ordner 1 erstellen
    		MbElement msg = mrm.createElementAsLastChild(MbElement.TYPE_NAME,
    				"msg", null);
    
    		// Daten im Nachrichtenhauptteil für Ordner 1 erstellen
    		MbElement data = msg.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "data", "myData");
    
    		// Ordner 2 erstellen
    		MbElement folder2 = outMessage.createFolder("Folder2");
    
    		// Eigenschaften für Ordner 2 erstellen
    		MbElement folder2properties = folder2.createElementAsFirstChild("Properties");
    		MbElement folder2property1 = folder2properties.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myFolder2Property1", "folder2propertyData1");
    		MbElement folder2property2 = folder2properties.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myFolder2Property2", "folder2propertyData2");
    
    		// Hauptteil von Ordner 2 erstellen
    		MbElement xmlnsc = folder2.createElementAsLastChild("XMLNSC");
    
    		// Nachrichtendomänenelement für Ordner 2 erstellen
    		MbElement msg2 = xmlnsc.createElementAsLastChild(
    				MbElement.TYPE_NAME, "msg2", null);
    
    		// Daten im Nachrichtenhauptteil für Ordner 2 erstellen
    		MbElement data2 = msg2.createElementAsLastChild(
    				MbElement.TYPE_NAME_VALUE, "myData2", "myXMLData");
    
    	try {
    		out.propagate(outAssembly);
    	} finally {
    				// 'outMessage' auch im Falle einer Ausnahme löschen
    		outMessage.clearMessage();
    	}
    }
Die folgende Beispielausgabe eines Trace-Knotens veranschaulicht die Nachrichtenstruktur, die mit diesem Java-Code erstellt wurde:
TraceOutput:  Root ( ['MQROOT' : 0xee3a90]
		(0x01000000:Name):Properties = ( ['MQPROPERTYPARSER' : 0xae4370]
				(0x03000000:NameValue):myProperty1 = 'propertyData1' (CHARACTER)
				(0x03000000:NameValue):myProperty2 = 'propertyData2' (CHARACTER)
	)
		(0x01000000:Name):Collection = ( ['COLLECTION' : 0x58d0b08]
				(0x03000000:NameValue):CollectionName = 'myCollectionName' (CHARACTER)
				(0x03000000:NameValue):NAME1          = 'Value1' (CHARACTER)
				(0x03000000:NameValue):NAME2          = 12345 (INTEGER)
				(0x01000000:Name     ):Folder1     = ( ['COLLECTIONFOLDER' : 0xee42e8]
						(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0xae39e8]
								(0x03000000:NameValue):myFolder1Property1 = 'folder1propertyData1' (CHARACTER)
								(0x03000000:NameValue):myFolder1Property2 = 'folder1propertyData2' (CHARACTER)
			)
						(0x01000021:Name+):MRM        = ( ['mrm' : 0xdce588]
								(0x01000000:Name):msg = (
					(0x03000000:NameValue):data = 'myData' (CHARACTER)
				)
			)
		)
				(0x01000000:Name     ):Folder2     = ( ['COLLECTIONFOLDER' : 0xee3d58]
						(0x01000000:Name  ):Properties = ( ['MQPROPERTYPARSER' : 0xae4cf8]
								(0x03000000:NameValue):myFolder2Property1 = 'folder2propertyData1' (CHARACTER)
								(0x03000000:NameValue):myFolder2Property2 = 'folder2propertyData2' (CHARACTER)
			)
						(0x01000000:Folder):XMLNSC     = ( ['xmlnsc' : 0xee2188]
								(0x01000000:Folder):msg2 = (
					(0x03000000:PCDataField):myData2 = 'myXMLData' (CHARACTER)
				)
			)
		)
	)
)
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

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


TaskthemaTaskthema | Version 8.0.0.5 | bc16080_