Organisation des données PMI
Utilisez cette page comme présentation générale de la surveillance, de la collecte de données et des compteurs utilisant PMI (Performance Monitoring Infrastructure) et Tivoli Performance Viewer.
PMI (Performance Monitoring Infrastructure) assure la supervision côté serveur et fournit une API côté client permettant d'extraire des données de performances. PMI gère des données statistiques dans la totalité du domaine WebSphere Application Server pour les différents noeuds et serveurs. Chaque noeud peut contenir une ou plusieurs instances WebSphere Application Server. Chaque serveur organise les données PMI en modules et sous-modules.

- Noeud. Un noeud représente une machine physique dans le domaine d'administration WebSphere Application Server.
- Serveur. Un serveur est une unité fonctionnelle qui fournit des services à des clients sur un réseau. Aucune donnée de performances n'est collectée pour le serveur lui-même.
- Module.
Un module représente l'une des catégories de ressources pour lesquelles des données sont transmises à l'afficheur de performances. Chaque module dispose d'un fichier de configuration au format XML. Ces fichiers déterminent l'organisation et répertorient un identificateur unique pour chaque donnée de performance du module. Les modules comprennent les beans enterprise, les pools de connexions JDBC, le pool de connexions J2C, l'environnement d'exécution de la JVM ou machine virtuelle Java™ (dont Java Virtual Machine Tool Interface (JVMTI)), le gestionnaire de sessions de servlet, les pools d'unités d'exécution, le gestionnaire de transactions, les applications Web, l'ORB (Object Request Broker), la pondération de charge de travail (WLM), Web services gateway (WSGW) et le cache dynamique.
Un module représente l'une des catégories de ressources pour lesquelles des données sont transmises à l'afficheur de performances. Chaque module dispose d'un fichier de configuration au format XML. Ce fichier détermine l'organisation et répertorie un identificateur unique pour chaque donnée de performance du module. Les modules comprennent les beans enterprise, les pools de connexions JDBC, le pool de connexions J2C, l'environnement d'exécution de la machine virtuelle Java (avec l'interface Java Virtual Machine Tool Interface), le gestionnaire de sessions de servlet, le gestionnaire de transactions, les applications Web, l'ORB (Object Request Broker) et le cache dynamique.
- Sous-module. Un sous-module représente une granularité fine d'une catégorie de ressource sous le module. Par exemple, le pool d'unités d'exécution ORB est un sous-module de la catégorie de pool d'unités d'exécution. Les sous-modules peuvent contenir d'autres sous-modules.
- Compteur. Un compteur est un type de données qui sert à conserver les informations relatives aux performances en vue de leur analyse. Chaque catégorie de ressources (module) est associée à une série de compteurs. Les points de données contenus dans un module sont consultés et identifiés par les MBean ObjectNames ou PerfDescriptors. Les compteurs contiennent, par exemple, le nombre de beans enterprise actifs, le temps consacré à répondre à une demande de servlet ou le nombre de kilo-octets de mémoire disponibles.
Tivoli Performance Viewer est un client léger intégré à la console administrative WebSphere Application Server. Il offre un afficheur simple pour les données de performance fournies par l'infrastructure PMI (Performance Monitoring Infrastructure) et permet aux utilisateurs de visualiser et de manipuler les données des compteurs. Un même type de compteur peut être associé à plusieurs modules. Par exemple, Un compteur de temps de réponse est associé à la fois aux modules de servlet et aux modules de bean enterprise. De plus, un module peut contenir plusieurs instances de type de compteur. Par exemple, dans la figure précédente, le module de beans enterprise et le Bean1 ont tous deux un compteur "temps de réponse moyen de la méthode".
Les compteurs sont activés au niveau du module et peuvent être activés ou désactivés pour des éléments contenus dans ce module. Par exemple, dans la figure, si le module EJB (Enterprise Java Beans) est activé, son compteur "Temps de réponse moyen de la méthode" est activé par défaut. Toutefois, vous pouvez désactiver le compteur "Temps de réponse moyen de la méthode", même si les autres compteurs du module sont activés. Au besoin, vous pouvez aussi désactiver le compteur "Temps de réponse moyen de la méthode" pour Bean1, mais le temps de réponse total rapporté pour l'ensemble du module ne comprend alors plus les données de Bean1.
WebSphere Application Server offre, dans le cadre de la fonction de contrôle à granularité fine, des jeux de statistiques prédéfinis fixes sur le serveur, basés sur les scénarios d'utilisation des statistiques PMI. Les niveaux de spécification PMI sont les suivants : none (aucun), basic (de base), extended (étendu), all (tous) ou custom (personnalisé). Si vous choisissez none, tous les modules PMI sont désactivés. Le choix de basic procure les J2EE et le jeu essentiel de statistiques pour vous fournir un niveau de contrôle de base. Sélectionnez extended pour obtenir le niveau de contrôle de base plus les modèles de ressources Work Load Monitor, Performance Advisor, et Tivoli afin d'accéder à un jeu de contrôle plus puissant. Si vous choisissez all toutes les statistiques seront activées. Si vous choisissez custom, pour pouvez activer ou désactiver les statistiques individuellement grâce au contrôle précis.
Les statistiques ne peuvent avoir que deux états : activé ou désactivé. Dans WebSphere Application Server, le paramètre de configuration synchronizedUpdate, fourni au niveau du service PMI, permet de synchroniser les mises à jour. Lorsque l'attribut est true, toutes les mises à jour de statistiques sont synchronisées. Par défaut, le paramètre synchronizedUpdate est false. Pour activer la synchronisation des mises à jour, cochez la case Utiliser les mises à jour de compteur séquentielles dans la console d'administration.
La collecte de données peut affecter les performances du serveur d'applications. L'effet produit dépend du nombre de compteurs activés, des types de compteur activés et du niveau de contrôle défini pour les compteurs.

- Le module de beans enterprise, le bean enterprise et les méthodes d'un bean.
- Mes compteurs de données correspondant à cette catégorie rapportent les valeurs de chargement, les temps de réponse et les activités du cycle de vie des beans enterprise. Cela comprend notamment le nombre moyen de beans actifs et le nombre de chargements ou d'inscriptions des données de beans dans la base de données. Les informations transmises concernent les méthodes des beans enterprise et les interfaces distantes utilisées par un bean enterprise. On peut citer le nombre d'appels d'une méthode particulière et le temps de réponse moyen pour cette méthode. De plus, Tivoli Performance Viewer rapporte également des informations relatives à la taille et à l'utilisation de la mémoire cache des objets bean ou au pool d'objets de beans enterprise. Par exemple, le nombre d'appels tentant de récupérer un objet dans un groupe et le nombre de cas dans lesquels l'objet est trouvé comme disponible dans le groupe.
- Pools de connexions JDBC
- Les compteurs de données de cette catégorie contiennent des informations d'utilisation relatives aux pools de connexions JDBC pour une base de données. On peut citer le nombre de connexions gérées ou de connexions physiques et le nombre total de connexions ou de descripteurs de connexions.
- Pool de connexions Java 2 Connector (J2C)
- Les compteurs de données de cette catégorie contiennent les informations d'utilisation pour l'architecture de connecteur J2EE (Java 2 Platform Enterprise Edition) qui permet aux beans enterprise de se connecter et d'interagir avec les systèmes de procédure dorsaux, comme les systèmes CICS (Customer Information Control System) et IMS (Information Management System). On peut citer le nombre de connexions gérées ou de connexions physiques et le nombre total de connexions ou de descripteurs de connexions.
- API Java Virtual Machine (JVM)
- Les compteurs de données correspondant à cette catégorie contiennent la mémoire utilisée par une procédure telle qu'elle est rapportée par le module d'exécution JVM. Par exemple, la mémoire totale disponible et la quantité de mémoire disponible pour le JVM. Le module d'exécution JVM comporte aussi les données JVMTI. Ces données fournissent des informations détaillées sur la JVM qui exécute le serveur d'application.
- gestionnaire de sessions de servlet
- Les compteurs de données correspondant à cette catégorie contiennent les informations d'utilisation pour les sessions HTTP. Par exemple, le nombre total de sessions accessibles, la durée moyenne d'exécution d'une requête par une session et le nombre moyen de sessions HTTP actives simultanément.
- Pool d'unités d'exécution
- Les compteurs de données correspondant à cette catégorie rapportent des informations relatives aux pools d'unités d'exécution ORB (Object Request Broker) et aux groupes de conteneurs Web qui sont utilisés pour traiter les requêtes HTTP. Par exemple, le nombre d'unités d'exécution créées et détruites, le nombre maximal de groupes d'unités d'exécution admis et le nombre moyen d'unités d'exécution actives dans le groupe.
- Java Transaction API (JTA)
- Les compteurs de données correspondant à cette catégorie contiennent les informations de performances relatives au gestionnaire de transactions. Par exemple, le nombre moyen de transactions actives, la durée moyenne des transactions et le nombre moyen de méthodes par transaction.
- Applications Web, servlet
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives au serveur sélectionné. Par exemple, le nombre de servlets chargés, le temps de réponse moyen aux requêtes et le nombre de requêtes destinées au servlet.
- Object Request Broker (ORB)
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives à l'ORB. Par exemple, le temps de consultation de la référence d'objet, le nombre total de requêtes et le temps de traitement pour chaque intercepteur.
- Applications OSGi
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives aux services et aux méthodes de regroupement. Par exemple, le nombre d'appels de méthodes de regroupement ou de services et le temps de réponse moyen à la méthode de regroupement ou de service.
- Passerelle des services Web (WSGW)
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives à WSGW. Par exemple, le nombre de requêtes et de réponses synchrones et asynchrones.
- Données système
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives à une machine (un noeud). Par exemple, la sollicitation de l'UC et la capacité de mémoire utilisée. Notez que cette catégorie est disponible au niveau du noeud, c'est-à-dire qu'elle n'est disponible pour l'agent de noeud si vous exécutez plusieurs serveurs.
Workload Management (WLM)
Les compteurs de données correspondant à cette catégorie contiennent les informations de pondération de charge. Par exemple, le nombre de requêtes, le nombre de mises à jour et le temps de réponse moyen.
- Mémoire cache dynamique
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives au service de cache dynamique. Il s'agit, par exemple, de la taille de la cache mémoire, du nombre d'invalidations et du nombre d'accès réussis et manqués.
- Services Web
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives aux services Web. A titre d'exemple, on peut citer le nombre de services Web chargés, le nombre de requêtes transmises et traitées, le temps de réponse des requêtes et la taille moyenne des requêtes.
- Gestionnaire d'alarmes
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives au gestionnaire d'alarmes.
- Pool d'objets
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives aux pools d'objets.
- Planificateur
- Les compteurs de données correspondant à cette catégorie contiennent les informations relatives au service Scheduler.
Les données PMI sont accessibles via les méthodes getStatsObject et getStatsArray de PerfMBean. Vous devez transmettre le(s) nom(s) d'objet MBean à PerfMBean.
- DynaCache : données PMI de la cache dynamique
- EJBModule* : Données PMI du module Enterprise JavaBeans (EJB) (BeanModule)
- EntityBean* : données PMI d'un EJB particulier (BeanModule)
- JDBCProvider* : données PMI du pool de connexions JDBC
- J2CResourceAdapter* : Données PMI du pool de connexions Java 2 Connectivity (J2C)
- JVM : Données PMI de la machine virtuelle Java
- MessageDrivenBean* : données PMI d'un EJB particulier (BeanModule)
- ORB : données PMI du module Object Request Broker (ORB)
- Server : données PMI du serveur entier ; vous devez passer recursive=true à PerfMBean
- SessionManager* : données PMI des sessions HTTP
- StatefulSessionBean* : données PMI d'un EJB particulier (BeanModule)
- StatelessSessionBean* : données PMI d'un EJB particulier (BeanModule)
- SystemMetrics : données PMI de niveau système
- ThreadPool* : données PMI du pool d'unités d'exécution
- TransactionService : données PMI des transactions JTA
- WebModule* : données PMI d'application Web
- Servlet* : données PMI de servlet
WLMAppServer : données PMI de la gestion de charge de travail (WLM, Workload Management)
- WebServicesService : données PMI des services Web
- WSGW* : données PMI de Web services gateway (WSGW)
Vous devez utiliser l'API AdminClient pour obtenir le nom d'objet (ObjectName) de chaque type de MBean. Vous pouvez rechercher tous les MBean puis le type qui vous intéresse ou n'utiliser que la chaîne de recherche pour le type précis : String query = "WebSphere:type=mytype,node=mynode,server=myserver,*";
Bien entendu, les valeurs montype, monnoeud et monserveur doivent être remplacées par les vôtres. Vous obtenez une valeur Set lorsque vous appelez la classe AdminClient pour interroger les ObjectNames des MBean. Cette réponse signifie que vous pouvez obtenir plusieurs ObjectNames.
Dans l'exemple ci-dessus, l'astérisque (*) signifie qu'un même type MBean peut posséder plusieurs ObjectNames sur un même serveur. Dans ce cas, les ObjectNames sont identifiables par leur nom et leur type (mais mbeanIdentifier est le véritable UID des MBeans). Cependant, les noms des MBean ne sont pas prédéfinis. Ils sont choisis à l'exécution, en fonction des applications et des ressources. Lorsque vous obtenez plusieurs ObjectNames, vous pouvez construire un tableau des ObjectNames qui vous intéressent. Vous pouvez ensuite passer ce tableau d'ObjectNames à PerfMBean pour obtenir les données PMI correspondantes. Vous disposez d'options récursives et d'options non récursives. L'option récursive retourne des objets Stats et des sous-statistiques sous forme de structure arborescente, alors que l'option non récursive retourne un objet Stats pour le MBean concerné uniquement. Voir la rubrique consacrée au Développement de vos propres applications de supervision.