Declarative Transaction support
Hello, I've been writing a Struts web application that uses Spring declarative transaction support and OJB as the ORM tool.
All of my services in my application are using the PROPAGATION_REQUIRED keyword for the transaction manager. A Struts action may call one or more services to complete it's work.
I've run into some database locking issues and after logging SQL Statements using the p6spy driver, I've found that when I do 3 web requests, I get 8 database transactions. I would have thought that each web request would have a single database transaction.
I thought the first service within a web request would see that there was no transaction and it would start one, then other services within the same request would see that a transaction has started and participate in it, rather than starting a new one.
Do I understand this wrong? Any information would be appreciated.