为 Network Deployment 配置计时器服务

您可以为可以通过应用程序服务器关闭和重新启动持久存储的计时器配置 Enterprise JavaBeans (EJB) 计时器服务。

准备工作

在您完成本主题中记录的任一过程之前,数据库实例必须存在。 例如,您可能具有 DB2® 或 Oracle 实例。 必须配置计时器服务才能使用该数据库。

有关此任务

WebSphere® Application Server 实现 Enterprise JavaBeans (EJB) 计时器服务。 根据您的业务需要,可以使用持久性计时器或非持久性计时器。 如果正在为基于时间的事件创建计时器,该事件要求确保计时器在超过服务器的生命周期后仍然存在(在服务器关闭并重新启动后仍然存在),那么持久性计时器非常有用。 先前启动的持久性计时器在服务器启动时会自动启动,并且他们需要数据库实例。

非持久性计时器不使用数据存储器,并且当应用程序服务器停止或未能保持活动状态时会被取消。 非持久性计时器只存在于创建他们的服务器上。 在集群环境中,如果您的 EJB 应用程序自动创建非持久性计时器,并且此应用程序镜像到多个服务器上,那么每个服务器包含运行在该服务器环境中的本身的非持久性计时器。 以编程方式创建的非持久性计时器仅在创建他们的集群成员中运行。

持久性和非持久性计时器都需要工作管理器。 持久性计时器使用调度程序服务所使用的工作管理器。 缺省情况下,非持久性计时器使用服务器的缺省工作管理器,但可以通过 EJB 计时器脚本编制将这些计时器配置为使用其他工作管理器。 非持久性计时器不使用调度程序服务。

在 Network Deployment 环境中配置持久性计时器主要是关于如何使用相同数据源。

可以配置计时器服务以在多个服务器之间共享同一数据库。 然后,每个服务器必须使用自己独有的数据库表。 完成下列其中一个过程来配置计时器服务,以在多个服务器之间共享同一数据库:

避免麻烦: 配置 EJB 计时器/调度程序时,请记住缺省调度程序在缺省情况下使用基于简单文件的 Apache Derby 数据库,以便您可以快速启动并运行正常运行的环境。 请勿将 Derby 数据库用于生产用途。 此外,缺省 Derby 数据库既不支持集群作业调度程序,也不支持集群批处理容器。

过程

  • 为集群配置调度程序实例,然后配置计时器服务以使用该调度程序实例。
    1. 为集群配置调度程序实例。
      完成此操作时,您就已经创建了定制调度程序实例。 下一步,请配置计时器服务以使用该定制实例。
    2. 在管理控制台中,单击 服务器 >应用程序服务器 > servername > EJB 容器设置 > EJB 计时器服务设置
      将显示计时器服务设置面板。
    3. 选择 使用定制调度程序实例
    4. 从列表中选择 调度程序 JNDI 名称
    5. 单击应用
    6. 单击“确定”。
  • 配置每个服务器的计时器服务缺省调度程序实例以使用相同的数据源。
    1. 选择 使用内部 EJB 计时器服务调度程序实例
      为了定制预配置的实例:
    2. 从菜单列表中选择您的数据源 JNDI 名称以更改该数据源。 您可以使用任何受支持的数据库,例如 DB2 或 Oracle) 从菜单列表中选择 数据源 JNDI 名称
      无法共享列出的缺省数据库,因为它是仅为一个服务器配置的,并且它使用 Apache Derby 的单一服务器版本,每次仅一个服务器进程能访问此版本。
    3. 输入您选择的 数据源别名
    4. 如果您希望多个服务器进程使用相同的数据库,但使用不同的表,请输入您选择的 表前缀
    5. 输入 轮询时间间隔 值 (以毫秒计)。
      有关更多详细信息,请参阅有关配置计时器服务的信息。
    6. 单击应用
    7. 单击“确定”。
    8. 更改所有服务器进程以使用先前从 数据源 JNDI 名称 菜单列表中选择的相同数据库。