Service ActivitySession
Le service ActivitySession offre une autre portée d'unité de travail (UOW) que celle fournie par les contextes de transactions globales. Un contexte ActivitySession peut durer plus longtemps qu'un contexte de transactions globales et peut encapsuler des transactions globales.

Bien qu'une transaction globale ait pour fonction de coordonner plusieurs gestionnaires de ressources, son contexte est souvent utilisé par les applications d'entreprise comme contexte de "session" par l'intermédiaire duquel elles accèdent aux instances EJB (Enterprise JavaBeans). Un contexte ActivitySession correspond à ce type de contexte de session et peut être utilisé de préférence à une transaction globale dans les cas où la coordination de gestionnaires de ressources avec validation en deux phases n'est pas nécessaire. En outre, une session ActivitySession peut être associée à une session Http pour étendre une "session cliente" à un client HTTP.
La prise en charge du service ActivitySession est disponible pour les composants Web, EJB et Java™ pour les applications d'entreprise. Les composants EJB peuvent être répartis entre les beans qui exploitent des sessions ActivitySession gérées par conteneur et les beans qui utilisent des sessions ActivitySession gérées par bean.
Le service ActivitySession fournit une interface de programmation d'application UserActivitySession aux composants d'application d'entreprise qui utilisent des sessions ActivitySession gérées par beans pour la démarcation gérée par application du contexte ActivitySession. Le service ActivitySession fournit également une interface de programmation système pour la démarcation gérée par conteneur du contexte ActivitySession et pour le recrutement géré par conteneur des ressources à une phase (RMLT) dans de tels contextes.
L'interface UserActivitySession est obtenue par consultation JNDI (Java Naming and Directory Interface) de java:comp/websphere/UserActivitySession. Cette interface n'est pas disponible pour les beans enterprise qui utilisent des sessions ActivitySession gérées par conteneur et toute tentative d'obtention de cette interface par de tels beans se solde par des exceptions NotFound.
Selon un scénario courant, une application d'entreprise accède à un ou plusieurs beans enterprise dotés de ressources non transactionnelles (validation à phase unique). L'application ou son conteneur utilise l'interface UserActivitySession pour définir les limites de démarcation dans lesquelles les opérations sur les beans d'entreprise sont groupées et pour soumettre ces opérations à un point de contrôle ou les supprimer. La logique métier des beans d'entreprise n'a besoin d'utiliser aucune interface ActivitySession. Le conteneur dans lequel les beans enterprise sont déployés garantit la coordination des mises à jour de gestionnaires de ressources à phase unique sous-jacents.
L'application peut soumettre un service ActivitySession à un point de contrôle pour créer un nouveau point de cohérence dans celui-ci sans arrêter le service. L'application peut également utiliser une opération de réinitialisation pour renvoyer un travail exécuté dans le service ActivitySession au dernier point de cohérence. L'application peut arrêter le service ActivitySession à l'aide d'une opération pour contrôler ou pour réinitialiser toutes les ressources.