Erstellung von Anwendungsprofilen

Durch die Erstellung von Anwendungsprofilen können Sie bestimmte Arbeitseinheiten (Unit of Work, UOW) gegenüber der Laufzeitumgebung des Produkts identifizieren. Die Laufzeit kann ihre Unterstützung an die speziellen Anforderungen dieser Arbeitseinheit anpassen.

Für den Service für die Erstellung von Anwendungsprofilen sind genaue Kenntnisse der Transaktionskonfiguration einer Anwendung und der Interaktion der Anwendung mit ihrem persistenten Status im Verlauf der einzelnen Transaktionen erforderlich.

Sie können die Analyse im Modus "Closed World" oder "Open World" ausführen. Bei einer Closed-World-Analyse wird davon ausgegangen, dass alle möglichen Clients der Anwendung in die Analyse aufgenommen werden und die ausgeführte Analyse vollständig und richtig ist. Die Ergebnisse einer Closed-World-Analyse enthalten alle Transaktionen, die von einem Web-, JMS- oder Anwendungsclient aufgerufen werden können. Ausgeschlossen von den Ergebnissen sind viele potenzielle Transaktionen, die zur Laufzeit nie ausgeführt werden.

Bei einer Open-World-Analyse wird davon ausgegangen, dass nicht alle Clients für die Analyse verfügbar sind oder dass die Analyse keine vollständigen oder richtigen Ergebnisse zurückgeben kann. Eine Open-World-Analyse gibt den vollständigen Satz möglicher Transaktionen zurück.

Die Ergebnisse einer Analyse bleiben in Form einer Application-Profiling-Konfiguration bestehen. Das Assembliertool richtet containergesteuerte Tasks für Servlets, JSP-Dateien, Anwendungsclients und Message-driven Beans (MDBs) ein. Es werden Anwendungsprofile für die Tasks mit den entsprechenden Zugriffsarten (Access Intents) für die Entitäten erstellt, die in der von der Task dargestellten Transaktion registriert sind. In der Praxis gibt es jedoch zahlreiche Situationen, in denen das Tool bestenfalls unvollständige Ergebnisse liefert. Nicht alle Anwendungen eignen sich für die statische Analyse. Einige Factory- und Befehlsmuster machen eine Bestimmung der Aufrufgraphen unmöglich. Das Tool bietet keine Unterstützung für die Analyse von ActivitySessions.

Sie müssen die Ergebnisse der Analyse sorgfältig untersuchen. In vielen Fällen müssen Sie die Ergebnisse manuell bearbeiten, um die Anforderungen der Anwendung zu erfüllen. Das Tool kann für die meisten Anwendungen jedoch ein effektiver Ausgangspunkt sein und für einige Anwendungen eine vollständige und schnelle Konfiguration von Anwendungsprofilen bieten.

Der Service für Zugriffarten ist die einzige Laufzeitkomponente, die die Funktionen des Service für die Erstellung von Anwendungsprofilen verwendet. Beispielsweise können Sie mit dem Service für die Erstellung von Anwendungsprofilen eine Transaktion so konfigurieren, dass sie eine Entity-Bean lädt, für die strikte Aktualisierungssperren gelten, und eine weitere Transaktion so konfigurieren, dass sie dieselbe Entity-Bean ohne Sperren lädt.

Für die Erstellung von Anwendungsprofilen werden zwei neue Konzepte verwendet, um diese Funktion umzusetzen: Tasks und Profile.
Tasks
Eine Task ist ein konfigurierbarer Name für eine Arbeitseinheit. Arbeitseinheit steht in diesem Kontext für eine Transaktion oder eine ActivitySession. Der Taskname wird in der Regel in einer J2EE-Komponente deklariert, die eine Arbeitseinheit einleiten kann. Meistens werden Tasks in einer Methode einer Enterprise-JavaBean-Datei konfiguriert, die für containergesteuerte Transaktionen oder Bean-gesteuerte Transaktionen deklariert wird. Jede Arbeitseinheit, die im Rahmen einer konfigurierten Task gestartet wird, wird dieser Task zugeordnet. Eine Arbeitseinheit kann nur beim Start benannt werden. Der Name kann danach nicht mehr geändert werden. Eine Arbeitseinheit ignoriert alle nachfolgenden Tasknamenskonfigurationen, sobald sie gestartet ist. Die Task wird für die Dauer der zugehörigen Arbeitseinheit verwendet, um die konfigurierten Richtlinien für diese Arbeitseinheit bereitzustellen.
Anmerkung: Wenn Sie auf der Konsolseite "Application Profiling Service" das Attribut "5.x-Kompatibilitätsmodus" auswählen, werden die in den J2EE-1.3-Anwendungen konfigurierten Tasks nicht zwingenderweise Arbeitseinheiten zugeordnet und können beliebig angewendet und überschrieben werden. Dieser Betriebsmodus wird nicht empfohlen, weil er zu unerwarteten Deadlocks (gegenseitiges Sperren) bei Datenbankzugriffen führen kann. Tasks werden in Anforderungen zwischen Anwendungen, die im 5.x-Kompatibilitätsmodus des Application Profiling Service ausgeführt werden, und Anwendungen, die nicht im Kompatibilitätsmodus ausgeführt werden, nicht übertragen.

Wenn ein Client der Version 6.x mit Anwendungen, die im 5.x-Kompatibilitätsmodus des Service für die Erstellung von Anwendungsprofilen ausgeführt werden, interagieren soll, müssen Sie die Systemeigenschaft appprofileCompatibility im Clientprozess auf true setzen. Geben Sie hierfür die Eigenschaft -CCDappprofileCompatibility=true beim Aufruf des Befehls "launchClient" an.

Profile
Ein Profil ist nichts anderes als die Zuordnung einer Task zu einer Gruppe von Richtlinien für Zugriffsarten, die für Entity-Beans konfiguriert sind. Müssen beim Aufruf einer Bean (durch eine Finder-Methode, eine CMR-Getter-Methode oder eine dynamische Abfrage) Daten von einem Back-End-System abgerufen werden, dann werden mithilfe der Task, die der Anforderung derzeit zugeordnet ist, die genauen Voraussetzungen für die Transaktion ermittelt. Im Kontext der Taskprofilzuordnung wird dieselbe Bean anders geladen und zeigt ein anderes Verhalten. Jedes Profil bietet dem Entwickler die Möglichkeit, die Zugriffsart für die Anwendung zu rekonfigurieren. Wenn eine Anforderung ohne Task ausgeführt wird, verwendet die Laufzeitumgebung eine Zugriffsart auf Methodenebene (sofern vorhanden) oder einen Standardzugriffsarten auf Bean-Ebene.
Anmerkung: In der Konfiguration des Anwendungsprofils sind die anwendungsbezogenen Konfigurationsdaten enthalten. Wenn ein EJB-Modul eine Anwendungsprofilkonfiguration enthält, werden alle anderen EJB-Module implizit vom Service für die Erstellung von Anwendungsprofilen reguliert, selbst wenn sie keine Konfigurationsdaten für das Anwendungsprofil enthalten.

Beispiel: Eine Anwendung enthält zwei EJB-Module: EJBModule1 und EJBModule2.

EJBModule1 hat ein Anwendungsprofil mit dem Namen AppProfile1. AppProfile1 wird von einer Task mit dem Namen "task1" registriert. "task1" wird zu einer der Anwendung bekannten Task und verarbeitet, wenn sie einer Arbeitseinheit in dieser Anwendung zugeordnet wird. Wenn eine der Anwendung bekannte Task vorhanden ist, werden alle Konfigurationen für Zugriffsarten auf Methodenebene ignoriert, und es werden nur die Konfigurationen für Zugriffarten auf Bean-Ebene angewendet.

EJBModule2 enthält keine Konfigurationsdaten für das Anwendungsprofil. Die Entity-Beans sind nicht explizit mit einer Zugriffsart auf Bean-Ebene konfiguriert, aber einige Methoden haben Konfigurationen für Zugriffsarten auf Methodenebene. Wenn eine Entity-Bean in EJBModule2 in eine Arbeitseinheit geladen wird, die task1 zugeordnet ist, wird die Konfiguration für Zugriffsarten auf Bean-Ebene angewendet und die Konfiguration für Zugriffsarten auf Methodenebene ignoriert. Da die Zugriffsart auf Bean-Ebene nicht explizit definiert ist, wird die Standardzugriffsart auf Bean-Ebene, wsPessimisticUpdate-WeakestLockAtLoad, angewendet.


Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



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