在正常情况下,本场景中所有的调度程序都会和同样的数据库表进行通信。然而,在这种情况下,Nodes B 和 C 中的服务器访问的是前缀为 MAIN1 的表,而 Nodes A 和 D 则访问前缀为的 MAIN2 表。这意味着 Nodes B 和 C 中的调度程序有冗余,并独立于 Nodes A 和 D 中的冗余调度程序。在这种配置下,应用程序保留原样,但调度程序工作被分割在两个不同的节点上。虽然可以将 Nodes A 和 B 合并形成 Node X,将 Nodes C 和 D 合并形成 Node Y,但也很难保证一个节点不会从 MAIN1 和 MAIN2 得到两个租用权。调度程序服务并没有“优先”守护的理念。在本场景中,假如要强制使哪一个调度程序获取租用权,则治理员需要执行以下操作之一:
在这一类场景中,应用程序开发人员和治理员必须理解:由于已经将调度程序作了分割,应用程序只能看到所调度的任务的一个子集。因此,应用程序在治理已完成调度的任务时需要查看两个分区中的任务。例如,假如有个任务在 Node A 中创建,而操作人员需要取消这一任务,该操作人员就需要知道它是在 Node A 中创建的,或者试着在所有节点上取消它。
带有强制租用权的分割的调度程序 我们可能希望编写这样的应用程序:对不同的任务进行分类并在每个子集在运用不同的分割的调度程序。例如,创建一个调度程序来处理来自奇数 ID 号或者偶数 ID 号的员工的请求。再说一次,确保每个节点获得一个租用权的惟一方法是强制获得租用权(参见强制获得租用权)。
数据库配置 调度程序作用一个用户定义的数据库来保存所创建的任务。然后轮询守护程序使用这个数据库来确定哪些任务要运行以及什么时候运行。调度程序服务数据库表是通过编辑和执行客户的数据库治理系统提供的 Data Definition Language(DDL)(或 SQL)文件来创建的。WebSphere Business Integration Server Foundation V5.1 Information Center中提供了创建表的细节。