For testing purposes I am looking to have messages fired at an application that is a Tuxedo client. We do not want these messages to commit as we want to be able to re-run these messages (repeatable tests, think continuous integration). But we need to be able to validate the changes done in the database from the tool firing the messages (else we're not testing anything!). So I wanted to know if there is a way for a 2 clients to connect to Tuxedo and be able to view the data within the same transaction. If so, would you have any pointers?
For what it's worth, both client are Java applications.
Although I'm not certain what you are asking, my initial response would be no as that would violate part of the ACID (Atomicity, Consistency, Isolation, and Durability) that XA transaction provide. In particular Isolation requires that the work of two separate activities be isolated from one another.
That being said, if the clients are Java applications and using WTC or the Tuxedo JCA adapter, then as long as both clients are part of the same JTA transaction, then all the work done in Tuxedo will be an extension of that transactions. In other words, if the two clients can be called by some third client that starts the transaction, calls each client as part of that transaction, you might be able to accomplish this, although I'm not entirely certain of that because of database isolation settings and how transactions currently propagate from JEE to Tuxedo.
How would you propose doing this if Tuxedo weren't in the picture?
Oracle Tuxedo Chief Architect