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_TRANSACTIONexception is returned. - If a CORBA object is infected with a transaction and a
nontransactional request is made on it, a
CORBA::OBJ_ADAPTERexception 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::initializemethod. - 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_COMMITTINGorDR_TRANS_ABORTED, no invocation on any CORBA object can be done from within theTobj_ServantBase::deactivate_objectmethod. Such an invocation results in aCORBA::BAD_INV_ORDERexception.
Parent topic: Transactions