Eigenschaften und Transaktionskontextdaten für ARM-Anwendungen

Request Metrics stellt integrierte Instrumente für die Überwachung von Transaktionsabläufen bereit. Die von Request Metrics erfassten Daten können an einen unterstützen ARM-Agenten (Application Response Measurement) gesendet werden.

ARM-Anwendungseigenschaften

Die folgenden Tabellen enthalten die ARM-Anwendungseigenschaften, die verwendet werden, wenn Request Metrics einen ARM-Agenten der Version 4.0 initialisiert.

Tabelle 1. Namen und Werte der Identitätseigenschaften. Die folgenden Tabellen enthalten die ARM-Anwendungseigenschaften, die verwendet werden, wenn Request Metrics einen ARM-Agenten der Version 4.0 initialisiert.
Namen der Identitätseigenschaften Wert
Zellenname Der Name der Zelle, zu der der Server gehört.
Version Die Version von WebSphere Application Server.
Tabelle 2. Anwendungseigenschaften und -werte. Die folgenden Tabellen enthalten die ARM-Anwendungseigenschaften, die verwendet werden, wenn Request Metrics einen ARM-Agenten der Version 4.0 initialisiert.
Anwendungseigenschaften Wert
Registrierter Anwendungsname WebSphere:<Servertyp>

Die gültigen Werte für <Servertyp> sind APPLICATION_SERVER, ONDEMAND_ROUTER oder PROXY_SERVER.

Anwendungsgruppe <Servername>
Anwendungsinstanz <Knotenname>.<Servername>
Das folgende Codebeispiel zeigt, wie WebSphere Application Server eine ARM-Anwendung erstellt.
String serverType; // Der Servertyp, z. B. APPLICATION_SERVER
String version; // WebSphere-Version
String sCellName; // Zellenname des DMGR
String sAppInstance. // <Kurzname_des_Knotens>.<Kurzname_des_Servers>
String sServerInstance; // Kurzname des Servers
String sWasName = "WebSphere:" + serverType;
String[] IDNAMES = new String[]{"Cell Name", "Version"};
ArmIdentityProperties appIdentity = txFactory.newArmIdentityProperties(IDNAMES, new String[]{sCellName, version}, null);
ArmApplicationDefinition appDef = txFactory.newArmApplicationDefinition( sWasName, appIdentity, null );
ArmApplication app = txFactory.newArmApplication(appDef, sServerInstance, sAppInstance, null );

ARM-Transaktionstypen

Sie können das folgende Codebeispiel verwenden, um eine Instanz einer ARM-Transaktion zu erstellen.
String[] contextNames; // Namen für Kontextdaten, z. B. Port, QueryString, URI, EJBName
String tranIdentityName; // Die in der folgenden Tabelle gezeigten Transaktionstypen, z. B. URI, EJB
String appDef; // Im vorherigen Code-Snippet unter ARM-Anwendungseigenschaften definiert und erstellt
String app; // Im vorherigen Code-Snippet unter ARM-Anwendungseigenschaften definiert und erstellt
ArmIdentityPropertiesTransaction props = armFactory.newArmIdentityPropertiesTransaction( null, null,  contextNames, null );   
ArmTransactionDefinition atd = armFactory.newArmTransactionDefinition(appDef, identityName, props, (ArmID)null);
	ArmTransaction at = txFactory.newArmTransaction(app, atd);
In den folgenden Abschnitten werden alle ARM-Transaktionstypen und ihre Kontextnamen beschrieben. Einige Transaktionstypen werden nicht instrumentiert, wenn die Tracestufe nicht auf DEBUG eingestellt ist. Außerdem sind nicht alle Transaktionen in allen Typen von Servern vorhanden. Bei allen Transaktionstypen und Kontextnamen muss die Groß-/Kleinschreibung beachtet werden.

Uniform Resource Identifier (URI)

Dieser Transaktionstyp ist der Uniform Resource Identifier (URI) für Servlet- und JSP-Anforderungen. Die folgenden Transaktionstypen und Kontextnamen sind in allen Servertypen verfügbar.

Tabelle 3. Transaktionstyp: URI. Die folgenden Transaktionstypen und Kontextnamen sind in allen Servertypen verfügbar.
Transaktionstyp: URI
Kontextname Beschreibung
Port Der TCP/IP-Port, an dem die Anforderung ankommt, angegeben mit einer Zeichenfolgedarstellung des Dezimalwerts.

Beispiel: 9080

QueryString Der Teil des dynamischen URI, der die Suchparameter der Anforderung im Abfragesegment der URI-Zeichenfolge enthält, einschließlich des Fragezeichens (?).

Beispiel: selection=EJB&lookup=GBL&trans=CMT

URI Der eingehende Anforderungs-URI der verwendeten Servlet- bzw. JSP-Datei.

Beispiel: /hitcount

Enterprise JavaBeans (EJB)

Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 4. Transaktionstyp: EJB. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: EJB
Kontextname Beschreibung
EJBName Der vollständig qualifizierte Name der EJB-Klasse, gefolgt vom Methodennamen mit einem Punkt (.) dazwischen, z. B. com.mypackge.MyEJBClass.mymethod.

Beispiel: com.ibm.defaultapplication.IncrementBean.create

ApplicationName Der Name der J2EE-Anwendung (Java™ 2 Platform, Enterprise Edition), die die Enterprise-Bean enthält.

Beispiel: DefaultApplication

ModuleName er Name des J2EE-Moduls, das die Enterprise-Bean enthält.

Beispiel: Increment.jar

Servletfilter

Der Transaktionstyp Servletfilter ist nur auf der Tracestufe DEBUG verfügbar. Für die anderen Stufen werden keine Servletfilter instrumentiert. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 5. Transaktionstyp: Servletfilter. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Servletfilter
Kontextname Beschreibung
FilterName Der Name des Servletfilter für das Servlet.

Beispiel: ALoginFilter

Java Database Connectivity (JDBC)

Der Transaktionstyp JDBC ist nur auf der Tracestufe DEBUG verfügbar. Für die anderen Stufen ist JDBC ein Blockaufruf. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 6. Transaktionstyp: JDBC. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: JDBC
Kontextname Beschreibung
ClassName Der Name der Schnittstelle für den JDBC-Aufruf. Dieser Name ist nicht der Name der eigentlichen Klasse.

Beispiel: java.sql.PreparedStatement

MethodName Der Methodenname für den JDBC-Aufruf.

Beispiel: executeUpdate()

Java EE Connector Architecture (JCA)

Dieser Transaktionstyp ist nur auf der Tracestufe DEBUG verfügbar. Für die anderen Stufen ist JCA ein Blockaufruf. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 7. Transaktionstyp: JCA. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: JCA
Kontextname Beschreibung
ClassName Der Klassenname für den JCA-Aufruf.

Beispiel: javax.resource.spi.ManagedConnection

MethodName Der Methodenname für den JCA-Aufruf.

Beispiel: getConnection(Subject, ConnectionRequestInfo)

Web-Service-Provider

Der Transaktionstyp "Web-Service-Provider" ist für serverseitige Web-Service-Anforderungen bestimmt. Dieser Transaktionstyp und die Kontextnamen Wsdlport und Operation sind in allen Servertypen verfügbar. Die Kontextnamen Transport, NameSpace und InputMessage sind nur in Anwendungsservern verfügbar.

Tabelle 8. Transaktionstyp: Web-Service-Provider. Dieser Transaktionstyp und die Kontextnamen Wsdlport und Operation sind in allen Servertypen verfügbar. Die Kontextnamen Transport, NameSpace und InputMessage sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Web-Service-Provider  
Kontextname Beschreibung
WsdlPort Der Name des WSDL-Ports, der dem Web-Service zugeordnet ist.

Beispiel: AccountManager

Operation Der Operationsname, der dem Web-Service zugeordnet ist.

Beispiel: createNewAccount

Transport Der Transportname, der dem Web-Service zugeordnet ist.

Beispiel: http

NameSpace Der Namespace, der dem Web-Service zugeordnet ist.

Beispiel: http://accountmanager.mycorp.com

InputMessage Der Eingabenachrichtenname, der dem Web-Service zugeordnet ist.

Beispiel: createNewAccountRequest

Web-Service-Anforderer

Der Transaktionstyp "Web-Service-Anforderer" ist nur auf der Tracestufe DEBUG verfügbar. Für die anderen Stufen ist Web-Service-Anforderer ein Blockaufruf. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 9. Transaktionstyp: Web-Service-Anforderer. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Web-Service-Anforderer
Kontextname Beschreibung
WsdlPort Der Name des WSDL-Ports, der dem Web-Service zugeordnet ist.

Beispiel: AccountManager

Operation Der Operationsname, der dem Web-Service zugeordnet ist.

Beispiel: createNewAccount

Transport Der Transportname, der dem Web-Service zugeordnet ist.

Beispiel: http

Parameter Die Parameter für die Web-Service-Anforderung.

Beispiel: customerName,addressStreet,addressCity,addressState,addressZip

Java Message Service (JMS)

Der Transaktionstyp JMS ist nur für MDB-Szenarien im Standard-Messaging, einschließlich System Integration Bus (SIB) und MQ bestimmt. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 10. Transaktionstyp: JMS. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: JMS
Kontextname Beschreibung
DestinationName Der Name der Zielwarteschlange bzw. des Zieltopic für Java™ Message Service (JMS).

Beispiel: MyBusiness.Topic.Space

MessageSelector Der Nachrichtenselektor für JMS.
Provider Gültige Providerwerte sind Default Messaging, SIB und MQ.

Beispiel: Default Messaging

Senden und Empfangen über JMS

Dieser Transaktionstyp ist nur auf der Tracestufe DEBUG verfügbar. Für alle anderen Stufen ist das Senden und Empfangen über JMS ein Blockaufruf. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 11. Transaktionstyp: Senden/Empfangen über JMS . Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Senden/Empfangen über JMS
Kontextname Beschreibung
ClassName Der Name der Klasse im JMS-Provider, die den Aufruf absetzt.

Beispiel: com.ibm.ws.sib.api.jms.impl.JmsTopicPublisherImpl

MethodName Der Name der Methode im JMS-Provider, die den Aufruf absetzt.

Beispiel: sendMessage

Senden und Empfangen über den Service Integration Bus (SIB)

Dieser Transaktionstyp ist nur auf der Tracestufe DEBUG verfügbar. Für alle anderen Stufen ist das Senden und Empfangen über SIB ein Blockaufruf. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 12. Transaktionstyp: Senden/Empfangen über SIB. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Senden/Empfangen über SIB
Kontextname Beschreibung
ClassName Der Name der Klasse in der SIB-Schicht, die den Aufruf absetzt.

Beispiel: com.ibm.ws.sib.processor.impl.ProducerSessionImpl

MethodName Der Name der Methode in der SIB-Schicht, die den Aufruf absetzt.

Beispiel: send

BusName Der Name des Service Integration Bus, für den dieser Aufruf abgesetzt wird.
DestinationName Der Name des SIB-Ziels, für das dieser Aufruf abgesetzt wird.

SIB-MDB

Der Transaktionstyp "SIB-MDB" ist nur in Anwendungsservern verfügbar.

Tabelle 13. Transaktionstyp: SIB-MDB. Der Transaktionstyp "SIB-MDB" ist nur in Anwendungsservern verfügbar.
Transaktionstyp: SIB-MDB.
Kontextname Beschreibung
BusName Der Name des SIB, in dem sich das Ziel, an dem die MDB empfangsbereit ist, befindet.
DestinationName Der Name des SIB, für den diese MDB empfangsbereit ist.
MessageSelector Der von dieser MDB verwendete Nachrichtenselektor.
MdbDiscriminator Der von dieser MDB verwendete Diskriminator.
Provider Der Providertyp, für den diese MDB bestimmt ist.

Beispiel: Default Messaging oder SIB

Vermittlung über SIB

Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 14. Transaktionstyp: Vermittlung über SIB. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Vermittlung über SIB
Kontextname Beschreibung
ClassName Der Name der Klasse, in der der Aufruf abgesetzt wird.
MethodName Der Name der Methode, in der der Aufruf abgesetzt wird.
MediationName Der Mediationsname für JMS.

Beispiel: myMediation

BusName Der Name des Service Integration Bus (SIB) für JMS.

Beispiel: thisBusName

DestinationName Der Zielname für JMS.

Beispiel: myMessageQueue

Asynchrone Beans

Der Transaktionstyp "Asynchrone Beans" ist für Zeitgeber, Alerts, verzögerte Starts und EE Concurrency-Tasks für asynchrone Beans bestimmt, für die LONGRUNNING_HINT nicht festgelegt ist. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 15. Transaktionstyp: Asynchrone Beans. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Asynchrone Beans
Kontextname Beschreibung
Typ Der Typ der asynchronen Bean-Task.

Beispiel: COMMONJ_TIMER

ClassName Der Name der Klasse, die die asynchrone Bean-Task ausführt.

Beispiel: com.mycorp.MyTaskClass

Java Naming and Directory Interface (JNDI)

Der Transaktionstyp JNDI ist nur auf der Tracestufe DEBUG verfügbar. Für die anderen Tracestufen werden keine JNDI-Aufrufe instrumentiert. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 16. Transaktionstyp: JNDI. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: JNDI
Kontextname Beschreibung
JNDIName Der JNDI-Lookup-Name.

Beispiel: ejbJndiName

Portlet

Dieser Transaktionstyp "Portlet" und die Kontextnamen sind nur in Anwendungsservern verfügbar.

Tabelle 17. Transaktionstyp: Portlet. Dieser Transaktionstyp und die Kontextnamen sind nur in Anwendungsservern verfügbar.
Transaktionstyp: Portlet
Kontextname Beschreibung
Methode Die Methode des derzeit verwendeten Portlets. Die gültigen Werte sind "action" und "render".
Fenster-ID Die Fenster-ID des derzeit verwendeten Portlets.
URI (Dies ist der Name einer ARM-Transaktionskontexteigenschaft und darf nicht mit der expliziten URI-Eigenschaft für ARM-Transaktionen, die in WebSphere-Servlettransaktionen angegeben ist, und insbesondere nicht mit dem EWLM-Richtlinienfilter (Enterprise Workload Manager) "EWLM: URI" verwechselt werden.) Der Kontextpfad der aktuellen Portletanforderung.

ARM-Korrelatoren über die Protokolle HTTP und SOAP

Bei eingehenden HTTP-Anforderungen prüft WebSphere Application Server die Groß-/Kleinschreibung des HTTP-Headers “ARM_CORRELATOR” für den eingehenden ARM-Korrelator. Der Anwendungsserver lässt den Fluss von ARM-Korrelatoren über abgehende HTTP-Anforderungen nicht zu.

Für eingehende SOAP-Anforderungen sucht WebSphere Application Server wie folgt im SOAP-Header nach einem Element:
  • element ="arm_correlator";
  • namespace URI = "http://websphere.ibm.com",
  • prefix = "reqmetrics";
  • actor URI = "reqmetricsURI";
Für abgehende SOAP-Anforderungen erstellt WebSphere Application Server einen neuen SOAP-Header und übergibt die Zeichenfolge für den ARM-Korrelator als Textknoten im Header. Beispiel:
  • element ="arm_correlator";
  • namespace URI = "http://websphere.ibm.com",
  • prefix = "reqmetrics";
  • actor URI = "reqmetricsURI";
Das folgende Beispiel zeigt einen SOAP-Header mit einem ARM-Korrelator. Der ARM-Korrelator muss im Hexadezimalformat der Bytefeldgruppe des ARM-Korrelators übergeben werden, unabhängig davon, ob HTTP oder SOAP verwendet wird.
<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<reqmetrics:arm_correlator soapenv:actor="reqmetricsURI" xmlns:reqmetrics="http://websphere.ibm.com">
37000000000000000000
</reqmetrics:arm_correlator>
</soapenv:Header>

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rprf_armproperties
Dateiname:rprf_armproperties.html