You can specify that the JDBC mediator either act as transaction
manager, or refrain from such activities in the case of external transaction
management (performed by the SDO client).
Mediator managed transactions
A JDBC connection
is wrapped in a connection wrapper and passed to the Data Mediator
Service (DMS) during the instance creation. The ConnectionWrapper
object contains the connection that is used by the JDBC DMS and indicates
whether the mediator manages the current transaction. When the JDBC
DMS manages the transaction, it performs commit and rollback operations
as required. However, the DMS does not perform any transaction management
activities if the wrapped connection is currently engaged in another
transaction.
Using the createConnectionWrapper method for active
transaction management is the general practice.
Non-mediator managed transactions
When a passive connection
wrapper is passed to the DMS, the DMS takes no managerial action;
a passive wrapper is generally intended for an existing transaction
that is under external management. Commit or rollback operations are
not performed by the connection wrapper in this case.
Use the createPassiveConnectionWrapper method.
Protection against referential integrity (RI) violations
The
JDBC Data Mediator Service safeguards data transactions from incurring
RI violations and other database logic violations. When the JDBC DMS
applies the updates of a data graph to a back end, it automatically
orders the change operations so that they do not violate database
RI policy. Similarly, the DMS filters counter operations (such as
INSERT and DELETE) so that opposing client requests can perform updates
in a logical order. The client deletes one object, and then creates
an entirely separate object with the same primary key. The DMS transforms
these two operations into an update operation that modifies the existing
database object.