[
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