Db2 xa_打开失败,SQLCODE=-1032

Db2 xa_打开失败,SQLCODE=-1032,db2,Db2,我在Linux(x64)上使用Tuxedov12.2.2.0.0,通过DB2Connect服务器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

我在Linux(x64)上使用Tuxedov12.2.2.0.0,通过DB2Connect服务器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导出,如何修复它?谢谢

我已经使用PASSXX验证了DB2客户机连接命令$db2connect到DBXX用户USERxx,并使用SELECT语句查询数据。 并且还需要遵循Tuxedo指南来设置DB2配置项。
将注释线程转换为答案

对于Tuxedo的新安装,其中XA事务需要由Tuxedo作为TP监视器进行管理,一个分支是DB2forz/OS,除了Db2连接的基本操作和任何Db2许可活动之外,还需要配置Tuxedo和DB2Connect以支持XA事务

请注意,Linux/AIX/Windows:通过DB2Connect从工作站到DB2forz的命令行连接将只验证连接和用户ID/密码访问,但这不会测试XA。命令行连接是类型1连接,即它们不使用分布式工作单元

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

对于Tuxedo,文档页面为

对于Db2 Connect v9.7,也可以从此处访问更高版本的页面:

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以了解详细信息。

使用-1032 SQL代码的最可能原因是在调用XA_OPEN时,至少有一个必需的Db2实例未运行。如果Db2实例在Linux上是本地的,请验证db2sysc process正在为每个必需的实例运行并处于活动状态,并验证Tuxedo用于连接的用户帐户与数据库的连接。此外,在寻求帮助时,您应该始终提供您的Db2版本/fixpack,以及您的Linux平台x64、power、Z等。谢谢@mao;我正在使用Db2 connect服务器访问大型机上的Db2。Tuxdeo和Db2Connect Server都安装在Linux x64上;DB2 Connect Server版本为9.7;可以使用DB2命令连接到DB2大型机使用PASSWD连接到DS用户,也可以检索表上的数据。所以您的问题有误导性,您并不是真正连接到UDB,它只是一个网关。编辑您的问题以添加新的facts.从Tuxedo到XA的连接是否在此节点上工作过?或者是新安装的?如果它以前工作过,请确定发生了什么变化,并进行消除,以找出哪些变化破坏了它。如果是新安装,请确保Tuxedo和Db2 connect都按照这两种产品的文档为XA正确配置。另请参阅s、 我会尝试;它是新安装的,永远不会成功。另一个信息。如果我使用DB2 Advanced Enterprise Server Edition,xa_open是可以的,如果使用DB2 Connect Server xa_open将失败,Tuxedo和DB2大型机端都没有任何更改。DB2 Connect Server上一定有一些特殊的东西。