Jarek Jarcec Cecho created SQOOP-843:
----------------------------------------

             Summary: Sqoop2: Generic JDBC connector is committing transaction 
on export with autoCommit on
                 Key: SQOOP-843
                 URL: https://issues.apache.org/jira/browse/SQOOP-843
             Project: Sqoop
          Issue Type: Bug
    Affects Versions: 1.99.1
            Reporter: Jarek Jarcec Cecho
            Assignee: Jarek Jarcec Cecho
             Fix For: 1.99.2


I've noticed that Generic JDBC Connector is not explicitly setting autoCommit 
and yet is committing transactions. This might lead to issues with for example 
MySQL JDBC driver that sets the autoCommit to true by default and calling 
commit will result in following exception being thrown:

{code}
2013-01-23 09:05:02,316 ERROR 
org.apache.sqoop.job.mr.SqoopOutputFormatLoadExecutor: Error while loading data 
out of MR job.
org.apache.sqoop.common.SqoopException: GENERIC_JDBC_CONNECTOR_0002:Unable to 
execute the SQL statement
        at 
org.apache.sqoop.connector.jdbc.GenericJdbcExecutor.executeBatch(GenericJdbcExecutor.java:106)
        at 
org.apache.sqoop.connector.jdbc.GenericJdbcExportLoader.load(GenericJdbcExportLoader.java:66)
        at 
org.apache.sqoop.connector.jdbc.GenericJdbcExportLoader.load(GenericJdbcExportLoader.java:26)
        at 
org.apache.sqoop.job.mr.SqoopOutputFormatLoadExecutor$ConsumerThread.run(SqoopOutputFormatLoadExecutor.java:212)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.sql.SQLException: Can't call commit when autocommit=true
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:923)
        at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1683)
        at 
org.apache.sqoop.connector.jdbc.GenericJdbcExecutor.executeBatch(GenericJdbcExecutor.java:103)
        ... 9 more
{code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to