|
@@ -7,6 +7,7 @@ import org.springframework.jdbc.datasource.DataSourceUtils;
|
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import javax.sql.DataSource;
|
|
|
import java.sql.Connection;
|
|
|
import java.sql.SQLException;
|
|
|
|
|
@@ -20,11 +21,20 @@ import java.sql.SQLException;
|
|
|
public class JtaJdbcSqlExecutor extends AbstractJdbcSqlExecutor {
|
|
|
@Override
|
|
|
public Connection getConnection() {
|
|
|
- return DataSourceUtils.getConnection(DataSourceHolder.currentDataSource().getNative());
|
|
|
+ DataSource dataSource = DataSourceHolder.currentDataSource().getNative();
|
|
|
+ Connection connection = DataSourceUtils.getConnection(dataSource);
|
|
|
+ boolean isConnectionTransactional = DataSourceUtils.isConnectionTransactional(connection, dataSource);
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
+ logger.debug("DataSource ({}) JDBC Connection [{}] will {}be managed by Spring", DataSourceHolder.switcher().currentDataSourceId(), connection, (isConnectionTransactional ? "" : "not "));
|
|
|
+ }
|
|
|
+ return connection;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void releaseConnection(Connection connection) throws SQLException {
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
+ logger.debug("Releasing DataSource ({}) JDBC Connection [{}]", DataSourceHolder.switcher().currentDataSourceId(), connection);
|
|
|
+ }
|
|
|
DataSourceUtils.releaseConnection(connection, DataSourceHolder.currentDataSource().getNative());
|
|
|
}
|
|
|
|