以毫秒为单位的超时,用于由消息驱动的 bean 侦听器会话以非 ASF 的操作方式来执行的同步消息接收。
仅当您希望在应用程序服务器上为所有消息驱动的 bean 侦听器启用非 ASF 的操作方式时,您才应该将此属性设置为非零值。
消息侦听器服务有两种操作方式,应用程序服务器设施(ASF)和非应用程序服务器设施(非 ASF)。
- ASF 方式意味着为应用程序提供并发和事务支持。对于发布/预订消息驱动的 bean,ASF 方式提供更佳的吞吐量和并发性,因为在非 ASF 方式中侦听器是单线程的。
- 非 ASF 方式主要供不支持 JMS ASF 的第三方消息传递提供程序使用,它是对 JMS 规范的可选扩展。非 ASF 方式也是事务性的,但因为路径长度比 ASF 方式短,所以通常提供改进的性能。
如果有以下情况,那么使用非 ASF:
- 第三方消息传递提供程序未提供 JMS ASF 支持
- 您在使用具有 WebSphere® 主题连接(使用 DIRECT 端口)的消息驱动的 bean,这是因为使用该端口的嵌入式发布/预订代理不支持 XA 事务或 JMS ASF。
- 消息顺序是严格要求的
数据类型 |
整型 |
单元 |
毫秒 |
缺省值 |
ASF 方式(定制属性未创建) |
范围 |
0 或大于 0 毫秒
- 0
- 禁用非 ASF 方式
- 1 或更多
- 以毫秒为单位的超时,用于非 ASF 消息驱动的 bean 侦听器同步会话接收
|
建议 |
如果发生事务超时,那么消息必须回收引起的额外工作。如果您希望使用非 ASF 方式,那么将此属性设置为低于事务超时,但至少为消息驱动的 bean 的 onMessage() 方法的最长持续时间保留余地。例如,如果消息驱动的 bean 的 onMessage() 方法通常最多花 10 秒,且事务超时设置为 120 秒,那么您可以将 NON.ASF.RECEIVE.TIMEOUT 属性设置为不超过 110000(110000 毫秒,即 110 秒)。 |