调整 JCA 1.5 消息驱动的 Bean 的入站消息流
本主题描述如何为消息驱动的 Bean (MDB) 调整消息传递,这些消息驱动的 Bean 是作为 Java™ Platform, Enterprise Edition (Java EE) 连接器体系结构 (JCA) 版本 1.5 入站资源适配器的消息端点来部署的。
开始之前
- 缺省消息传递提供程序。
- IBM MQ 消息传递提供程序。
对于缺省消息传递提供程序,应按相关任务中所述配置消息调速。对于 IBM MQ 消息传递提供程序,应通过在“IBM MQ 消息传递提供程序激活规范”面板上设置最大服务器会话数属性或通过 maxPoolSize 属性(使用 createWMQActivationSpec 或 modifyWMQActivationSpec wsadmin 命令时)来配置消息调速。
如果有符合 JCA 1.5 的第三方 JMS 消息传递提供程序,请向供应商咨询以了解本主题中所述的消息调速方法是否适用于他们的消息传递提供程序。
关于此任务
对于使用实现 Java EE 连接器体系结构 (JCA) 版本 1.5 消息传递支持的资源适配器的安装,WebSphere Application Server 会提供消息调速支持以控制将消息传递至端点消息驱动的 Bean (MDB) 的过程。可以使用此支持来避免重载带有大量入站消息的服务器。
以消息驱动的 Bean 为基础进行的消息传递调速是通过以下方式来完成的:限制与该 MDB 绑定的适配器可以创建的最大端点实例数。当该适配器尝试创建端点实例时,会创建该 MDB 实例的代理并按 JCA 1.5 体系结构所允许的那样返回该代理。代理与 MDB 实例之间存在一一对应关系,并且与 MDB 实例相似,代理的合用依据是与消息驱动的 Bean 相关联的最小和最大池大小值。调速是通过管理代理池来执行的。
在适配器尝试创建端点时,如果当前已创建的端点代理数等于池的最大大小,那么适配器 createEndPoint 处理会返回不可用异常。如果显示此消息,那么适配器在将至少一个端点释放回服务器以供复用之前,不会再发出任何 createEndPoint() 请求。因此,安装可以根据为与每个 JCA 1.5 消息驱动的 Bean 相关联的池的最大大小设置控制对至 JCA 1.5 MDB 的消息传递的调速。
可以通过以下方式来指定池大小:使用 com.ibm.websphere.ejbcontainer.poolsize JVM 系统属性来定义无状态 bean、消息驱动的 Bean 和实体 bean 的最小和最大池大小。对于支持 JCA 1.5 的消息驱动的 Bean,指定的最大池大小值限制了可以为该消息驱动的 Bean 创建的消息端点实例数。例如,如果安装将 JCA 1.5 MDB 池的最大大小设置为 5,那么至多可以将 5 条消息并行地传递至该消息驱动的 Bean 的 5 个实例。可通过使用 wsadmin 脚本编制工具来指定此属性,也可在管理控制台以环境变量的形式指定此属性。
过程
- 打开管理控制台。
- 选择服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name。
- 在服务器基础结构下,展开 Java 和进程管理 > 进程定义。
选择服务方。
- 在“其他属性”下,选择 Java 虚拟机。
- 在“其他属性”下,选择定制属性。
- 选择新建。 将显示带有三个常规属性字段的面板。可以在此面板中设置该属性。
- 在名称字段中,输入 com.ibm.websphere.ejbcontainer.poolsize。
- 要填写值字段,请参阅EJB 容器系统属性以了解这些值。
- 定义属性值后,单击确定。 现在系统会提示您保存所做更改。
- 单击保存。