Interface TaskNameManager
L'interface TaskNameManager est l'interface de programme de la fonction de profilage d'application. Comme parfois il peut être nécessaire de définir par programmation le nom d'une tâche, l'interface TaskNameManager permet à la fois le remplacement de la tâche en cours associée à l'unité d'exécution et la réinitialisation de la tâche en cours pour la remplacer par la tâche d'origine.
Le profilage d'application permet d'identifier une unité de travail spécifique pour l'environnement d'exécution WebSphere Application Server. Le module d'exécution peut adapter son support aux besoins spécifiques de cette unité de travail. Le module Tentative d'accès est actuellement le seul composant 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 concepts pour remplir son rôle : les tâches et les profils.
Une tâche est un nom d'unité de travail pouvant être configuré. Unit of work in this case means either a transaction or an ActivitySession.
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 (container managed relationship) ou une requête dynamique) nécessite d'extraire des données du système dorsal, la tâche de l'unité de travail active 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.
A l'exception des applications J2EE 1.3 exécutées sur un serveur où l'attribut de mode de compatibilité 5.x est sélectionné, cette interface ne peut pas être utilisée dans les Enterprise JavaBeans configurés pour des transactions ou des ActivitySessions gérées par conteneur car les unités de travail peuvent uniquement être associées à une tâche au moment exact où l'unité de travail est exécutée. L'appel destiné à définir le nom de la tâche doit par conséquent être effectué avant le début de l'unité de travail. Les unités de travail ne peuvent pas être nommées une fois qu'elles sont commencées. Les appels effectués sur cette interface pendant l'exécution d'une unité de travail gérée par conteneur sont ignorés.
L'interface TaskNameManager est disponible pour tous les composants J2EE utilisant la fonction de recherche JNDI (Java Naming and Directory Interface) suivante :
java:comp/websphere/AppProfile/TaskNameManager
package com.ibm.websphere.appprofile;
/**
* The TaskNameManager is the programmatic interface
* to the application profiling function. Using this interface,
* programmers can set the current task name on the
* thread of execution. The task name must have been
* configured in the deployment descriptors as a task
* reference associated with a task. The set task
* name's scope is the duration of the method
* invocation in the EJB and Web components and for
* the duration of the client process, or until the
* resetTaskName() method is invoked.
*/
public interface TaskNameManager {
/**
* Set the thread's current task name to the specified
* parameter. The task name must have been configured as
* a task reference with a corresponding task or the
* IllegalTaskName exception is thrown.
*/
public void setTaskName(String taskName) throws IllegalTaskNameException;
/**
* Sets the thread's task name to the value that was set
* at, or imported into, the beginning of the method
* invocation (for EJB and Web components) or process
* (for J2EE clients).
*/
public void resetTaskName();
}