From eef227a5f9eee8a4dd04f9016387bbed59c96995 Mon Sep 17 00:00:00 2001 From: Cheolsoo Park Date: Wed, 30 Jan 2013 15:23:36 -0800 Subject: [PATCH] SQOOP-843: Generic JDBC connector is committing transaction on export with autoCommit on (Jarcec Cecho via Cheolsoo Park) --- .../apache/sqoop/connector/jdbc/GenericJdbcExecutor.java | 8 ++++++++ .../sqoop/connector/jdbc/GenericJdbcExportLoader.java | 1 + 2 files changed, 9 insertions(+) diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java index 2dba8afe..75cf9d9a 100644 --- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java +++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExecutor.java @@ -61,6 +61,14 @@ public ResultSet executeQuery(String sql) { } } + public void setAutoCommit(boolean autoCommit) { + try { + connection.setAutoCommit(autoCommit); + } catch (SQLException e) { + throw new SqoopException(GenericJdbcConnectorError.GENERIC_JDBC_CONNECTOR_0002, e); + } + } + public void executeUpdate(String sql) { try { Statement statement = connection.createStatement( diff --git a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExportLoader.java b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExportLoader.java index 31dbceab..5f8e129d 100644 --- a/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExportLoader.java +++ b/connector/connector-generic-jdbc/src/main/java/org/apache/sqoop/connector/jdbc/GenericJdbcExportLoader.java @@ -37,6 +37,7 @@ public void load(ImmutableContext context, ConnectionConfiguration connection, E String username = connection.connection.username; String password = connection.connection.password; GenericJdbcExecutor executor = new GenericJdbcExecutor(driver, url, username, password); + executor.setAutoCommit(false); String sql = context.getString(GenericJdbcConnectorConstants.CONNECTOR_JDBC_DATA_SQL); executor.beginBatch(sql);