配置 Enterprise JavaBeans 异步方法

您可以将 EJB 容器配置为使用 ContextService 实例,以控制调用异步 EJB 方法时所捕获的受管线程上下文。启动 EJB 方法之前,会在异步线程上建立捕获的上下文。

关于此任务

如果启用了应用程序安全性,那么仅安全上下文会传播到对其启动了异步 EJB 方法的线程。当您需要将其他上下文传播到异步线程时,将 ContextService 实例配置为覆盖缺省行为这一做法非常有用。

对异步线程启动 EJB 方法之前,EJB 容器会建立下列与 EJB 相关联的上下文:

  • 类装入器上下文
  • Java™ EE 元数据上下文

因此,不必从调用线程传播这些上下文,这是因为 EJB 容器会将这些上下文替换为与目标 EJB 相关联的上下文。

过程

  1. 配置应用程序服务器,以便在 server.xml 文件中包括支持异步方法的 EJB 功能部件并包括并发功能部件。例如,将以下内容添加到 server.xml 文件:
    <featureManager>
        <feature>appSecurity-2.0</feature>
        	<feature>concurrent-1.0</feature>
        <feature>ejbLite-3.2</feature>
    </featureManager>
  2. 配置 ContextService 实例,以捕获并传播 server.xml 文件中的所需上下文。以下示例定义等价于异步方法的缺省行为的 ContextService 配置:
    <contextService id="SameAsNoConfigAsyncContextService">
        <securityContext/>
    </contextService>

    如果未在 ContextService 定义中包括安全上下文,那么不会捕获和传播安全上下文。ContextService 定义是缺省行为的替代项,而不是向缺省行为添加的内容。

    根据要捕获和传播的其他上下文,可能需要进行其他特定于功能部件和上下文的配置。

  3. 将 EJB 容器配置为使用 server.xml 文件中的特定 ContextService 配置。例如:
    <ejbContainer>        
        <asynchronous contextServiceRef="EJBAsyncContextService"/>
    </ejbContainer>

用于指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_config_ejbasynch
文件名:twlp_config_ejbasynch.html