8.15.2. 手动交易恢复过程
8.15.2.1. 注意事项
这个步骤只描述了如何手动恢复在单个 JVM 中完全包含的交易。该程序不描述如何恢复传播到其他 JVM 的 JTA 事务。
在各种不同的网络分区情景中,OpenShift 可能会启动具有相同 IP 地址和相同节点名称的同一容器集的多个实例,其中由于分区,旧容器集仍在运行。在手动恢复过程中,这可能会导致您连接到具有对象存储过时视图的 pod。如果您认为在这种情况下,建议关闭所有 JBoss EAP pod,以确保没有使用任何资源管理器或对象存储。
在 XA 事务中获取资源时,您负责确保支持每种资源类型进行恢复。例如,PostgreSQL 和 MySQL 在恢复方面表现良好,但对于 A-MQ 和 JDV 资源管理器等,您应该检查特定 OpenShift 版本的文档。
部署必须使用 JDBC 对象存储。
事务管理器取决于节点标识符的唯一性。XID 的最大字节长度由 XA 规范设置,且不可更改。由于 OpenShift EAP 的 JBoss EAP 必须包含在 XID 中的数据,这会在节点标识符中留有 23 字节的空间。
OpenShift 对节点标识符进行合并,使其符合这个 23 字节限制:
-
对于所有节点名称,即便是 23 字节下的节点名称,也会去除
-
(短划线)字符。 - 如果名称仍超过 23 字节,则字符将从名称开头截断,直至名称的长度在 23 字节限制之内。
但是,这个过程可能会影响标识符的唯一性。例如,名称 aa123456789012345678m0jwh
和 bbb123456789012345678m0jwh
都被截断为 123456789012345678m0jwh
,这会破坏预期名称的唯一性。在另一个示例中,t -pod-is-m0jwh
和 thispod-is-m0jwh
都截断到 thispodism0jwh
,再次破坏名称的唯一性。
您负责确保您配置的节点名称是唯一的,但要注意上述截断过程。