Monday, September 5, 2011

Understanding ADF Transactions Behavior

Important forums:

https://forums.oracle.com/forums/thread.jspa?threadID=2211040
https://forums.oracle.com/forums/thread.jspa?threadID=2270308

and excellent blogs to understand transaction behavior by Chris Muir:

http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-one-root.html
http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-always-use.html
http://one-size-doesnt-fit-all.blogspot.com/2011/07/task-flows-sayonara-automated-nesting.html
http://one-size-doesnt-fit-all.blogspot.com/2011/08/task-flows-sayonara-auto-am-nesting-in.html

Key Points:

1. The "No Controller Transaction" option enables the ADF BC layer manage its own transactions. The other task flow transaction options allow the developer to create and reuse transactions at a higher level of abstraction for relating web pages, page fragments and other task flow activities.

2. Shared data control scope we set in the task flows has no use when the No Controller Transaction option is used.

3. Steve said before 11.1.2: In a future release we will likely be changing that implementation detail so that the AMs are always used from their own AM pool, however they will share a transaction/connection. It's done in 11.1.2.

4. Connection has 1-to-1 relationship with a transaction.

5. No Controller Transaction: Perfect for scenarios where you are committing data on any/every page within a flow. If you are in a wizard/train the standard use case is to save all the data at the end or do not saving anything, then you can think of other tranaction options available on the task flow.

No comments:

Post a Comment