Asynchrone Methoden für Enterprise JavaBeans konfigurieren

Sie können den EJB-Container so konfigurieren, dass er eine ContextService-Instanz verwendet, die steuert, welche verwalteten Threadkontexte beim Aufruf einer asynchronen EJB-Methode erfasst werden. Die erfassten Kontexte werden im asynchronen Thread eingerichtet, bevor die EJB-Methode gestartet wird.

Informationen zu diesem Vorgang

Wenn die Anwendungssicherheit aktiviert ist, wird nur der Sicherheitskontext an die Threads weitergegeben, in denen asynchrone EJB-Methoden gestartet werden. Die Konfiguration einer ContextService-Instanz zum Überschreiben des Standardverhaltens ist hilfreich, wenn zusätzliche Kontexte an die asynchronen Threads übergeben werden müssen.

Vor dem Starten der EJB-Methode in einem asynchronen Thread richtet der EJB-Container die folgenden Kontexte ein, die der EJB zugeordnet sind:

  • Kontext für das Klassenladeprogramm
  • Kontext für die Java™ EE-Metadaten

Deshalb ist es nicht erforderlich, dass der aufrufende Thread diese Kontexte übergibt, da der EJB-Container die Kontexte durch die Kontexte ersetzt, die der Ziel-EJB zugeordnet sind.

Vorgehensweise

  1. Konfigurieren Sie den Anwendungsserver mit einem EJB-Feature, das asynchrone Methoden unterstützt, und mit einem Feature für parallele Ausführung (concurrent) in der Datei server.xml. Fügen Sie der Datei server.xml beispielsweise folgende Zeilen hinzu:
    <featureManager> 
        <feature>appSecurity-2.0</feature>
        	<feature>concurrent-1.0</feature>
        <feature>ejbLite-3.2</feature>
    </featureManager>
  2. Konfigurieren Sie in der Datei server.xml eine ContextService-Instanz, die die gewünschten Kontexte erfasst und weitergibt. In diesem Beispiel wird eine ContextService-Konfiguration definiert, die dem Standardverhalten für asynchrone Methoden entspricht:
    <contextService id="SameAsNoConfigAsyncContextService">
        <securityContext/>
    </contextService>

    Wenn der Sicherheitskontext nicht in die ContextService-Definition eingeschlossen wird, wird er nicht erfasst und nicht weitergegeben. Die ContextService-Definition ersetzt das Standardverhalten und ergänzt es nicht.

    Je nach den weiteren Kontexten, die erfasst und weitergegeben werden sollen, kann eine zusätzliche feature- und kontextspezifische Konfiguration erforderlich sein.

  3. Konfigurieren Sie den EJB-Container so, dass er die spezielle ContextService-Konfiguration in der Datei server.xml verwendet, z. B.:
    <ejbContainer>
        <asynchronous contextServiceRef="EJBAsyncContextService"/>
    </ejbContainer>

Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_ejbasynch
Dateiname: twlp_config_ejbasynch.html