Use the correct
PlatformTransactionManager
implementation
based on your choice of transactional technologies and requirements.
Used properly, the Spring Framework merely provides a straightforward
and portable abstraction. If you are using global transactions, you
must use the
org.springframework.transaction.jta.JtaTransactionManager
class (or an application
server-specific subclass of it) for all your transactional
operations. Otherwise the transaction infrastructure attempts to perform
local transactions on resources such as container
DataSource
instances. Such local
transactions do not make sense, and a good application server treats
them as errors.