EJB 计时器服务设置
使用此页面为特定 EJB 容器配置和管理 Enterprise JavaBeans (EJB) 计时器服务。
要查看此管理控制台页面,请单击
。持久计时器和非持久计时器可以同时存在,并且持久配置和非持久配置不是互斥的。应用程序可以同时使用持久计时器和非持久计时器。
当计时器必须在服务器关闭并重新启动后仍然存在时,请使用持久计时器。否则,当服务器关闭过程必须取消计时器时,请使用非持久计时器。
如果持久计时器因为服务器不可用而不启动,那么当计时器重新启动时,将恢复已缺失的尝试。如果非持久计时器因为服务器不可用而不启动,那么不会恢复已缺失的尝试,这是因为服务器关闭过程会取消非持久计时器。
持久 EJB 计时器配置
使用内部 EJB 计时器服务的调度程序实例
该产品提供由 EJB 计时器服务使用的内部调度程序实例。内部调度程序实例是为基本 EJB 计时器功能预配置的,并为 EJB 计时器服务提供有限的配置设置。
您可以指定要使用内部调度程序实例来管理持久计时器任务。他们存留在与服务器进程相关联的 Derby 数据库。选择此选项将排除“使用定制调度程序实例”选项。
缺省值为内部调度程序实例。或者,也可以使用定制调度程序实例。
使用定制 Scheduler 实例
通过定义定制调度程序实例,您可以为 EJB 计时器服务执行更高级的配置。
定制调度程序实例比内部 EJB 计时器服务预先配置的调度程序实例提供更多的配置选项。当在集群环境中运行时,您可能要定义定制调度程序实例,允许所有的集群成员与单个调度程序实例协同运行。此定义使一个集群成员上创建的持久 EJB 计时器能够在其他集群成员上运行。提供定制调度程序实例还可使持久 EJB Timer 能在与其他安排任务相同的数据库中维护。选择此选项将排除“使用内部 EJB 计时器服务的调度程序实例”选项。
您可能要定义一个定制调度程序实例来将调度程序服务使用的线程与 EJB 计时器服务使用的线程隔离开。可以共享定制调度程序实例中的 EJB 计时器服务线程以便供非持久计时器使用,也可以为非持久计时器配置独立线程池。即使具有专用于 EJB 计时器的线程池,但如果没有足够的可用线程,那么计时器到期也可能延期。必须计算计时器数及其到期频率才能确定线程数。
数据源 JNDI 名称
指定数据源的 Java™ 命名和目录接口 (JNDI) 名称,将在该数据源中存储此 EJB 容器的持久 EJB 计时器。名称空间中可用的任何数据源可用于 EJB Timer。
通过指定表前缀使用不同的表时,多个 EJB 容器可以共享单个数据源。
信息 | 值 |
---|---|
数据类型 | String |
缺省 | jdbc/DefaultEJBTimerDataSource |
数据源别名
指定用于访问数据源的用户名和密码的认证别名。
信息 | 值 |
---|---|
数据类型 | String |
表前缀
已添加到 EJB 计时器服务表名(TASK、TREG、LMGR 和 LMPR)之前的字符串。如果这些表不存在,那么在服务器启动期间将创建这些表。请参阅“调度程序服务”,以了解有关手动创建这些表的信息。如果每个实例指定一个不同的前缀字符串,那么多个独立的 EJB 计时器服务可以共享同一数据库。如果使用 removeAutomaticEJBTimers 命令从指定的调度程序移除计时器,那么该调度程序必须具有唯一表前缀。否则,可能会移除比预期多的计时器。
信息 | 值 |
---|---|
数据类型 | String |
缺省 | EJBTIMER_ |
轮询时间间隔
指定 EJB 计时器服务守护程序轮询数据库的时间间隔。每次轮询操作都会消耗很多时间。如果时间间隔较小,而又存在多个已调度任务,那么轮询会使用大部分系统资源。设置为早于此时间间隔到期的新计时器可能要在此时间间隔结束后才会运行。如果此值设置得太大,就有可能将大量计时器事件装入内存,这是因为每次都会装入在下一个轮询时间间隔中发生的所有计时器事件。
信息 | 值 |
---|---|
数据类型 | 整数 |
单位 | 秒数 |
缺省 | 300 |
范围 | 3 到 1800 |
计时器线程数
用于运行并发 EJB 计时器任务的线程数。将计时器线程数设置为零将禁用 EJB 计时器服务。
信息 | 值 |
---|---|
数据类型 | 整数 |
缺省 | 1 |
范围 | 0 到 500 |
调度程序 JNDI 名称
指定用于管理和保存 EJB 计时器的定制调度程序实例的 JNDI 名称。仅当选择使用定制调度程序实例时才使用此字段。内部 EJB 计时器服务的调度程序实例的配置信息不适用于指定的调度程序实例。
信息 | 值 |
---|---|
数据类型 | String |
非持久 EJB 计时器配置
最大重试次数
指定可以重试失败超时的最大次数。如果超时在重试后成功,那么服务器将停止尝试运行该超时。如果重试失败,那么服务器将继续尝试重试,直到超时成功或达到超时限制为止。在达到重试限制后,服务器将不会尝试执行超时,即使超时未成功也是如此。缺省值 -1 表示重试次数无限制。值 0 表示不进行重试,它不符合规范。值 1 或更大的值表示允许进行特定的重试次数。
信息 | 值 |
---|---|
数据类型 | 整数 |
缺省 | -1 |
范围 | -1 或更大 |
重试时间间隔
指定失败超时的重试时间间隔。第一次重试始终立即进行,而无论此处配置的时间间隔是多少。所有其他重试将等待此处指定的时间间隔后才进行。值 0 表示立即进行所有重试。值 1 或更大的值表示重试必须等待特定秒数后才能进行。
信息 | 值 |
---|---|
数据类型 | 整数 |
缺省 | 300 秒 |
范围 | 0 或更大 |
计时器线程数
指定用于非持久计时器的唯一线程池中可用的线程数。仅当非持久计时器不与持久计时器共享线程池时,此配置选项才可用。此配置选项不同于“持久 EJB 计时器配置”部分中的“计时器线程数”配置选项,这是因为该选项仅适用于使用缺省内部调度程序实例的持久计时器。
信息 | 值 |
---|---|
数据类型 | 整数 |
缺省 | 1 |
范围 | 0 到 500 |