tenwit,
I think you misunderstood my post. If you read it carefully, you will see that I am NOT refering to database transactions when I say long running transaction. I am talking about the session-per-conversation approach which implies many short database transactions that form one "long running user transaction".
Nevertheless, I'm still searching for some insight here. The concept of session-per-conversation is wonderful. However, it sounds like maybe this is either not really useful or only useful for simple dialogs.
Here's some text from the Hibernate manual regarding long conversations (notice they also call this an "application transaction"). Later in the text is a suggestion that the session-per-conversation pattern is a solution to this problem.
Quote:
11.1.2. Long conversations
The session-per-request pattern is not the only useful concept you can use to design units of work. Many business processes require a whole series of interactions with the user interleaved with database accesses. In web and enterprise applications it is not acceptable for a database transaction to span a user interaction. Consider the following example:
The first screen of a dialog opens, the data seen by the user has been loaded in a particular Session and database transaction. The user is free to modify the objects.
The user clicks "Save" after 5 minutes and expects his modifications to be made persistent; he also expects that he was the only person editing this information and that no conflicting modification can occur.
We call this unit of work, from the point of view of the user, a long running conversation (or application transaction). There are many ways how you can implement this in your application.
Is there anyone out there implementing this session-per-conversation pattern?