Show TOC

Methoden zur Anbindung an PMILocate this document in the navigation structure

Verwendung

Sie können Ihren Adapter an die Process Monitoring Infrastructure (PMI) anbinden. Im SAP-Umfeld können technische Abläufe über Systemgrenzen hinausgehen (beispielsweise im Business Process Management). Die Anbindung an PMI bietet Ihnen die Möglichkeit einer Überwachung dieser Abläufe über Systemgrenzen hinweg.

PMI sammelt Daten von unterschiedlichen Systemen mit Hilfe von PMI-Agenten, die ihre Daten dann einem zentralen System zur Auswertung zur Verfügung stellen.

Weitere Informationen: Process Monitoring Infrastructure

Voraussetzungen

Bevor PMI-Einträge geschrieben werden können, müssen Sie Zugriff auf ein Objekt erhalten, das PMIAccess implementiert. Verwenden Sie dazu das Objekte PublicAPIAccess .

Mit getPMIAccess() erhalten Sie ein PMIAccess -Objekt.

Weitere Informationen: XI-Message-Interfaces

Integration

Die PMI-Trace-Daten werden erst im Speicher gesammelt und danach asynchron in den PMI-Server geladen. Die Auswirkung auf das zu überwachende System und auf dessen Performanz ist gering.

SAP-Systeme, die mit systemübergreifendem Message-Austausch zu tun habe (beispielsweise tRFC), sind automatisch an PMI angeschlossen.

PMI ist mit dem SAP Solution Manager integriert. Der SAP Solution Manager verbindet die Business-Prozess-Sicht mit dem technischen Tracing über Systemgrenzen hinweg.

Weitere Informationen: Prozess-Monitoring mit PMI (Process Monitoring Infrastructure)

Interface-Überblick

Merkmal Wert

Name

AF PMI Access

Zweck

Schreiben von PMI-Daten

Typ

Interface in Fassade com.sap.aii.af.ifc.facade

Technischer Name

com.sap.engine.interfaces.messaging.api.pmi

Zertifizierung

Optional

Syntax

JavaDoc package com.sap.engine.interfaces.messaging.api.pmi

Aktivitäten

Rufen Sie folgende Methode in Ihrem Adapter auf:

PMIAccess-Methoden

Methodenname Bedeutung

invokeAdapterInboundAgent

Verwenden Sie die Methode in einem Senderadapter, um den Eingang einer neuen Message so bald wie möglich zu melden.

Die Methode verlangt eine Message-ID. Dabei muss es sich nicht um die XI-Message-ID handeln, wenn der MessageIDMapper anschließend dazu verwendet wird, die Message-ID auf eine XI-Message-ID zu mappen.

Weitere Informationen: Message-ID Erzeugung, Persistenz und Mapping

invokeCPALookupAgent

Zeichnet die Adressinformation für eine gegebene Message-ID auf.

Haben Sie invokeAdapterInboundAgent aufgerufen, muss die Methode für einen Senderadapter aufgerufen werden.

invokeIDMappingAgent

Muss im Adapter implementiert werden, um das Mapping zwischen externer ID und XI-MessageID dem PMI bekannt zu geben.

Sie müssen die Methode implementieren, falls invokeAdapterInboundAgent mit externer Message-ID aufgerufen wird und der MessageIDMApper-Service nicht verwendet wird.

invokeAdapterOutboundAgent

Kann in Empfängerrichtung aufgerufen werden, damit der Message-Ausgang aufgezeichnet wird.

Wenn Sie die Methode mit einer externen MessageID aufrufen, muss der Adapter entweder invokeIDMappingAgent aufrufen oder den MessageIDMapper verwenden, um das ID-Mapping PMI bekannt zu geben.

invokeAFStatusAgent, invokeChannelDeterminationAgent, invokeXIRA…

Nur für interne Verwendung

  • Alle weiteren PMIAccess -Methoden brauchen Sie nicht zu berücksichtigen.
  • Falls die XI-Message-ID in einer der oben genannten Methoden gesetzt wird, muss es sich um einen hexdezimalen String handeln, wenn Sie callPMIAgent() verwenden und dieser auf TRUE gesetzt ist.
Beispiel

Der Auszug zeigt eine interne Adaptermethode, die eine bereits umgesetzte Message (Klasse MyMessage ) an ein externes Protokoll sendet. Als zweiter Parameter wird die XI-Message-ID als IGUID weitergeleitet, um so das PMI-Monitoring und das Message-ID-Mapping zu ermöglichen.

package com.mycompany.XI.adapter.impl;

import com.sap.aii.af.service.idmap.MessageIDMapper;

import com.sap.engine.interfaces.messaging.api.pmi.PMIAccess;

import com.sap.guid.IGUID;

public void sendMessage(MyMessage message, IGUID xmbmsgid) throws MyException {

try {

//Important: Use hex string XI message ID representation for PMI

//logging (inside mapper). The archiving interval for the ID mapping is set to 1 day

messageIDMapper.createIDMap(xmbmsgid.toHexString(),externalMsgId,

System.currentTimeMillis() + 1000*3600*24);

} catch(Throwable t) {

}

// Write PMI endpoint entry

try {

PMIAccess.invokeAdapterOutboundAgent(externalMsgId, "JMS", qos);

} catch (Throwable t) {

TRACE.catching(SIGNATURE,t); // Ignore

}