Configuration des méthodes asynchrones EJB (Enterprise JavaBeans)

Vous pouvez configurer le conteneur d'EJB pour utiliser une instance ContextService pour contrôler quels contextes d'unités d'exécution gérés sont capturés lorsqu'une méthode EJB asynchrone est appelée. Les contextes capturés sont établis sur l'unité d'exécution asynchrone avant le démarrage de la méthode EJB.

Pourquoi et quand exécuter cette tâche

Lorsque la sécurité d'application est activée, seul le contexte de sécurité est propagé dans les unités d'exécution sur lesquelles les méthodes EJB asynchrones sont démarrées. La configuration d'une instance ContextService pour ignorer le comportement par défaut est utile si vous avez besoin de propager des contextes supplémentaires sur les unités d'exécution asynchrones.

Avant de démarrer la méthode EJB sur une unité d'exécution asynchrone, le conteneur d'EJB établit les contextes suivants qui sont associés à l'EJB :

  • le contexte de chargeur de classe
  • le contexte de métadonnées Java™ EE

Par conséquent, il n'est pas nécessaire de propager ces contextes depuis l'unité d'exécution appelante car le conteneur d'EJB les remplace par les contextes associés à l'EJB cible.

Procédure

  1. Configurez le serveur d'applications pour inclure à la fois une fonction d'EJB prenant en charge les méthodes asynchrones et la fonction simultanée dans le fichier server.xml. Par exemple, ajoutez ce qui suit au fichier server.xml :
    <featureManager>
        <feature>appSecurity-2.0</feature>
        <feature>concurrent-1.0</feature>
        <feature>ejbLite-3.2</feature>
    </featureManager>
  2. Configurez une instance ContextService pour capturer et propager les contextes désirés dans le fichier server.xml. Cet exemple définit une configuration ContextService qui est équivalente au comportement par défaut des méthodes asynchrones :
    <contextService id="SameAsNoConfigAsyncContextService">
        <securityContext/>
    </contextService>

    Si le contexte de sécurité n'est pas inclus dans la définition ContextService, il n'est pas capturé ni propagé. La définition ContextService est un remplacement du comportement par défaut, et non un complément de ce dernier.

    For z/OS platformsCet exemple définit une configuration ContextService qui capture et propage également le contexte WLM z/OS :
    <contextService id="EJBAsyncContextService">
        <securityContext/>
        <zosWLMContext defaultTransactionClass="TRAN1"/>
    </contextService>

    Des fonctions supplémentaires et une configuration spécifique au contexte peuvent être nécessaires en fonction des contextes additionnels qui sont capturés et propagés.

  3. Configurez le conteneur d'EJB pour utiliser la configuration spécifique de ContextService dans le fichier server.xml. Exemple :
    <ejbContainer>
        <asynchronous contextServiceRef="EJBAsyncContextService"/>
    </ejbContainer>

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

Nom du fichier : twlp_config_ejbasynch.html