Clientinformationen implizit definieren

Wenn Sie Clientinformationen in Ihrer Datenbank aufzeichnen, stehen Ihnen für die Übergabe der WebSphere Application Server-Clientdaten in Datenbankverbindungen zwei Möglichkeiten zur Verfügung.

Sie können die Informationen zu Verbindungen explizit übergeben, indem Sie eine IBM® proprietäre API, "setClientInformation(Properties)", für das Objekt com.ibm.websphere.rsadapter.WSConnection in Ihrem Anwendungscode aufrufen. Das Objekt com.ibm.websphere.rsadapter.WSConnection ist in der Datei Stammverzeichnis_für_Plug-ins/com.ibm.ws.runtime.jar enthalten. In einigen Fällen kann es jedoch von Vorteil sein, wenn WebSphere Application Server Clientinformationen an Datenbankverbindungen übergibt. Diese Methode zum Festlegen von Clientinformationen wird als implizit bezeichnet. In folgenden Situationen sollten Sie sich für die implizite Methode entscheiden:
  • Sie möchten keine proprietären APIs verwenden oder
  • Ihre Anwendung verwendet CMP (Container-Managed Persistence), sodass Sie mit der proprietären API keine Clientinformationen über Datenbankverbindungen festlegen können.

Die Tracefunktion von WebSphere Application Server bietet die Möglichkeit, Clientinformationen implizit zu definieren. Zum Aktivieren oder Inaktivieren der Übergabe von Clientinformationen können Sie eine von zwei speziellen Tracegruppen angeben: WAS.clientinfo oder WAS.clientinfopluslogging.

Mögliche Szenarien während der Laufzeit

  • Gemeinsame Nutzung von Verbindungen

    Wenn Verbindungen gemeinsam genutzt werden, definiert WebSphere Application Server die Clientinformationen nur in der ersten abgerufenen Verbindungskennung. Wenn die gemeinsame Nutzung von Verbindungen aktiviert ist und zwei getConnection-Methoden aufgerufen werden (was zwei Kennungen für eine Verbindung zur Folge hat), führt nur der erste Aufruf von getConnection zur Übergabe der Clientinformationen an die Back-End-Datenbank. Dieses Szenario gilt nicht für die explizite Übergabe von Clientinformationen, wo jede Methode setClientInformation unabhängig von der gemeinsam Verbindungsnutzung an die Datenbank weitergegeben wird.

  • Implizite/explizite Koexistenz
    Wenn Sie Clientinformationen sowohl explizit als auch implizit weitergeben, werden einige explizit und einige implizit definierte Informationen kombiniert. Die explizit gesetzten Informationen haben jedoch in der Regel Vorrang. Wenn die Anwendung beispielsweise die Accounting-Informationen des Clients auf "myAccountingInfo" setzt, sieht die letztlich an die Back-End-Datenbank übergebene accountingInfo-Zeichenfolge in etwa wie folgt aus:
    000325_WSRdbManagedConnectionImpl@1234_myAccountingInfo: 
    Hier ist 000325 die Thread-ID und WSRdbManagedConnectionImpl@1234 die WebSphere-Verbindungsinstanz.
  • Zurücksetzen der Clientinformationen

    Wenn in Application Server die Weitergabe von Clientinformationen konfiguriert ist, werden Clientinformationen zurückgesetzt, wenn eine Verbindung an den Pool zurückgegeben wird. Dies gilt jedoch nur, wenn die Traceverfahren WAS.clientinfo und WAS.clientinfopluslogging inaktiviert sind (d. h. WAS.clientinfo=all=disabled:WAS.clientinfopluslogging=all=disabled).

    Bei der expliziten Methode werden die Informationen nur zurückgesetzt, wenn die Anwendung setClientInformation(null) für die WSConnection-Verbindung absetzt.

WAS.clientinfo

Die implizite Methode ist standardmäßig inaktiviert. Sie können diese Methode dynamisch, d. h., ohne den Anwendungsserver zu stoppen und zu starten, oder statisch durch Setzen der WebSphere Application Server-Tracegruppe WAS.clientinfo=all=enabled aktivieren.

[AIX Solaris HP-UX Linux Windows][IBM i]Über die Datenbankverbindung werden implizit der Benutzername, die Benutzerposition und der Anwendungsname erfasst und definiert.

[z/OS]Über die Datenbankverbindung werden implizit die Thread-ID, der Benutzername, die Benutzerposition und der Anwendungsname erfasst und definiert.

Wichtig: Benutzername und Benutzerposition können implizit erfasst und nur in der Datenbankverbindung festgelegt werden, wenn Sie Java™-2-Sicherheit aktivieren.
[z/OS]Thread-ID
[z/OS]Ein achtstelliger Hexadezimalwert, der den Java-Thread identifiziert, der die Verarbeitung der Anwendungsanforderung in WebSphere Application Server steuert. Diese ID wird im Trace-Header angezeigt.
Benutzername
Der Name des Benutzers, der die Anwendungsanforderung eingeleitet hat. Diese Option wird erfasst und an die Back-End-Datenbank übergeben (sofern dies unterstützt wird). Die Erfassung der Informationen erfolgt durch das Aufrufen der Methode WSSecurityHelper.getFirstCaller.
Benutzerposition
Die Benutzerposition im Format Zelle:Knoten:Server. Diese Option wird erfasst und an die Back-End-Datenbank übergeben (sofern dies angemessen wird). Die Erfassung der Informationen erfolgt durch das Aufrufen der Methode WSSecurityHelper.getFirstServer.
Anwendungsname
Der Name der aktiven Anwendung. Dieser Wert ist die Ausgabe der Methode getApplication aus dem Java-EE-Namensobjekt. Dieser Wert wird unabhängig von der Einstellung der globalen Sicherheit erfasst.

WAS.clientinfopluslogging

Wenn Sie Datenbankfehler, z. B. Deadlocks, beheben, gibt es eine Reihe von Informationen zur Unterstützung des Debugging. Diese Informationen werden normalerweise abgerufen, indem ein WebSphere-RRA-Trace(Relational Resource Adapter) und ein EJB-Container-Trace (Enterprise JavaBeans) aktiviert werden. In einigen Fällen spielt jedoch die zeitliche Abfolge eine wichtige Rolle beim Reproduzieren eines Fehlers. Zu viele Traceinformationen können das (beispielsweise zeitliche) Verhalten der Anwendung ändern. Diese Änderung kann zur Folge haben, dass der Fehler nicht mehr auftritt.

Aus diesem Grund wird die neue Tracegruppe WAS.clientinfopluslogging bereitgestellt, die nur ein Minimum an Informationen erfasst. Diese Funktion legt wie der Trace "WAS.clientinfo" die Clientinformationen in der Verbindung implizit fest und erstellt einen Trace der wichtigen Anwendungsaktivitäten. Zu diesen Aktivitäten gehört Folgendes:
  • SQL-Zeichenfolgen, die ausgeführt werden (z. B. "select userId from tabl1 where id=? for update").
  • Starten, Festschreiben und Zurücksetzen von Transaktionen
  • EJB-Aufrufe (z. B. Create, Remove, findByPrimaryKey).

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=rdat_impclientinfo
Dateiname:rdat_impclientinfo.html