Agent d'instrumentation des performances d'entité

Vous pouvez améliorer les performances des entités accessibles par zone en activant l'agent d'instrumentation de WebSphere eXtreme Scale lorsque vous utilisez Java Development Kit (JDK) version 1.5 ou une version ultérieure.

Activation de l'agent eXtreme Scale sur JDK Version 1.5 ou ultérieure

L'agent ObjectGrid peut être activé à l'aide d'une option de ligne de commande Java, avec la syntaxe suivante :
-javaagent:jarpath[=options]
La valeur jarpath correspond au chemin d'accès d'un fichier JAR (archive Java) de l'environnement d'exécution d'eXtreme Scale qui contient une classe d'agent eXtreme Scale et les classes de support, telles que les fichiers objectgrid.jar, wsobjectgrid.jar, ogclient.jar, wsogclient.jar et ogagent.jar. Généralement, dans un programme Java autonome ou un environnement Java Platform, Enterprise Edition qui n'exécute pas WebSphere Application Server, utilisez le fichier objectgrid.jar ou ogclient.jar. Dans un environnement WebSphere Application Server ou à plusieurs chargeurs de classes, vous devez utiliser le fichier ogagent.jardans l'option d'agent de la ligne de commande Java. Spécifiez le fichier ogagent.config dans le chemin d'accès aux classes ou utilisez les options d'agent pour spécifier des informations supplémentaires.

Options de l'agent eXtreme Scale

config
Remplace le nom du fichier de configuration.
include
Spécifie ou remplace la définition du domaine d'instrumentation qui correspond à la première partie du fichier de configuration.
exclude
Spécifie ou remplace la définition @Exclude.
fieldAccessEntity
Spécifie ou remplace la définition @FieldAccessEntity.
trace
Spécifie un niveau de trace. Ces niveaux peuvent être ALL, CONFIG, FINE, FINER, FINEST, SEVERE, WARNING, INFO et OFF.
trace.file
Indique l'emplacement du fichier de trace.
Le point-virgule ( ; ) sert de délimiteur entre chaque option. La virgule ( , ) sert de délimiteur entre chaque élément d'une option. L'exemple suivant illustre l'option de l'agent eXtreme Scale pour un programme Java :
-javaagent:objectgridRoot/lib/objectgrid.jar=config=myConfigFile;
include=includedPackage;exclude=excludedPackage;
fieldAccessEntity=package1,package2

Fichier ogagent.config

Le fichier ogagent.config correspond au fichier de configuration d'agent eXtreme Scale désigné. Si le nom de ce fichier se trouve dans le chemin d'accès aux classes, l'agent eXtreme Scale recherche et analyse le fichier. Vous pouvez remplacer le nom de fichier désigné via l'option config de l'agent eXtreme Scale. L'exemple suivant indique comment spécifier le fichier de configuration :
-javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
Un fichier de configuration d'agent eXtreme Scale se compose de deux parties :
  • Domaine de transformation : Le domaine de transformation correspond à la première partie du fichier de configuration. Le domaine de transformation est une liste de modules et de classes inclus dans le processus de transformation des classes. Ce domaine de transformation doit inclure toutes les classes d'entités accessibles par zone et les autres classes qui y font référence. Les classes d'entités accessibles par zone et celles qui y font référence constituent le domaine de transformation. Si vous avez l'intention de spécifier des classes d'entités accessibles par zone dans le composant @FieldAccessEntity, vous n'avez pas besoin d'inclure ici de classe d'entités accessibles par zone. Le domaine de transformation doit être complet. Si ce n'est pas le cas, une exception FieldAccessEntityNotInstrumentedException risque d'être générée.
  • @Exclude : Le marqueur @Exclude indique que les modules et les classes répertoriés après sont exclus du domaine de transformation.
  • @FieldAccessEntity : Le marqueur @FieldAccessEntity indique que les modules et les classes répertoriés après sont des modules et des classes d'entité accessible par zone. S'il n'existe aucune ligne après le marqueur @FieldAccessEntity, son équivalent est "Aucun marqueur @FieldAccessEntity spécifié". L'agent eXtreme Scale détermine qu'aucun module et classe d'entité accessible par zone ne sont définis. S'il existe des lignes après le marqueur @FieldAccessEntity, elles représentent les packages et les classes d'entités accessibles par zone spécifiés par l'utilisateur. Par exemple, "domaine d'entités accessibles par zone". Le domaine d'entités accessibles par zone est un sous-domaine du domaine de transformation. Les packages et les classes répertoriés dans le domaine d'entités accessibles par zone font partie du domaine de transformation, même s'ils n'y sont pas répertoriés. Le marqueur @Exclude, qui répertorie les packages et les classes exclus de la transformation, n'a pas d'impact sur le domaine d'entités accessibles par zone. Si le marqueur @FieldAccessEntity est spécifié, toutes les entités accessibles par zone doivent se trouver dans ce domaine d'entités accessibles par zone. Si ce n'est pas le cas, une exception FieldAccessEntityNotInstrumentedException peut être générée.

Exemple de fichier de configuration d'agent (ogagent.config)

################################
# Le symbole # indique une ligne de commentaire
################################
# Il s'agit d'un fichier de configuration d'agent ObjectGrid (le nom de fichier désigné est ogagent.config) qui peut être détecté et analysé par l'agent ObjectGrid
# s'il se trouve dans le chemin d'accès aux classes.
# Si le nom de fichier est "ogagent.config" et qu'il se trouve dans le chemin
# d'accès aux classes, le programme Java est exécuté avec -javaagent:objectgridRoot/ogagent.jar
# et l'agent ObjectGrid est activé pour ce programme.
# Si le nom de fichier n'est pas "ogagent.config", mais qu'il se trouve dans le chemin d'accès aux classes, vous pouvez le spécifier dans l'option de configuration de l'agent ObjectGrid
#     -javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
# Voir les commentaires ci-après pour plus d'informations sur le remplacement des paramètres d'instrumentation.

# La première partie de la configuration correspond à la liste des modules et des classes à inclure dans le domaine de transformation.
# Les inclusions (packages/classes, qui constituent le domaine d'instrumentation) doivent se trouver au début du fichier.
com.testpackage
com.testClass

# Domaine de transformation : Les lignes ci-dessus correspondent aux modules/classes qui construisent le domaine de transformation.
# Le système traite les classes dont le nom commence par les modules/classes ci-dessus pour la transformation.
#
# Marqueur @Exclude : Exclusion du domaine de transformation.
# Le marqueur @Exclude indique que les modules/classes qui se trouvent après cette ligne doivent être exclus du domaine de transformation.
# Il est utilisé lorsque l'utilisateur souhaite exclure certains modules/classes des modules inclus spécifiés ci-dessus
#
# Marqueur @FieldAccessEntity : Domaine d'entités accessibles par zone.
# Le marqueur @FieldAccessEntity indique que les modules/classes qui se trouvent après cette ligne correspondent à des modules/classes d'entités accessibles par zone.
# S'il n'existe aucune ligne après le marqueur @FieldAccessEntity, son équivalent est "Aucun marqueur @FieldAccessEntity spécifié".
# L'environnement d'exécution considère que l'utilisateur ne spécifie pas de modules/classes d'entité accessibles par zone.
# Le "domaine d'entités accessibles par zone" est un sous-domaine du domaine de transformation.
#
# Les modules/classes répertoriés dans le "domaine d'entités accessibles par zone" font toujours partie du domaine de transformation,
# même s'ils n'y sont pas répertoriés.
# Le marqueur @Exclude, qui répertorie les modules/classes exclus de la transformation, n'a pas d'impact sur le "domaine d'entités accessibles par zone".
# Remarque : Si le marqueur @FieldAccessEntity est spécifié, toutes les entités accessibles par zone doivent se trouver dans ce domaine d'entités accessibles par zone ;
# sinon, une erreur FieldAccessEntityNotInstrumentedException risque de se produire.
#
# Le nom de fichier de configuration par défaut de l'agent ObjectGrid est ogagent.config
# L'environnement d'exécution recherche ce fichier comme ressource dans le chemin d'accès aux classes et le traite.
# Les utilisateurs peuvent remplacer ce nom de fichier de configuration d'agent ObjectGrid désigné via l'option config de l'agent.
#
# Par exemple :
#	javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
#
# La définition d'instrumentation, y compris le domaine de transformation, le marqueur @Exclude et le marqueur @FieldAccessEntity peuvent être remplacés de manière individuelle
# par les options d'agent désignées correspondantes.
# Les options d'agent désignées incluent :
#    include              -> utilisé pour remplacer la définition du domaine d'instrumentation qui correspond à la première partie du fichier de configuration
#    exclude              -> utilisé pour remplacer la définition @Exclude
#    fieldAccessEntity    -> utilisé pour remplacer la définition @FieldAccessEntity
#
# Chaque option d'agent doit être séparée par ";"
# Dans l'option d'agent, le package ou la classe doit être séparé par ","
#
# Voici un exemple ne remplaçant pas le nom du fichier de configuration :
#    -javaagent:objectgridRoot/lib/objectgrid.jar=include=includedPackage;exclude=excludedPackage;fieldAccessEntity=package1,package2
#
################################

@Exclude
com.excludedPackage
com.excludedClass

@FieldAccessEntity

Considérations sur les performances

Pour de meilleures performances, spécifiez le domaine de transformation et le domaine d'entités accessibles par zone.