【问题标题】:xa_open failure with SQLCODE=-1032xa_open 失败,SQLCODE=-1032
【发布时间】:2018-01-20 06:24:35
【问题描述】:

我在 Linux(x64)上使用 Tuxedo(v12.2.2.0.0) 通过 DB2 Connect Server(v9.7) 访问大型机上的 DB2。

现在遇到一个问题,TMS_UDB 无法启动。 来自 Tuxedo ULOG,它说:

错误:tpopen TPERMERR xa_open 返回 XAER_RMERR

我检查了它显示的 db2dial 日志:

2018-XX-XX-xxxx E4387E703   LEVEL: Error
PID     : 12673 TID: 139892007870912 PROC: TMS_UDB
INSTANCE: db2inst1
HOSTNAME: XXXX
FUNCTOIN: DB2 UDB, XA DTP Support, sqlxaConnect, probe: 5329
MESSAGE : XA Interface SQLCA
DATA #1 : SQLCA, PD_DB2TYPE_SQLCA, 136 bytes
 sqlcaid : SQLCA   sqlcabc: 136 sqlcode: -1032 sqlerrml:0
 sqlerrmc:
 sqlerrp : SQLJCMN
 sqlerrd : (1) 0x81360012 (2) 0x00000012 (3) 0x00000000
           (4) 0x00000002 (5) 0x00000004 (6) 0x00000000
 sqlwarn : (1)   (2)   (3)   (4)   (5)   (6)
           (7)   (8)   (9)   (10)  (11)
 sqlstate: 00000 

任何 DB2 导出,我怎样才能修复它?谢谢

我已经验证了 DB2 客户端 CONNECT 命令($ db2 connect to DBXX user USERxx using PASSXX),并使用 SELECT 语句查询出数据。 并且还可以按照 Tuxedo 指南设置 DB2 配置项。 https://docs.oracle.com/cd/E26665_01/artrt/docs11gr1/cicsref/db2conn.html

【问题讨论】:

  • -1032 sqlcode 最可能的原因是在调用 XA_OPEN 时至少有一个必需的 Db2 实例未运行。如果 Db2-instance(s) 是本地的(在 Linux 上),请验证 db2sysc 进程是否正在运行并且对于每个所需的实例都处于活动状态,并验证 Tuxedo 用于连接的用户帐户与数据库的连接性。此外,在寻求帮助时,您应该始终提供您的 Db2 版本/修复包,以及您的 Linux 平台(x64、power、Z 等)。
  • 谢谢@mao;我正在使用 DB2 Connect Server 访问大型机上的 DB2。 Tuxdeo 和 DB2 Connect Server 都安装在 Linux x64 上; DB2 Connect Server 版本为 9.7;并且可以使用db2命令“connect to DS user USER using PASSWD”连接到DB2主机,也可以检索表上的数据。
  • 所以您的问题具有误导性,您并没有真正连接到 UDB,它只是一个网关。编辑您的问题以添加新事实。 Tuxedo 与 XA 的连接是否曾在此节点上工作过?或者它是一个新的安装?如果它以前有效,请确定发生了什么变化并进行消除以找出哪些变化破坏了它。如果是新设置,请确保按照这两个产品的文档为 XA 正确配置 Tuxedo 和 Db2-connect。另见ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/…
  • 谢谢,我会试试;它是新安装的,永远不会成功。
  • 其他信息。如果我使用“DB2 Advanced Enterprise Server Edition”,xa_open 是可以的,如果使用“DB2 Connect Server”xa_open 会失败,Tuxedo 和 DB2 主机端都没有任何变化。 “DB2 Connect Server”一定有什么特别之处。

标签: db2


【解决方案1】:

将评论线程转换为答案。

对于需要 XA 事务的 Tuxedo 新安装(由 Tuxedo 作为 TP 监视器管理),其中一个分支是 Db2 for Z/OS,此外,还需要配置 Tuxedo 和 Db2-connect 以支持 XA 事务到 Db2 连接的基本操作以及任何 Db2 许可活动。

请注意,Linux/AIX/Windows:命令行连接(通过 Db2-connect 从工作站到 Db2 for Z)只会验证连接性和用户 ID/密码访问,但这不会测试 XA。命令行连接是 Type-1 连接(即它们不使用分布式工作单元)。

配置详细信息可能是特定于版本的,因此请始终查阅 Tuxedo 和 Db2-connect 产品的特定于版本的文档。

对于 Tuxedo,文档页面是 https://docs.oracle.com/cd/E26665_01/artrt/docs11gr1/cicsref/db2conn.html

对于 Db2-Connect v9.7(也可从此处访问更高版本),该页面为: https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.qb.dbconn.doc/doc/t0006168.html

Db2-connect 的典型配置包括:

`db2 update dbm cfg using tp_mon_name TUXEDO 

db2 update dbm cfg using spm_name bjaix  # hostname of the node running Db2-connect

db2 update dbm cfg using max_connections 500 

db2 update dbm cfg using max_coordagents 200 

// You may also want to enable the Db2-connect connection-concentrator depdending on your peak concurrency needs and the available resources

db2stop

db2start`

需要额外配置 Tuxedo,部分参考 Db2 配置,详情请参阅 Oracle Tuxedo documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多