两阶段落实环境注意事项
要运行两阶段落实应用程序,应考虑下列建议:
- 最好是让尽量多的 MPP 区域保持运行,以确保两阶段落实应用程序不会争用区域;这是因为在执行两阶段落实事务的整个过程中,两阶段落实应用程序中的事务都要使用 MPP 区域。
- 如果许多 IMS™ 事务是在一个两阶段落实事务内执行的,则至少必须提供许多 MPP 区域,以避免挂起两阶段落实应用程序。
- 为了保护可能需要等待很长时间才能获取资源的那些事务,建议为全局事务中进行的每次交互都设置适当的超时值。
- 应避免在一个两阶段落实事务中执行过多的数据库交互。如果在一个两阶段落实事务中使用了多个 IMS 事务,则它们在尝试更新或修改同一个数据时就有可能发生争用或锁定。为了避免发生这种情况,最好是编写一个应用程序用来防止用户在同一个两阶段落实操作中访问重复的条目。
- 可以考虑将 IRLM 或 PI 锁定管理器使用的块大小配置为数据库中的最小条目。块大小越大,就越有可能使两个事务争用硬盘上大小不同但距离很接近的条目。
- 如果在全局事务(工作单元)中,使用同一个 IMS 数据库的同一个 IMS 事务执行了多次交互,则与该 IMS 事务的每次交互必须运行于不同的 MPP 区域中。IMS 事务必须满足 SCHDTYP=PARALLEL 和 PARLIM=0,以指示该 IMS 事务可以在多个 MPP 区域上运行,并且它将始终满足调度需求(消息数目将大于 0)以便处理新的 MPP 区域上的每次交互。
- 如果某个区域被挂起,正在等待 RRS-OTMA,并且没有设置执行超时值,则可以结束运行正在挂起该 MPP 区域的事务。可以通过发出带有异常终止事务参数的 stop region IMS 命令来完成该任务。例如,/STOP REGION reg#ABDUMP tranname。该命令将回滚该特定交互的事务并释放该 MPP 区域。