Transaction Strategies Based on Java Transaction Models
The concept of a transaction is essential to assure data integrity and consistency. A complete understanding of transactions requires familiarity with basics, models, and strategies. Mark Richards notes " It's a common mistake to confuse transaction models with transaction strategies." This article covers " the three transaction models supported by the Java™ platform and introduces four primary transaction strategies that use those models. Using examples from the Spring Framework and the Enterprise JavaBeans (EJB) 3.0 specification, Mark explains how the transaction models work and how they can form the basis for developing transaction strategies ranging from basic transaction processing to high-speed transaction-processing systems."
The Java platform supports three transaction models:
- Local Transaction model - transactions are managed by the DB resource and not in the application container or framework. The developer manages connections rather than transactions.
- Programmatic Transaction model - the programmer obtains a transaction from a transaction manager but then must write their own code for starting, committing and, given an exception, rolling back the transaction. And,
- Declarative Transaction model - the most common model, also known as Container Managed Transaction. In this model the container actively manages the transaction, the developer defines (declares) the behavior and parameters of the transaction.
but this support is limited to a description of transaction basics and expected behaviors; description of the implementation, and rules and syntax for use. A transaction strategy is required to answer questions like: 'when should I use the REQUIRED vs. MANDATORY attributes, specific directives, one model vs. another, or how to optimize for a particular situation?
The benefits and the pitfalls of the transaction models are discussed by Mark in a preceding article.
Strategies for using specific models and using a given model in an appropriate manner are introduced in this article. The four strategies presented are:
Mark Richards is the author of an InfoQ mini-book Java Transaction Design Strategies that provides additional background information for this important topic.
Transaction Strategies
by
Dimitre Tonev
More info on the strategies?
by
Guy Pardon
I don't know if I missed something, but I didn't find a lot on the actual strategies except the summary at the end. Is there any detailed explanation?
Also, you can have something in between local transactions and distributed transactions: www.atomikos.com/Publications/TryCancelConfirm
Best
Educational Content
Concurrency in Clojure
Stuart Halloway May 17, 2013
Confessions of an Agile Addict
Ole Friis Østergaard May 16, 2013
Web Development: You're Doing It Wrong
Stefan Tilkov May 16, 2013
Programming The Feynman Way
Ben Evans May 15, 2013





Hello stranger!
You need to Register an InfoQ account or Login to post comments. But there's so much more behind being registered.Get the most out of the InfoQ experience.
Tell us what you think