WebSphere Application Server supports the object transaction service (OTS) and follows the CORBA transaction service specification for propagating transaction contexts. It forwards the transaction context from a client to the server. An Object Request Broker (ORB) uses incoming transaction contexts to either handle transactions transparently or ignore transaction contexts that it does not understand.
For transactional support, a CORBA client of an enterprise bean must rely on one of the following options:
CORBA C++ clients and servers in a WebSphere environment provide a client-side transaction service only. They can act as a transactional client only to a server which supports a transaction service (for example, a WebSphere enterprise bean server). Objects on a WebSphere CORBA C++ server are not recoverable.
In many cases the enterprise bean infrastructure within WebSphere Application Server automatically initiates transactions, even if the application code does not. If an enterprise bean calls a CORBA server from within a transaction, the following actions might occur:
If an EJB client is to use a CORBA server in the scope of a transaction, consider the following transaction timeout issue. If the enterprise bean is executing a loop, if the server object takes an excessive amount of time to execute, and the enterprise bean executes within the scope of a single transaction, then built-in transaction timeouts can be exceeded. This causes unexpected failures that have nothing to do with CORBA architectural issues. This is natural behavior but not necessarily expected if you are not familiar with the issues. This can be avoided by creating a new transaction each time through the loop.
For clients to other ORBs, you can use the co-existent ORB solution to start other transactions.