Is there a way that I can use JDBC to target multiple databases when I execute statements (basic inserts, updates, deletes).
For example, assume both servers [200.200.200.1] and [200.200.200.2] have a database named MyDatabase, and the databases are exactly the same. I’d like to run "INSERT INTO TestTable VALUES(1, 2)" on both databases at the same time.
Note regarding JTA/XA:
We’re developing a JTA/XA architecture to target multiple databases in the same transaction, but it won’t be ready for some time. I’d like to use standard JDBC batch commands and have them hit multiple servers for now if its possible. I realize that it won’t be transaction safe, I just wan’t the commands to hit both servers for basic testing at the moment.
You need one connection per database. Once you have those, the standard auto commit/rollback calls will work.
You could try Spring; it already has transaction managers set up.
Even if you don’t use Spring, all you have to do is get XA versions of the JDBC driver JARs in your CLASSPATH. Two phase commit will not work if you don’t have them.
I’d wonder if replication using the database would not be a better idea. Why should the middle tier care about database clustering?