
Synchrone Messages haben Quality-of-Service Best Effort . Die Anwendung hat auf der einen Seite dafür zu sorgen, dass keine doppelten Messages oder Datenverluste entstehen. Auf der anderen Seite erhält die Anwendung Error-Messages. Best Effort bedeutet darüber hinaus, dass keine transaktionalen Konzepte einbezogen sind.
Synchrone Response-Message: Öffnen Sie hierzu CCIInteraction..java und suchen Sie nach der Zeichenkette CS_SYNCRESP.
Application Error: Öffnen Sie hierzu CCIInteraction.java und suchen Sie nach der Zeichenkette CS_SYNCAPPERR.
Empfängt der Adapter solch ein XIInteractionSpec , muss er einen instanziierten und gefüllten XIMessageRecord (im Falle einer erfolgreichen Response-Message oder eines Application-Errors) in den Aufruf von XIInteractionSpec.execute() oder im Fehlerfall XIAdapterException zurückgeben.
Ihr letztes eigenes Modul muss eine Response-Message an den aufzurufenden Modul-Prozessor zurückschicken.
Sie können folgende ErrorInfo-Attribute lesen oder setzen:
| Name | Beschreibung |
|---|---|
|
ErrorCode |
Anwendungsfehlercode |
|
ErrorArea |
Sollte den Adapter-Namespace und den Adaptertyp enthalten. |
|
ErrorCategory |
Muss zwingend auf Application gesetzt sein. |
|
AdditionalErrorText |
Text zum Anwendungsfehler |
|
ApplicationFaultInterface |
Legt das Interface im Enterprise Services Repository fest, das Anwendungsfehler-Messages bearbeitet. |
|
ApplicationFaultInterfaceNamespace |
Namensraum des Interface |
Zum Lesen und Setzen der Attribute stehen Ihnen folgende Methoden zur Verfügung:
ErrorInfo.getSupportedAttributeNames()
…
try {
myRespMsg = myAdapter.call(myReqMsg);
if (myRespMsg != null) //synchronous
moduleData.setPrincipalData((Object) myRespMsg.getXIMessage());
else // asynchronous
moduleData.setPrincipalData(null);
…
catch(Exception e) {
{
TRACE.catching(SIGNATURE, e);
ModuleException me = new ModuleException("Temporary error: Adapter call failed. Reason: " + e.getMessage(), e);
TRACE.throwing(SIGNATURE, me);
throw me;
}
…