Perfilado de aplicaciones
Puede utilizar el perfilado de aplicaciones para identificar unidades de trabajo determinadas en el entorno de ejecución del producto. Durante el tiempo de ejecución se puede adaptar el soporte a los requisitos exactos de dicha unidad de trabajo.
El perfilado de aplicaciones requiere un conocimiento preciso de la configuración de las transacciones de la aplicación y de la interacción de la aplicación con su estado permanente durante el curso de cada transacción.
Puede ejecutar el análisis en modalidad de círculo cerrado o círculo abierto. Un análisis de círculo cerrado presupone que todos los posibles clientes de la aplicación están incluidos en el análisis y que el análisis resultante es un análisis completo y correcto. Los resultados de un análisis de círculo cerrado es un informe del conjunto de todas las transacciones que puede invocar un cliente web, JMS o un cliente de aplicaciones. En los resultados se excluyen muchas transacciones potenciales que no se ejecutan nunca durante el tiempo de ejecución.
Un análisis de círculo abierto presupone que no todos los clientes están disponibles para el análisis o que el análisis no puede devolver resultados completos o precisos. Un análisis de círculo abierto devuelve el conjunto completo de las transacciones posibles.
El resultado de un análisis permanece como una configuración de perfilado de aplicaciones. La herramienta de ensamblaje establece las tareas gestionadas por contenedor para servlets, archivos JSP (JavaServer Server Pages), clientes de aplicaciones y MDB (Message Driven Beans). Se crean los perfiles de aplicación de las tareas con el intento de acceso adecuado para las entidades listadas en la transacción que representa la tarea. No obstante, en la práctica, existen muchas situaciones en las que la herramienta devuelve como mucho resultados incompletos. No todas las aplicaciones son aptas para un análisis estático. Algunos patrones de mandatos y fábrica hacen que resulte imposible determinar los gráficos de llamada. La herramienta no da soporte al análisis de las denominadas sesiones de actividad.
Debe examinar los resultados del análisis con mucho detenimiento. En muchos casos deberá modificarlos para que se ajusten a los requisitos de la aplicación. Sin embargo, la herramienta puede ser un punto de partida eficaz para la mayor parte de las aplicaciones y puede ofrecer una configuración rápida y completa de los perfiles de aplicación para algunas aplicaciones.
El intento de acceso es el único componente de tiempo de ejecución que utiliza las funciones de perfilado de aplicaciones. Por ejemplo, puede configurar una transacción de modo que cargue un bean de entidad que esté fuertemente bloqueado para actualizaciones y configurar otra transacción para que cargue el mismo bean de entidad sin bloqueos.
- Tareas
- Una tarea es un nombre configurable de una unidad de trabajo. Unidad de
trabajo en este caso, indica una transacción o sesión de actividad. Normalmente, el nombre de
tarea se asigna de forma declarativa en un componente J2EE que puede iniciar una
unidad de trabajo. Con más frecuencia, la tarea se configura en un método de un archivo
Enterprise JavaBeans declarado para transacciones gestionadas por contenedor
o por bean. Toda unidad de trabajo que empiece en el ámbito de una tarea configurada se
asocia con ese nombre de tarea. Sólo se puede asignar un nombre a una unidad de
trabajo cuando se inicia, y el nombre no se puede modificar durante toda la
vida útil de esa unidad de trabajo. Una unidad de trabajo ignora las siguientes
configuraciones de nombre de tarea después de que se haya iniciado. La tarea se
utiliza el tiempo que dura la unidad de trabajo para identificar políticas
configuradas específicas de esa unidad de trabajo.Nota: Si selecciona el atributo Modalidad de compatibilidad 5.x en la página de la consola del servicio de perfilado de aplicaciones, las tareas configuradas en las aplicaciones J2EE 1.3 no se asocian necesariamente con unidades de trabajo, y se pueden aplicar y alterar temporalmente de forma arbitraria. Esta modalidad no se recomienda ya que puede producir puntos muertos inesperados durante el acceso a la base de datos. Las tareas no se comunican en las solicitudes entre aplicaciones que se ejecutan con la modalidad de compatibilidad 5.x de perfilado de aplicaciones y las aplicaciones que no se ejecutan con esa modalidad de compatibilidad.
Para que un cliente de la Versión 6.x interactúe con aplicaciones ejecutadas bajo la modalidad de compatibilidad de perfilado de aplicaciones 5.x, debe establecer la propiedad de sistema appprofileCompatibility en true en el proceso de cliente. Para ello, especifique la opción -CCDappprofileCompatibility=true cuando invoque el mandato launchClient.
- Perfiles
- Un perfile es simplemente una correlación de una tarea con un conjunto de políticas de intento de acceso configuradas en beans de entidad. Cuando al invocar un bean (ya sea de un método finder, un getter de CMR o una consulta
dinámica) sea necesario recuperar datos desde el sistema de fondo, se utiliza la tarea actual
asociada con la solicitud para determinar los requisitos exactos de la transacción. Se carga el mismo bean y éste se comporta de forma diferente en el contexto de la correlación de tarea a perfil.
Cada perfil proporciona al desarrollador la oportunidad de volver a
configurar el intento de acceso de la aplicación. Si una solicitud está en funcionamiento durante la ausencia de una tarea, el entorno de ejecución utiliza un intento de acceso a nivel de método (si lo hay) o un intento de acceso predeterminado a nivel de bean. Nota: La configuración de perfiles de aplicación son datos de configuración de ámbitos. Si un módulo EJB (Enterprise Javabean) contiene una configuración de perfil de aplicaciones, el servicio de perfiles de aplicación regula de forma implícita el resto de módulos EJB, aunque no contengan datos de configuración de perfiles de aplicación.
Por ejemplo, una aplicación tiene dos módulos EJB: EJBModule1 y EJBModule2.
EJBModule1 tiene un perfil de aplicación denominado AppProfile1. Este AppProfile1 está registrado por una tarea denominada task1. Esta task1 se convierte en una tarea conocida para la aplicación y se reconoce cuando se asocia con una unidad de trabajo dentro de esta aplicación. Con la presencia de cualquier tarea conocida para la aplicación, se ignoran las configuraciones de intentos de acceso de nivel de método y sólo se aplican las configuraciones de intentos de acceso de nivel de bean.
EJBModule2 no contiene datos de configuración de perfiles de aplicaciones. Todos los beans de entidad no están configurados con intento de acceso de nivel de bean explícitamente, pero algunos métodos tienen configuraciones de intentos de acceso de nivel de método. Si se carga un bean de entidad de EJBModule2 en una unidad de trabajo que está asociada con task1, la configuración de intentos de acceso de nivel de bean se aplica y la configuración de intentos de acceso de nivel de método se ignora. Puesto que el intento de acceso de nivel de bean no se ha establecido de forma explícita, se aplica el intento de acceso de nivel de bean, que es wsPessimisticUpdate-WeakestLockAtLoad.