Agente de instrumentación de rendimiento de entidades

Puede mejorar el rendimiento de las entidades de acceso a campos habilitando el agente de instrumentación de WebSphere eXtreme Scale cuando se utiliza Java Development Kit (JDK) versión 1.5 o posterior.

Habilitación del agente de eXtreme Scale en JDK Versión 1.5 o posterior

El agente ObjectGrid se puede habilitar con una opción de línea de mandatos Java con la siguiente sintaxis>
-javaagent:jarpath[=options]
El valor de jarpath es la vía de acceso a un archivo JAR (Java Archive) del tiempo de ejecución de eXtreme Scale que contiene una clase de agente eXtreme Scale y clases de soporte como, por ejemplo, los archivos objectgrid.jar, wsobjectgrid.jar, ogclient.jar, wsogclient.jar y ogagent.jar. Normalmente, en un programa autónomo de Java o en un entorno de Java Platform, Enterprise Edition que no ejecuta WebSphere Application Server, utilice el archivo objectgrid.jar o ogclient.jar. En un entorno de WebSphere Application Server o de varios cargadores de clases, debe utilizar el archivo ogagent.jar en la opción del agente de la línea de mandatos Java. Proporcione el archivo ogagent.config en la classpath o utilice las opciones de agente para especificar información adicional.

Opciones del agente de eXtreme Scale

config
Altera temporalmente el nombre de archivo de configuración.
include
Especifica o altera temporalmente la definición de dominio de transformación que es la primera parte del archivo de configuración.
exclude
Especifica o altera temporalmente la definición @Exclude.
fieldAccessEntity
Especifica o altera temporalmente la definición @FieldAccessEntity.
trace
Especifica un nivel de rastreo. Los niveles pueden ser ALL, CONFIG, FINE, FINER, FINEST, SEVERE, WARNING, INFO y OFF.
trace.file
Especifica la ubicación del archivo de rastreo.
El punto y coma (; ) se utiliza como delimitador para separar cada opción. La coma (,) se utiliza como delimitador para separar cada elemento dentro de una opción. El siguiente ejemplo demuestra la opción del agente eXtreme Scale para un programa Java:
-javaagent:objectgridRoot/lib/objectgrid.jar=config=myConfigFile;
include=includedPackage;exclude=excludedPackage;
fieldAccessEntity=package1,package2

Archivo ogagent.config

El archivo ogagent.config es el nombre del archivo de configuración del agente eXtreme Scale designado. Si el nombre de archivo está en la classpath, el agente eXtreme Scale encuentra y analiza el archivo. Puede alterar temporalmente el nombre de archivo designado a través de la opción config del agente de eXtreme Scale. En el siguiente ejemplo se muestra cómo especificar el archivo de configuración:
-javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
Un archivo de agente de configuración de eXtreme Scale tiene las partes siguientes:
  • Dominio de transformación: la parte del dominio de transformación es la primera del archivo de configuración. El dominio de transformación es una lista de paquetes y clases que se incluyen en el proceso de transformación de clase. Este dominio de transformación debe incluir todas las clases que son clases de entidad de acceso a campos y otras clases que hacen referencia a estas clases de entidad de acceso a campos. Las clases de entidad de acceso a campos y las clases que hacen referencia a estas clases de entidad de acceso a campos construyen el dominio de transformación. Si piensa especificar clases de entidad de acceso a campos en la parte @FieldAccessEntity, no es necesario que aquí incluya clases de entidad de acceso a campos. El dominio de transformación debe haberse completado. Si no, es posible que vea una excepción FieldAccessEntityNotInstrumentedException.
  • @Exclude: la señal @Exclude indica que los paquetes y las clases que se listan después de esta señal se excluyen del dominio de transformación.
  • @FieldAccessEntity: la señal @FieldAccessEntity indica que los paquetes y las clases que se listan después de esta señal son clases y paquetes de entidad de acceso a campos. Si no existe ninguna línea después de la señal @FieldAccessEntity, su equivalente es "Ninguna @FieldAccessEntity especificada". El agente de eXtreme Scale determina que no se ha definido ninguna clase y paquete de entidad de acceso a campos. Si hay líneas después de la señal @FieldAccessEntity, estas representan las clases y paquetes de la entidad de acceso a campos especificada por el usuario. Por ejemplo, "dominio de entidad de acceso a campos". El dominio de entidad de acceso a campos es un subdominio del dominio de transformación. Los paquetes y clases que se listan en el dominio de entidad de acceso a campos forman parte del dominio de transformación, incluso cuando no se listan en el dominio de transformación. La señal @Exclude, que lista paquetes y clases que se excluyen de la transformación, no tiene ningún impacto en el dominio de entidad de acceso a campos. Cuando se especifica la señal @FieldAccessEntity, todas las entidades de acceso a campos deben estar en este dominio de entidad de acceso a campos. De lo contrario, puede producirse una excepción FieldAccessEntityNotInstrumentedException.

Archivo de configuración de agente de ejemplo (ogagent.config)

################################
# El símbolo # indica línea de comentario
################################
# Es un archivo de configuración de agente ObjectGrid (el nombre de archivo designado es ogagent.config) que puede encontrar y analizar el agente ObjectGrid
# si está en la vía de acceso de clases.
# Si el nombre de archivo es "ogagent.config" y está en la vía de acceso de clases, las ejecuciones del programa Java -javaagent:objectgridRoot/ogagent.jar
# tendrán habilitado el objeto ObjectGrid.
# Si el nombre de archivo no es "ogagent.config" pero está en la vía de acceso de clases, puede especificar el nombre de archivo en la opción config del
# agente ObjectGrid
#     -javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
# Vea los comentarios a continuación para obtener más información sobre cómo alterar temporalmente el valor de instrumentación.

# La primera parte de la configuración es la lista de paquetes y clases que deben incluirse en el dominio de transformación.
# Las inclusiones (paquetes/clases, construyen el dominio de instrumentación) deben estar al principio del archivo.
com.testpackage
com.testClass

# Dominio de transformación: las líneas anteriores son paquetes/clases que construyen el dominio de transformación.
# El sistema procesará clases con el nombre que empiece con los paquetes/clases anteriores para la transformación.
#
# Señal @Exclude: excluir del dominio de transformación.
# La señal @Exclude indica que los paquetes/clases que aparecen después de esa línea deben excluirse del dominio de transformación.
# Se utiliza cuando el usuario desea excluir algunos paquetes/clases de los paquetes incluidos especificados anteriormente
#
# Señal @FieldAccessEntity: dominio de entidad de acceso a campos.
# La señal @FieldAccessEntity indica que los paquetes/clases que aparecen después de esa línea son paquetes/clases de entidad de acceso
# a campos.
# Si no hay ninguna línea después de la señal @FieldAccessEntity, equivale a "Ninguna @FieldAccessEntity especificada".
# El tiempo de ejecución considerará que el usuario no especifica paquetes/clases de entidad de acceso a campos.
# El "dominio de entidad de acceso a campos" es un subdominio del dominio de transformación.
#
# Los paquetes/clases que se listan en el "dominio de entidad de acceso a campos" siempre formará parte del dominio de transformación,
# incluso cuando no se listen en el dominio de transformación.
# La señal @Exclude, que lista paquetes/clases que se han excluido de la transformación, no tiene ningún impacto en el "dominio de entidad de acceso
# a campos".
# Nota: cuando se especifica @FieldAccessEntity, todas las entidades de acceso a campos deben estar en este dominio de entidad de acceso a campos,
#       de lo contrario, puede producirse una FieldAccessEntityNotInstrumentedException.
#
# El archivo de configuración del agente ObjectGrid es ogagent.config
# El tiempo de ejecución buscará este archivo como recurso en la vía de acceso de clases y lo procesará.
# Los usuarios pueden alterar temporalmente el nombre del archivo de configuración del agente ObjectGrid a través de la opción config del agente.
#
# por ejemplo,
#	javaagent:objectgridRoot/lib/objectgrid.jar=config=myOverrideConfigFile
#
# La definición de instrumentación, incluido el dominio de instrumentación, @Exclude y   @FieldAccessEntity se pueden alterar individualmente
# mediante las correspondientes opciones de agente.
# Las opciones de agente designadas incluyen:
#    include              -> se utiliza para alterar temporalmente la definición del dominio de instrumentación que es la primera parte del
#                               archivo de configuración
#    exclude              -> se utiliza para alterar temporalmente la definición @Exclude
#    fieldAccessEntity    -> se utiliza para alterar temporalmente la definición @FieldAccessEntity
#
# Cada opción de agente debe separarse mediante ";"
# Dentro de la opción de agente, el paquete o la clase deben separarse mediante ","
#
# A continuación se muestra un ejemplo que no altera temporalmente el nombre del archivo de configuración:
#    -javaagent:objectgridRoot/lib/objectgrid.jar=include=includedPackage;exclude=excludedPackage;fieldAccessEntity=package1,package2
#
################################

@Exclude
com.excludedPackage
com.excludedClass

@FieldAccessEntity

Consideración sobre el rendimiento

Para obtener un mejor rendimiento, especifique el dominio de transformación y el dominio de entidad de acceso a campos.