Transactions Guide

This document helps you to choose the correct transactional options for your Tamino applications in order to gain the required degree of concurrency. This just means finding the right balance between data consistency requirements and the performance of your application. It describes typical scenarios (sometimes including code examples in various programming languages), but no extensive documentation of implementation details will be given here. Refer to the reference documentation for the API of your choice and also to the X-Machine Programming documentation for such information.

This document is not a general introduction into transaction management, locking, isolation levels, etc. It assumes you are already familiar with the fundamental concepts of transactionality in databases and explains the way Tamino provides transactionality. It only provides a small introduction into the general terms used and additionally it presents some useful links to other (partly non-Software AG and non-Tamino) documentation on this subject.

This document addresses application designers and experienced application developers who intend to organize database access to Tamino by their applications in the most efficient manner.

The following topics are discussed in this document:

Introduction The introduction briefly summarizes and clarifies the fundamentals of transaction processing in database management systems. It also introduces the most important terms.
Transaction Modes This section explains the different transaction modes which can be applied in Tamino applications.
Isolation Levels and Locking This section explains the different isolation levels which can be applied in Tamino applications.
Transaction Parameters This section explains the different locking parameters which can be applied in Tamino applications.
Deadlocks and Deadlock Prevention This section discusses the occurrence of deadlock situations and suitable precautions for avoiding them.
Examples and Scenarios This section provides in-depth knowledge about consequences of choosing various combinations of transaction modes, isolation levels and locking modes. Typical scenarios are described in this section, partly with accompanying code examples.
Appendix 1 - Complete Java Code example of Scenario 1 This section provides the complete source code of scenario 1 in Java.