[ 
https://issues.apache.org/jira/browse/SQOOP-843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jarek Jarcec Cecho updated SQOOP-843:
-------------------------------------

    Attachment: bugSQOOP-843.patch
    
> 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
>
>         Attachments: bugSQOOP-843.patch
>
>
> 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