Transactions are one of those issues that rarely surface as a trouble-spots in most applications, however, when inadvertent data losses occur in the normal operation of an application, they are often traced to some issue related with transactions. This post by Mark Reynolds describes in detail the typical pitfalls associated with transactions in the Java platform, as well as the Srping framework. Read Mark Richard's post 'Transaction strategies: Understanding transaction pitfalls':