Développement d'un bean enterprise ou d'un client d'application d'entreprise pour gérer des sessions ActivitySession

Utilisez cette tâche pour écrire le code requis par un bean EJB de session ou par un client d'application d'entreprise pour gérer une session ActivitySession, sur la base du code fourni à titre d'exemple.

Pourquoi et quand exécuter cette tâche

Dans la plupart des cas, la gestion des sessions ActivitySession au sein d'un bean dépend du conteneur d'EJB. Il vous suffit donc de définir les attributs appropriés du service ActivitySession dans le descripteur de déploiement du module EJB, comme décrit dans la rubrique Configuration des attributs de déploiement du service ActivitySession d'un module EJB. En outre, d'une manière générale, il est pratique de concevoir vos beans enterprise de sorte que toutes les opérations de gestion du service ActivitySession s'effectuent au niveau du bean.

Toutefois, dans certains cas, vous aurez peut-être besoin qu'un bean session ou qu'un client d'application d'entreprise participe directement aux sessions ActivitySession. Vous devez alors écrire le code nécessaire au bean session ou au client d'application d'entreprise pour gérer ses propres sessions ActivitySession.

Remarque : Les beans de session utilisant BMT et dont le paramètre de session d'activité est réglé sur Activation peuvent gérer des sessions ActivitySession. Les beans entity ne peuvent pas gérer des sessions ActivitySessions ; le conteneur EJB gère toujours des sessions ActivitySessions au sein de beans entity.

Lorsque vous vous apprêtez à écrire le code nécessaire à un bean session ou à un client d'application d'entreprise pour gérer des sessions ActivitySession, tenez compte des points traités dans la rubrique Contextes ActivitySession et contextes de transaction.

Pour écrire le code nécessaire à un bean EJB de session ou à un client d'application d'entreprise afin de gérer une session ActivitySession, procédez comme suit en vous basant sur l'extrait de code fourni à titre d'exemple :

Procédure

  1. Extrayez un contexte initial pour la session ActivitySession.
  2. Extrayez une implémentation de l'interface UserActivitySession, par consultation JNDI de l'URL java:comp/websphere/UserActivitySession. L'interface UserActivitySession permet de commencer et de terminer des services ActivitySessions et d'interroger divers attributs du service ActivitySession actif associé à l'unité d'exécution.
  3. Spécifiez le délai d'attente, en secondes, au-delà duquel toute session ActivitySession lancée est automatiquement arrêtée par le service ActivitySession. Si le bean session ou le client d'application d'entreprise ne définit pas spécifiquement cette valeur, le délai d'attente par défaut (300 secondes) est utilisé.

    Le délai d'attente par défaut peut également être remplacé pour chaque serveur d'applications, au niveau de la sous-fenêtre serveur-> Service Activity Session de la console d'administration.

  4. Lancez la session ActivitySession en appelant la méthode beginSession() de UserActivitySession.
  5. Dans la session ActivitySession, appelez les méthodes métier qui effectueront le travail nécessaire. Vous pouvez également appeler d'autres méthodes de la session UserActivitySession pour gérer la session ActivitySession ; par exemple, pour obtenir le statut de la session ActivitySession ou pour effectuer un point de contrôle de toutes les ressources ActivitySession utilisées dans la session ActivitySession.
  6. Arrêtez le service ActivitySession en appelant la méthode endSession() de UserActivitySession.

Exemple

L'extrait de code suivant constitue un exemple de base de l'utilisation de l'interface UserActivitySession :
// Obtention du contexte initial
  InitialContext ic =  new InitialContext();
// Recherche d'UserActivitySession
  UserActivitySession uas = (UserActivitySession)ic.lookup("java:comp/websphere/UserActivitySession");

// Définition d'un délai d'attente de 60 secondes pour ActivitySession
  uas.setSessionTimeout(60);
// Lancement d'un nouveau contexte ActivitySession
  uas.beginSession();
// Réalisation de travail dans ce contexte
  MyBeanA beanA.doSomething();
  ...
  MyBeanB beanB.doSomethingElse();
// Fin du contexte
  uas.endSession(EndModeCheckpoint);

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tas_usebma
Nom du fichier : tas_usebma.html