3.3.5 Restrictions on Transactions
The following restrictions apply to Oracle Tuxedo CORBA transactions:
- A CORBA object in the Oracle Tuxedo system must have the same transaction context when it returns from a method invocation that it had when the method was invoked.
- A CORBA object can be infected by only one transaction at a
time. If an invocation tries to infect an already infected object,
a
CORBA::INVALID_TRANSACTION
exception is returned. - If a CORBA object is infected with a transaction and a
nontransactional request is made on it, a
CORBA::OBJ_ADAPTER
exception is raised. - If the application begins a transaction in
Server::initialize(),
it must either commit or roll back the transaction before returning from the method. If the application does not, the TP Framework shuts down the server. This is because the application has no predictable way of regaining control after completing theServer::initialize
method. - If a CORBA object is infected by a transaction and with an
activation policy of
transaction
, and if the reason code passed to the method is eitherDR_TRANS_COMMITTING
orDR_TRANS_ABORTED
, no invocation on any CORBA object can be done from within theTobj_ServantBase::deactivate_object
method. Such an invocation results in aCORBA::BAD_INV_ORDER
exception.
Parent topic: Transactions