WEB开发网
开发学院数据库DB2 使 XA 事务管理器灵活地应对资源管理器故障,确保... 阅读

使 XA 事务管理器灵活地应对资源管理器故障,确保更高的可用性

 2009-10-28 00:00:00 来源:WEB开发网   
核心提示: IBM® DB2® 将被作为资源管理器的一个示例在此使用,在测试过程的不同阶段,使 XA 事务管理器灵活地应对资源管理器故障,确保更高的可用性(4),状态将发生变化(可用或不可用),事务管理器的行为应该不会受到资源管理器状态变化的影响,启用 DB2,使其可用,在实验室测试过程中,

IBM® DB2® 将被作为资源管理器的一个示例在此使用,在测试过程的不同阶段,状态将发生变化(可用或不可用)。事务管理器的行为应该不会受到资源管理器状态变化的影响。

在实验室测试过程中,应该使用 dbx 之类的调试器(在 AIX® 上)在某个点强行停止或启用 PoE。进行这些测试时,您可以使用自己选择的工具或方法。

案例 1:执行事务时,资源管理器出故障

情景:在执行使用资源管理器的事务时,资源管理器不可用。请参见图 1。

测试:

事务管理器在运行并且可用。

事务管理中的一个进程执行一个 DB2 相关的事务。

在执行事务期间,关闭 DB2。

事务发出一个提交或回滚(xa_commit 从进程中流出)。

由于 DB2 不可用,事务(以及进程)遇到一个 xa_error(XAER_RMERR)。

执行事务的进程用其所期望的方式处理错误(例如,重启执行事务的进程)。

检测行为:

确保事务管理器总体上保持可用,即使进程检测到了故障,也只有执行事务的那个进程受到影响。

一旦发生了如 XAER_RMERR 之类的故障,如果事务管理器的行为是要重启进程,那么检测重启的执行进程(图 1 中的 PoE(1))是否在重试,直到出错的事务恢复为止。出错的资源管理器恢复可用时,事务也将恢复。只有在出故障的事务需要恢复时才需要执行这个检测。

在特定的 DB2 实例恢复可用之前,包含了出错的 DB2 实例的其他事务可能会出现故障。

即使出错的 DB2 实例持续不可用,没有包含 DB2 的事务应该能够继续正常运行。

启用 DB2,使其可用。

所有重新提交的事务应该能够再次正常运行。

上一页  1 2 3 4 5 6 7  下一页

Tags:XA 事务管理 灵活

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接