XA transactions with Java and Oracle: XAER_NOTA error
edited Feb 17, 2010 9:54PM in GoldenGate, Streams and Distributed Database (MOSC) 3 commentsAnswered
Hello!
We are using JBossTS embedded into a Java webapp application, where the transaction manager is managed by Spring.
We are accessing two different databases. If these two databases are on a PostgreSQL or SQLServer the whole thing works perfectly. With Oracle, however, we have a problem.
First of all, our two database resources are configured in this way:
- the Oracle instance is the same (i.e.: same host, same port, same sid)
- the usernames and passwords are different
- in Oracle, each user is allowed to access a different database (i.e.: two different table spaces)
The first problem we encountered was an issue with the enlisting of resources: reading similar problems on the Internet and debugging, we discovered that the isSameRM method of OracleXAResource returns true if the jdbc connection URLs are the same... In our case, they were actually the same for the two DBs because we have the same host name, port and sid. We solved this problem by either:
We are using JBossTS embedded into a Java webapp application, where the transaction manager is managed by Spring.
We are accessing two different databases. If these two databases are on a PostgreSQL or SQLServer the whole thing works perfectly. With Oracle, however, we have a problem.
First of all, our two database resources are configured in this way:
- the Oracle instance is the same (i.e.: same host, same port, same sid)
- the usernames and passwords are different
- in Oracle, each user is allowed to access a different database (i.e.: two different table spaces)
The first problem we encountered was an issue with the enlisting of resources: reading similar problems on the Internet and debugging, we discovered that the isSameRM method of OracleXAResource returns true if the jdbc connection URLs are the same... In our case, they were actually the same for the two DBs because we have the same host name, port and sid. We solved this problem by either:
0