8.15.2.3.4. 查找事务日志

  1. 事务日志驻留在 JDBC 支持的对象存储中。此存储的 JNDI 名称在 JBoss EAP 配置文件的 transaction 子系统定义中定义。
  2. 查看 配置文件,以查找与上述 JNDI 名称对应的数据源定义。
  3. 使用 JNDI 名称生成连接 URL。
  4. 您可以使用 URL 连接数据库,并对相关的 in-doubt 事务表发出 选择 查询。

    或者,如果您知道数据库在哪一容器集上运行,并且您知道数据库的名称,那么直接使用数据库工具的 OpenShift 远程 shell 或许更容易。

    例如,如果 JDBC 存储由名为 sampledb 的 PostgreSQL 数据库托管,在 pod postgresql-2-vwf9n 上运行,您可以使用以下命令查找事务日志:

    注意

    以下命令中列出的 The ostxrecoveryapp426p4rjbosststxtable 表名称已选定,因为它遵循 保存日志存储条目的 JDBC 表名称的模式。在您的环境中,表名称具有类似格式:

    • 前缀 开始.
    • 中间的部分源自 以上 JBoss 节点名称,如果存在,可能会删除"-"(短划线)字符。
    • 最后,附加 jbosststxtable 后缀,以创建表的最终名称。
    $ oc rsh postgresql-2-vwf9n
    sh-4.2$ psql sampledb
    psql (9.5.7)
    Type "help" for help.
    
    sampledb=# select uidstring from ostxrecoveryapp426p4rjbosststxtable where TYPENAME='StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction'
    ;
                  uidstring
     -------------------------------------
     0:ffff0a81009d:33789827:5a68b2bf:40
     (1 row)