批处理控制器 Bean

在其部署描述符中,需要批处理应用程序来声明特殊无状态会话 Bean。 此 bean 用作批处理作业控制器。

每个应用程序仅可包含一个控制器 Bean。 只能在单个工作类中包含控制器 Bean ,并且 批处理应用程序 只能定义单个工作类。 安装应用程序时会创建此单个工作类。 可以将此工作类与具有任意或队列时间目标类型的任何服务策略关联。 此 bean 的实现由该产品提供,而不是由批处理应用程序提供。 必须在批处理应用程序部署描述符中声明 Bean。 每个批处理应用程序仅可定义一个控制器 Bean。 可使用控制器 bean 上声明的资源引用和 EJB 引用对在其中声明控制器 bean 的批处理应用程序的数据流进行批处理。 例如,如果应用程序中的批处理数据流需要访问 WebSphere® Application Server 数据源,那么可以在控制器 Bean 上声明对该数据源的资源引用,并且批处理数据流可以在运行时在 java:comp/env 名称空间中查找该数据源。

限制

  • Home 接口必须是 com.ibm.ws.batch.BatchJobControllerHome.
  • 远程接口必须为 com.ibm.ws.batch.BatchJobController
  • EJB 类必须为 com.ibm.ws.batch.BatchJobControllerBean
  • 事务类型可以是 bean 或容器。
  • 会话类型必须为无状态。
  • 每个批处理应用程序最多只能有一个批处理控制器无状态会话 bean。
以下示例部署描述符说明批处理控制器无状态会话 bean:
<session id="BatchController>
    <ejb-name>BatchController</ejb-name>
    <home>com.ibm.ws.batch.BatchJobControllerHome</home>
    <remote>com.ibm.ws.batch.BatchJobController</remote>
    <ejb-class>com.ibm.ws.batch.BatchJobControllerBean</ejb-class>
    <session-type>Stateless</session-type>
    <transaction-type>Bean</transaction-type>
    <resource-ref id="ResourceRef_1117024737807">
            <description></description>
            <res-ref-name>wm/BatchWorkManager</res-ref-name>
            <res-type>commonj.work.WorkManager</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
         </resource-ref>
</session>