为持久性计时器配置 Enterprise JavaBeans 计时器服务
对于持久性 EJB 计时器,可配置 EJB 计时器服务以控制用于存储这些计时器的数据源、计时器的重试时间间隔以及针对超时回调方法调用失败的重试次数。
关于此任务
如果启用了 ejbPersistentTimer 功能部件,那么必须配置数据源以保存计时器,否则使用持久性计时器的任何尝试将失败。如果已配置 DefaultDataSource 并且系统未配置任何其他特定数据源以供 EJB 计时器服务使用,那么 EJB 计时器服务将使用 DefaultDataSource。
而且,EJB 计时器服务会以每 5 分钟一次的频率对持久性计时器重试超时回调方法的失败调用,直到超时回调方法成功完成。
使用以下选项来配置持久性计时器。
- EJB 持久性计时器安排的执行程序
指定对控制持久性计时器行为的持久性执行程序的引用。系统提供了缺省实例 defaultEJBPersistentTimerExecutor,它将 DefaultDataSource 用作持久性存储。EJB 持久性计时器安排的执行程序引用可能更改为定制配置,或者缺省实例可能被覆盖以更改特定值。以下选项对持久性执行程序可用:
- 重试限制
指定可重试失败超时回调方法的最大次数。如果超时回调方法在重试时成功,那么服务器将停止尝试运行该方法。如果重试失败,那么服务器将继续尝试,直到超时回调方法成功或达到重试限制。在达到重试限制后,服务器不会尝试运行超时回调方法,即使先前尝试未成功也是如此。缺省值 -1 表示重试次数无限制。值 0 指示不重试,它不符合 EJB 规范。值 1 或更高的值指示允许进行特定次数的重试。
对于不需要非持久性计时器在每个安排时间完成的应用程序,更改针对非持久性计时器重试超时回调方法的次数的配置很有用。例如,如果应用程序创建的非持久性计时器安排为每 5 分钟运行一次,那么将重试次数配置为 0 会导致该计时器每 5 分钟运行一次,而不理会它的运行是否成功。
- 重试时间间隔
指定失败超时回调方法的重试时间间隔。第一次重试始终立即进行,无论对此值配置的时间间隔如何都是如此。所有其他重试等待针对此值指定的时间间隔。值 0 表示立即进行所有重试。值 1 或更高的值指示重试必须等待该特定秒数。缺省值为 300 秒。
对于超时回调方法在安排时间前完成很重要的应用程序,对非持久性计时器配置不同重试时间间隔很重要。此方法也适用于可接受将计时器完成延迟至稍晚时间(例如,稍晚重试时间间隔)以启用超时回调方法的应用程序,以使应用程序有更好的机会成功运行。
- 持久性任务存储
指定要使用的数据源。系统提供了缺省实例 defaultDatabaseStore,它将 DefaultDataSource 用作持久性存储。