Quantcast
Viewing all articles
Browse latest Browse all 52

How Propagation.REQUIRES_NEW works on jdbc level?

I've read the documentation and I understand how Propagation.REQUIRES_NEW works but

Create a new transaction, and suspend the current transaction if one exists. Analogous to the EJB transaction attribute of the same name.NOTE: Actual transaction suspension will not work out-of-the-box on all transaction managers. This in particular applies to org.springframework.transaction.jta.JtaTransactionManager, which requires the javax.transaction.TransactionManager to be made available to it (which is server-specific in standard Java EE).See Also:org.springframework.transaction.jta.JtaTransactionManager.setTransactionManager

I can't understand how suspension could work.

For a single level transaction I suppose that spring creates the code like this:

Connection connection = DriverManager.getConnection(...);try {  connection.setAutoCommit(false);  PreparedStatement firstStatement = connection.prepareStatement(...);  firstStatement.executeUpdate();  PreparedStatement secondStatement = connection.prepareStatement(...);  secondStatement.executeUpdate();  connection.commit();} catch (Exception e) {  connection.rollback();}

Could you please provide an example for the Propagation.REQUIRES_NEW?

Is it done somehow via jdbc savepoint?


Viewing all articles
Browse latest Browse all 52

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>