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

Jarek Jarcec Cecho updated SQOOP-1250:
--------------------------------------

    Description: 
{{SqlManager}} will always 
[disable|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/SqlManager.java#L834]
 the {{autoCommit}} in created connection and the rest of the Sqoop is written 
in a way that it expects the {{autoCommit}} off by explicitly calling 
{{commit}} and {{rollback}} methods.

Oracle connector currently 
[overrides|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/OracleManager.java#L278]
 the method {{makeConnection}} without explicitly disabling the {{autoCommit}}. 
Depending on the Oracle JDBC driver this might or might not be an issue as:

* Version < 12.1 will allow calling {{commit}} and {{rollback}} on a connection 
that have enabled {{autoCommit}}
* Version >= 12.1 will *not* allow calling {{commit}} and {{rollback}} on a 
connection that have enabled {{autoCommit}}. We've already seen this issue in 
the [user mailing 
list|http://mail-archives.apache.org/mod_mbox/sqoop-user/201309.mbox/%3C20130927160509.GB22393@localhost%3E].

I believe that we should set the {{autoCommit}} in the Oracle connector to 
false in order to make it compatible with Oracle JDBC driver version 12.1+ and 
also to make the connector consistent with the rest of the code base.

Big thanks to Douglas Surber from Oracle for pointing this out!

  was:
{{SqlManager}} will always 
[disable|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/SqlManager.java#L834]
 the {{autoCommit}} in created connection and the rest of the Sqoop is written 
in a way that it expects the {{autoCommit}} off by explicitly calling 
{{commit}} and {{rollback}} methods.

Oracle connector currently 
[overrides|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/OracleManager.java#L278]
 the method {{makeConnection}} without explicitly disabling the {{autoCommit}}. 
Depending on the Oracle JDBC driver this might or might not be an issue as:

* Version < 12.1 will allow calling {{commit}} and {{rollback}} on a connection 
that have enabled {{autoCommit}}
* Version >= 12.1 will *not* allow calling {{commit}} and {{rollback}} on a 
connection that have enabled {{autoCommit}}. We've already seen this issue in 
the [user mailing 
list|http://mail-archives.apache.org/mod_mbox/sqoop-user/201309.mbox/%3C20130927160509.GB22393@localhost%3E].

I believe that we should set the {{autoCommit}} in the Oracle connector to 
false in order to make it compatible with Oracle JDBC driver version 12.1+ and 
also to make the connector consistent with the rest of the code base.


> Oracle connector is not disabling autoCommit on created connections
> -------------------------------------------------------------------
>
>                 Key: SQOOP-1250
>                 URL: https://issues.apache.org/jira/browse/SQOOP-1250
>             Project: Sqoop
>          Issue Type: Bug
>    Affects Versions: 1.4.4
>            Reporter: Jarek Jarcec Cecho
>            Assignee: Jarek Jarcec Cecho
>             Fix For: 1.4.5
>
>         Attachments: SQOOP-1250.patch
>
>
> {{SqlManager}} will always 
> [disable|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/SqlManager.java#L834]
>  the {{autoCommit}} in created connection and the rest of the Sqoop is 
> written in a way that it expects the {{autoCommit}} off by explicitly calling 
> {{commit}} and {{rollback}} methods.
> Oracle connector currently 
> [overrides|https://github.com/apache/sqoop/blob/trunk/src/java/org/apache/sqoop/manager/OracleManager.java#L278]
>  the method {{makeConnection}} without explicitly disabling the 
> {{autoCommit}}. Depending on the Oracle JDBC driver this might or might not 
> be an issue as:
> * Version < 12.1 will allow calling {{commit}} and {{rollback}} on a 
> connection that have enabled {{autoCommit}}
> * Version >= 12.1 will *not* allow calling {{commit}} and {{rollback}} on a 
> connection that have enabled {{autoCommit}}. We've already seen this issue in 
> the [user mailing 
> list|http://mail-archives.apache.org/mod_mbox/sqoop-user/201309.mbox/%3C20130927160509.GB22393@localhost%3E].
> I believe that we should set the {{autoCommit}} in the Oracle connector to 
> false in order to make it compatible with Oracle JDBC driver version 12.1+ 
> and also to make the connector consistent with the rest of the code base.
> Big thanks to Douglas Surber from Oracle for pointing this out!



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to