Profilage d'applications

Le profilage d'application permet d'identifier des unités de travail spécifiques pour l'environnement d'exécution du produit. Le module d'exécution peut adapter son support aux besoins spécifiques de cette unité de travail.

La définition d'un profil d'application nécessite des connaissances approfondies sur la configuration transactionnelle d'une application et sur l'interaction entre l'application et son état persistant durant chaque transaction.

Vous pouvez exécuter l'analyse en mode monde fermé ou monde ouvert. Une analyse en 'monde fermé' suppose que tous les clients possibles de l'application sont inclus à l'analyse et que l'analyse obtenue est complète et correcte. Les résultats d'une analyse en monde fermé permet d'obtenir toutes les transactions qui peuvent être appelées par un client Web, JMS ou d'application. Les résultats excluent de nombreuses transactions potentielles qui ne sont jamais exécutées durant l'exécution de l'application.

Une analyse en 'monde ouvert' suppose que tous les clients ne sont pas disponibles pour l'analyse ou que l'analyse ne peut pas renvoyer des résultats complets ou précis. Une analyse en monde ouvert renvoie toutes les transactions possibles.

Les résultats d'une analyse sont persistants comme une configuration de profil d'application. L'outil d'assemblage établit des tâches gérées par le conteneur pour les servlets, les fichiers JSP (JavaServer Pages), les clients d'application et les beans gérés par message (Message Driven Beans, MDB). Les profils d'application des tâches sont créés avec la tentative d'accès appropriée pour les entités répertoriées dans la transaction représentée par la tâche. Cependant, dans de nombreux cas, l'outil renvoie au mieux des résultats incomplets. Toutes les applications ne sont pas compatibles avec l'analyse statique. Certains modèles de fabriques et de commandes permettent de déterminer les diagrammes d'appel. L'outil ne prend pas en charge l'analyse de ActivitySessions.

Il est préférable d'examiner minutieusement les résultats de l'analyse. Dans de nombreux cas, il est nécessaire de les modifier pour répondre aux besoins de l'application. Cependant, l'outil peut constituer un point de départ efficace pour la plupart des applications et il permet de configurer rapidement un profil complet pour certaines applications.

Le module Tentative d'accès est le seul composant du module d'exécution à utiliser la fonctionnalité de profilage d'application. Par exemple, vous pouvez configurer une transaction pour charger un bean entity avec des verrous de mise à jour solides et une autre transaction pour charger le même bean entity sans verrous.

Le profilage d'application fait appel à deux nouveaux concepts pour remplir son rôle : les tâches et les profils.
Tâches
Une tâche est un nom d'unité de travail pouvant être configuré. Unité de travail dans ce cas signifie soit une transaction, soit une ActivitySession. Le nom de la tâche est habituellement attribué par déclaration sur un composant J2EE capable de démarrer une unité de travail. Dans la plupart des cas, la tâche est configurée sur une méthode d'un fichier Enterprise JavaBeans déclarée pour des transactions gérées par conteneur ou par bean. Toute unité de travail commençant dans la portée d'une tâche configurée est associée à ce nom de tâche. Une unité de travail ne peut être nommée qu'au moment où elle est lancée et son nom doit rester le même toute la durée de vie de l'unité de travail. L'unité de travail ignore toutes les configurations de nom de tâche suivantes à tout point après avoir commencé. La tâche est utilisée toute la durée de son unité de travail pour identifier les règles configurées spécifiques à cette unité de travail.
Remarque : Si vous sélectionnez l'attribut de mode de compatibilité 5.x sur la page du service de profil d'application de la console, les tâches configurées sur les applications J2EE 1.3 ne sont pas systématiquement associées aux unités de travail et peuvent être appliquées ou remplacées de façon arbitraire. Ce mode d'opération n'est pas recommandé et peut provoquer des blocages imprévus pendant l'accès à la base de données. Les tâches ne sont pas communiquées à la demande entre les applications exécutées sous le mode de compatibilité Application Profiling 5.x et les applications qui ne le sont pas.

Pour qu'un client Version 6.x puisse interagir avec des applications exécutées sous le mode de compatibilité Application Profiling 5.x, vous devez attribuer à la propriété système appprofileCompatibility la valeur true dans le processus client. Ceci peut être fait en spécifiant l'option -CCDappprofileCompatibility=true lors de l'appel de la commande launchClient.

Profils
Un profil représente le mappage d'une tâche à un ensemble de règles de tentative d'accès configurées sur des beans entity. Lorsque l'appel d'un bean (par une méthode finder, une méthode get CMR ou une requête dynamique) nécessite d'extraire des données dans le système dorsal, la tâche en cours associée à la demande est utilisée pour déterminer les besoins précis de la transaction. Un même bean se charge et se comporte différemment dans le contexte du mappage tâche-profil. Chaque profil permet au développeur de reconfigurer le module de tentative d'accès de l'application. Si une demande est effectuée sans qu'il y ait de tâche, l'environnement d'exécution utilise la tentative d'accès définie au niveau de la méthode ou celle définie par défaut au niveau du bean.
Remarque : La configuration du profil d'application correspond aux données de configuration de la portée de l'application. Si un module EJB (Enterprise JavaBean) contient une configuration de profil d'application, tous les autres modules EJB sont régulés de manière implicite par le service de profilage d'application, même s'ils ne contiennent pas de données de configuration de profil d'application.

Prenons le cas d'une application possédant deux modules EJB : EJBModule1 et EJBModule2.

EJBModule1 possède un profil d'application intitulé AppProfile1. Ce profil AppProfile1 est enregistré par une tâche intitulée task1. Cette tâche devient une tâche connue de l'application, effectuée lorsqu'elle est associée à une unité de travail de cette application. Dès lors qu'il existe une tâche connue de l'application, les configurations de tentative d'accès au niveau méthode sont ignorées et seules celles au niveau du bean sont appliquées.

Le module EJBModule2 ne contient pas de données de configuration de profil d'application. Les beans entity ne sont pas tous configurés explicitement avec une tentative d'accès au niveau des beans, mais certaines méthodes possèdent des configurations de tentative d'accès au niveau des méthodes. Si un bean entity du module EJBModule2 est chargé dans une unité de travail associée à la tâche task1, la configuration de tentative d'accès au niveau du bean est appliquée et celle au niveau méthode est ignorée. La tentative d'accès au niveau du bean n'étant pas définie de manière explicite, la tentative d'accès par défaut au niveau du bean (wsPessimisticUpdate-WeakestLockAtLoad) est appliquée.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=capp_overview
Nom du fichier : capp_overview.html