!--a11y-->
Das MessageSpecifier-Interface 
Angenommen, sie möchten ein Attachment an Ihre Message hängen. In diesem Fall muß die Proxy-Laufzeit dies beim Zusammenbauen der Message berücksichtigen. Die Proxy-Laufzeit stellt ein Interface MessageSpecifier zur Verfügung, um spezielle Dienste der Proxy-Laufzeit nutzen zu können.
Das Interface MessageSpecifier ist ein Attribut Ihres generierten Client- beziehungsweise Server-Proxies und hat den vollqualifizierenden Namen com.sap.aii.proxy.xiruntime.core.MessageSpecifier.
Auf Sender-Seite können Sie nicht direkt auf das MessageSpecifier-Interface zugreifen, weil der Zugriff auf das Proxy-Objekt über die Proxy-Bean gekapselt ist. Statt dessen müssen Sie sich über die Proxy-Bean-Methoden eine Instanz des MessageSpecifier-Interface holen, dessen Methoden verwenden (siehe unten) und wieder an die Proxy-Klasse zurückschicken. Es gibt die folgenden Methoden:
· MessageSpecifier $messageSpecifier()
Holt eine Instanz des MessageSpecifier-Interface und initialisiert alle Attribute.
· MessageSpecifier $messageSpecifierRead()
Liest das MessageSpecifier-Interface, ohne bisher gesetzte Attribute zu initialisieren. Dies ist beispielsweise notwendig, wenn Sie die Methode getMessageIdLastSent() nach einem Proxy-Aufruf verwenden wollen.

Sie könnnen diese Methode nur verwenden, wenn Sie die Client-Bean als Stateful Session Bean deployen. Nur so ist sichergestellt, dass die J2EE-Anwendung auf Client-Seite beim Methoden-Zugriff auf die Bean tatsächlich immer dieselbe Bean-Instanz referenziert. Bei Stateless Beans kann das von Methode zu Methode eine andere Instanz aus dem Bean-Pool sein. Den Typ der Bean geben Sie im Deployment-Deskriptor (Datei ejb-jar.xml) an.
· void $messageSpecifier(MessageSpecifier ms)
Schickt die MessageSpecifier-Instanz an die Proxy-Klasse zurück.
Messaging-System (MS) für J2EE-Anwendung
Methode |
Bedeutung |
public void setMessagingTimeoutInMSec |
Legt die Gültigkeitsdauer einer Message fest: · Kann eine asynchrone Message nicht innerhalb der Gültigkeitsdauer an den Integration Server versendet werden, wird sie für das MS-Monitoring persistiert. · Erhält das Messaging-System auf eine synchrone Message innerhalb der Gültigkeitsdauer keine Response-Message, wird ein Fehler an die Anwendung zurückgegeben. Falls die Response-Message danach noch empfangen wird, persistiert das Messaging-System diese Message ebenfalls für das MS-Monitoring. |
public void |
Mit dieser Methode können Sie hintereinander mehreren asynchronen Messages einen Serialisierungskontext zuweisen, um für diese Messages den Quality of Service exactly once in order zu garantieren. Der String id darf höchstens 16 Zeichen lang sein und nur Großbuchstaben enthalten. Alle asychronen Messages mit dem gleichen Serialisierungskontext werden beim Empfänger in der gleichen Reihenfolge empfangen, wie sie beim COMMIT WORK auf der Sender-Seite in die Ausgangs-Queue aufgenommen worden sind. |
public String |
Gibt den vorher gesetzten Serialisierungskontext zurück. |
Payload (siehe auch: Abrufen der Payload)
Methode |
Bedeutung |
public String getInputPayload() |
Gibt die Payload der Input-Message zurück (nach dem Aufruf eines Client-Proxies oder während der Inbound-Verarbeitung) |
public String getOutputPayload() |
Gibt die Payload der Output-Message zurück (nach dem Aufruf eines Client-Proxies) |
public
void |
Mit dieser Methode können Sie die Payload selbst setzen, anstatt sie über die an das Proxy übergebenen Daten erzeugen zu lassen. In diesem Fall ist die Anwendung für das korrekte Format der Payload verantwortlich. Die Proxy-Laufzeit füllt nur den Message-Header und leitet die Message mit der übergebenen Payload weiter. |
Methode |
Bedeutung |
public void addReceiverService( String service) |
Hinzufügen eines Service zur Menge aller Empfänger-Services des Client-Proxies |
public
void addReceiver( |
Hinzufügen eines Empfängers zur Menge aller Empfänger des Client-Proxies. Die Angabe von Kommunikationspartner, vergebender Agentur und Identifikationsschema ist wichtig bei Unternehmens-übergreifender Kommunikation. |
public boolean removeReceiverService(String service) |
Löschen eines spezifizierten Service aus der Menge aller Empfänger-Services des Server-Proxies |
public void clearReceivers() |
Löschen aller spezifizierten Empfänger. |
Methode |
Bedeutung |
public MessageAttachment createAttachment( String name, String type, Object data) |
Erzeugt ein neues Attachment-Objekt. Für type sollte der MIME-Type angegeben werden (zum Beispiel 'text/html'). |
public MessageAttachment addAttachment( String name, String type, Object data) |
Erzeugt ein neues Attachment-Objekt, fügt dieses der Menge der Attachments hinzu und gibt das Attachment-Objekt zurück. |
public void addAttachment( MessageAttachment attachment) |
Fügt der Menge der Attachments ein neues hinzu. |
public boolean removeAttachment(MessageAttachment attachment); |
Löscht das spezifizierte Attachment |
public void clearAttachments(); |
Löscht alle Attachments. Diese Methode sollten Sie auf jeden Fall auf Empfängerseite aufrufen, damit empfangene Attachments nicht zurückgeschickt werden. |
public MessageAttachment getAttachment(String name); |
Gibt das Attachment mit dem Namen name zurück. |
public java.util.Enumeration getAttachments(); |
Gibt eine Aufzählung aller Attachments zurück. |
Ermitteln des Senders beim Empfänger
Methode |
Bedeutung |
public String |
Ermitteln des Service einer empfangenen Message beim Empfänger. |
public
String |
Ermitteln des Namens eines Kommunikationspartners einer empfangenen Message beim Empfänger. |
public
String |
Ermitteln der vergebenen Agentur einer empfangenen Message beim Empfänger. |
public
String |
Ermitteln des Identifikationsschemas einer empfangenen Message beim Empfänger. |
Message-ID abfragen
Methode |
Bedeutung |
public |
Abfrage der Message-ID bei Empfang einer Message. Mit der Methode toString() erhalten Sie die String-Repräsentation der ID. |
public |
Abfrage der Message-ID nach dem Versenden einer Message. Mit der Methode toString() erhalten Sie die String-Repräsentation der ID. |
public
com.sap.guid.IGUID |
Abfrage der ID einer Message, die von dieser Message referenziert wird. Beispielsweise ‚merkt’ sich eine Response-Message über dieses Feld zu welcher Request-Message sie gehört. |
Anfordern von Acknowledgments
Methode |
Angefordertes Acknowledgment |
public
void |
Positives System-Acknowledgment Der Empfänger wurde erfolgreich erreicht; für Server-Proxies bedeutet dies, dass die implementierende Klasse zum Server-Proxy gefunden wurde und die Methode zur Inbound-Verarbeitung aufgerufen werden konnte.
|
public
void |
Negatives System-Acknowledgment Die Laufzeit der Exchange Infrastructure meldet einen Fehler während der Übertragung beziehungsweise der Verarbeitung der Message auf dem Weg zum Empfänger. Beispielsweise kann ein Fehler in einem Mapping-Programm oder ein nicht im Empfängersystem vorhandenes Server-Proxy dieses Acknowledgment auslösen. |
public
void |
Positives Anwendungs-Acknowledgment Die Message wurde vom Empfänger erfolgreich verarbeitet. |
public
void |
Negatives Anwendungs-Acknowledgment Während der Verarbeitung der Message beim Empfänger ist ein Fehler aufgetreten. |

Wann eine Message von einem Empfänger erfolgreich
verarbeitet worden ist, hängt vom Empfänger ab: Bei einem Server-Proxy ist
dies der Fall, wenn die beim Empfänger ausgeführte Methode keine Ausnahme
ausgelöst hat, bei einem Integrationsprozess können Sie im Sendeschritt
explizit ein Acknowledgment versenden (siehe Abschnitt Acknowledgment senden unter
Sendeschritt).