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