[symptom]
in real time loading , it is required to support XA transaction in Oracle and MQ. When we deploy the apps to run in The following exception was thrown:
The.XA.Error.is............:.-3
The.XA.Error.message.is....:.A.resource.manager.error.has.occured.in.the.transaction.branch.
The.Oracle.Error.code.is...:.65535
The.Oracle.Error.message.is:.Internal.XA.Error
[what's XA]
XA is an industry standard interface between a Transaction Manager and a Resource Manager. A Resource Manager (RM) is an agent which controls a shared, recoverable resource; such a resource can be returned to a consistent state after a failure. For example, Oracle Server is an RM and uses its redo log and undo segments to be able to do this. A Transaction Manager (TM) manages a transaction including the commitment protocol and, when necessary, the recovery after a failure. Normally, Oracle Server acts as its own TM and manages its own commitment and recovery. However, using a standards-based TM allows Oracle to cooperate with other heterogeneous RMs in a single transaction.
The commonly used TPMs include a TM component for this purpose. In order to use the TM capability of the TPM rather than Oracle's own transaction management, the application uses a transaction demarcation API (called TX) provided by the TPM rather than the SQL transaction control statements (e.g. "commit work"). For each TX call, the TM then instructs all RMs, by the appropriate XA commands, to follow the two-phase commit protocol. We call this a TPM-managed transaction.
[reference]
1. metalink: 1005968.6
2. Application's Developer's Guide - Fundamentals
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17739/viewspace-803735/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17739/viewspace-803735/