Eine OLTP Message-Driven Bean empfängt die Inbound Message als record-Parameter der onMessage()-Methode des Interfaces MessageListener. Das empfangene Objekt ist vom Typ BCRecord und enthält ein OltpMessage-Objekt. Aus dem OltpMessage-Objekt können Sie ein OltpMessageContext-Objekt abrufen, das seinerseits Attribute der empfangenen Nachricht enthält und auch den dialogbasierten OLTP Message-Driven Beans als Factory zur Erstellung einer Reply Message dient:
Extrahieren Sie das Objekt
OltpMessageaus dem ObjektBCRecord:OltpMessage inMsg = ((BCRecord)record).getOltpMessage();Richten Sie den Nachrichtenkontext ein:
String inMsgTxt;
OltpMessageContext oltpMsgCtx = inMsg.getMessageContext();Greifen Sie auf den Nachrichteninhalt zu:
Das Objekt
OltpMessageerlaubt einen Zugriff auf den Nachrichteninhalt, der in Form vonOltpMessageRecord-oderOltpMessagePart-Objekten verarbeitet wird. Aus diesen Objekten können Sie den Nachrichteninhalt als Objekt eines der folgenden Typen abrufen:byte[]StringByteContainer
Im Falle eines
OltpMessagePart-Objekts geben Sie an:if (inMsg.countMessageParts() > 0) { OltpMessagePart inMsgPart; Iterator it<OltpMessagePart> = inMsg.getMessageParts(); for ( ; it.hasNext(); ) { inMsgPart = it.next(); inMsgTxt = inMsgPart.getText(); } }Im Falle eines
OltpMessageRecord-Objekts geben Sie an:if (inMsg.countMessageRecords() > 0) { OltpMessageRecord inMsgRec; Iterator it<OltpMessageRecord> = inMsg.getMessageRecords(); for ( ; it.hasNext(); ) { inMsgRec = (OltpMessageRecord) it.next(); inMsgTxt = inMsgRec.getText(); } }Erstellen Sie ein
OLTPMessage-Objekt für die Reply Message:Eine OLTP Message-Driven Bean für dialogbasierte Kommunikation verwendet das Interface
OltpMessageContext, um einOltpMessage-Objekt für die Reply Message zu erstellen:OltpMessage outMsg = oltpMsgCtx.createMessage();Das Objekt
OltpMessagemuss mit dem Inhalt der Reply Message versorgt werden. Verwenden Sie hierzu das ObjektOltpMessageRecordund/oder das ObjektOltpMessagePart.Im Falle eines
OltpMessagePart-Objekts geben Sie an:OltpMessagePart outMsgPart = outMsg.createMessagePart(); outMsgPart.setText("reply"); outMsg.addMessagePart(outMsgPart);Im Falle eines
OltpMessageRecord-Objekts geben Sie an:OltpMessageRecord outMsgRec = outMsg.createMessageRecord(""); outMsgRec.setText("reply"); outMsg.addMessageRecord(outMsgRec);Vor der Rückgabe muss die Reply Message in das Objekt
BCRecordeingesetzt werden, das anschließend von dieser Methode zurückgegeben wird:((BCRecord)record).setOltpMessage(outMsg);
Ein Code-Beispiel finden Sie im Beispiel 12 im Code-Beispiel für Inbound-Kommunikation.