Erzeugung von Audit-Protokolleinträgen
Sie können Einträge in die Audit-Protokolldatenbank schreiben.

uml_auditlog.wmf enthält das Klassendiagram in UML-Darstellung. Öffnen Sie hierzu Word und importieren Sie uml_auditlog.wmf als Grafik
Bevor Audit-Protokolleinträge geschrieben werden können, müssen Sie den AuditMessageKey erzeugen. Dieser Schlüssel wird aus der Message-ID des XI-Message-Objekts und der Richtung zusammengesetzt.
· Verwenden Sie AuditDirection.Inbound für Messages, die vom Adapter-Framework an den Adapter geleitet werden.
· Verwenden Sie AuditDirection.Outbound für Messages, die vom Adapter an das Adapter-Framework geleitet werden.

Die Verwendung der Begriffe Inbound und Outbound entspricht in diesem Fall nicht der üblichen Verwendung in der Process Integration.
Die Message-ID und Richtung bilden den Schlüssel in der Datenbanktabelle des Audit-Protokolls.
Der Log-Eintrag kann wie in dem folgenden Beispiel dargestellt geschrieben werden.

Öffnen Sie hierzu SPIManagedConnectionFactory.java und suchen Sie nach der Zeichenkette CS_TRAUD.
Falls eine der Methoden ohne den Eingabeparameter AuditMessageKey aufgerufen wird, dann werden folgende Schritte durchgeführt:
· Es wird genau eine Audit-Protokollinformation (perThread) ohne AuditMessageKey-Objekt intern in den Cache geschrieben.
· Sobald im selben Thread der Aufruf von addAuditLog() mit einem AuditMessageKey-Objekt zum ersten Mal erfolgt, dann werden die Informationen über die MessageID und Richtung dem im Cache gespeicherten Audit-Protokolleintrag hinzugefügt.
· Mit dem nächsten Aufruf von flushAuditLogEntries() werden alle im Cache gesammelten Einträge in die Audit-Protokolldatenbank geschrieben.

Ein Adapter darf flushAuditLogEntries() für synchrone Messages nicht verwenden, um unnötige Audit-Protokolleinträge zu vermeiden.
Für den Test Ihres Adapters können Sie eine Property im Visual Administrator umsetzen, um so die Payload einer synchronen Message im Message-Monitor anzeigen zu können.
Setzen Sie im Visual Administrator im Service SAP XI AF Messaging folgende Property:
Messaging.syncMessageRemover.removeBody = false

Dieser Parameter darf nur in einem Testsystem geändert werden. In einem Produktivsystem kann diese Einstellung zu OutOfMemory-Exceptions im J2EE Server führen, wenn viele große synchrone Messages den Hauptspeicher verbrauchen.