|  | BEA eLink Data Integration Option 1.2 Information Center
HOME | SEARCH | CONTACT | PDF FILES | WHAT'S NEW
| TABLE OF CONTENTS | PREVIOUS TOPIC | NEXT TOPIC

Transaction Support

# Transaction Support

The TUXEDO adapter will support TUXEDO transactions. This will be integrated into the existing Mercator rollback functionality, which does not require an option to be passed to the adapter explicitly, as it is controlled via the interface structure used between Mercator and all adapters. This transactional functionality allows the following:

- A single put or get operation being a transaction

- 2 or more put or get operations being covered by 1 transaction

- A map that produces 3 operations, 2 in 1 transaction and the 3rd not in a transaction

- All TUXEDO operations define a map to be implicitly in a transaction

For any TUXEDO adapter card which has the rollback option set, it will call `tpgetlev` to see if it is already part of a TUXEDO transaction. If a transaction is active it could have either been started by a client or a previous call to the TUXEDO adapter. Only if a transaction is not active will the TUXEDO adapter call `tpbegin`() to start a transaction. At this time it will also set the 'cleanup' flag to instruct Mercator to call it back on map completion to either abort the transaction (`tpabort`()) or commit it (`tpcommit`()).

If the rollback option is not set on a particular card, and the adapter started the transaction earlier then the TUXEDO service will be called with the 'TPNOTRAN' option, to indicate that the service invocation is non-transactional. However if the process is part of a transaction but it was not started by the adapter then the TPNOTRAN flag is not set on the call, i.e. allow implicit transaction propagation.

## Transactional Message Broker

This section outlines some cases of using the powerful combination of TUXEDO global transactions and the Mercator engine. The Mercator product already supports a Rollback flag setting on an individual card basis in the map. If this flag is set it basically means that the call should support a rollback and a number of these can be grouped into a transaction.

Note: Mercator does not support any form of a two phase commit.

TuxRunMerc() in Tx Mode | Output Card 1 Type | Output Card 1 Rollback | Output Card 2 Type | Output Card 2 Rollback | Output Card 3 Type | Output Card 3 Rollback | Output Card 4 Type | Output Card 4 Rollback
Y | Tux Svc | N | Tux Svc | N | Tux Svc | N | MQSeries | N
N | Tux Svc | Y | Tux Svc | Y | Tux Svc | N | MQSeries | N
Y | Tux Svc | Y | Tux Svc | Y | Tux Svc | N | MQSeries | Y

TABLE OF CONTENTS | PREVIOUS TOPIC | NEXT TOPIC