[ 
https://issues.apache.org/jira/browse/NIFI-5724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16681047#comment-16681047
 ] 

ASF GitHub Bot commented on NIFI-5724:
--------------------------------------

Github user ijokarumawak commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/3113#discussion_r232159628
  
    --- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/PutSQL.java
 ---
    @@ -189,13 +201,40 @@
             properties.add(CONNECTION_POOL);
             properties.add(SQL_STATEMENT);
             properties.add(SUPPORT_TRANSACTIONS);
    +        properties.add(AUTO_COMMIT);
             properties.add(TRANSACTION_TIMEOUT);
             properties.add(BATCH_SIZE);
             properties.add(OBTAIN_GENERATED_KEYS);
             properties.add(RollbackOnFailure.ROLLBACK_ON_FAILURE);
             return properties;
         }
     
    +    @Override
    +    protected final Collection<ValidationResult> 
customValidate(ValidationContext context) {
    +        final Collection<ValidationResult> results = new ArrayList<>();
    +        final String support_transactions = 
context.getProperty(SUPPORT_TRANSACTIONS).getValue();
    +        final String rollback_on_failure = 
context.getProperty(RollbackOnFailure.ROLLBACK_ON_FAILURE).getValue();
    +        final String auto_commit = 
context.getProperty(AUTO_COMMIT).getValue();
    +
    +        if(auto_commit.equalsIgnoreCase("true")) {
    +            if(support_transactions.equalsIgnoreCase("true")) {
    +                results.add(new ValidationResult.Builder()
    +                                
.subject(SUPPORT_TRANSACTIONS.getDisplayName())
    +                                .explanation(format("'%s' cannot be set to 
'true' when '%s' is also set to 'true'."
    +                                        + "Transactions for batch updates 
cannot be supported when auto commit is set to 'true'", 
SUPPORT_TRANSACTIONS.getDisplayName(), AUTO_COMMIT.getDisplayName()))
    +                                .build());
    +            }
    +            if(rollback_on_failure.equalsIgnoreCase("true")) {
    +                results.add(new ValidationResult.Builder()
    +                        
.subject(RollbackOnFailure.ROLLBACK_ON_FAILURE.getDisplayName())
    +                        .explanation(format("'%s' cannot be set to 'true' 
when '%s' is also set to 'true'."
    +                                + "Transaction rollbacks for batch updates 
cannot be supported when auto commit is set to 'true'", 
RollbackOnFailure.ROLLBACK_ON_FAILURE.getDisplayName(), 
AUTO_COMMIT.getDisplayName()))
    --- End diff --
    
    This line causes following check-style error. Please build with 
`-Pcontrib-check` to confirm styles locally.
    ```
    src/main/java/org/apache/nifi/processors/standard/PutSQL.java:[231] (sizes) 
LineLength: Line is longer than 200 characters (found 217).
    ```


> Make the autocommit value in the PutSQL processor configurable
> --------------------------------------------------------------
>
>                 Key: NIFI-5724
>                 URL: https://issues.apache.org/jira/browse/NIFI-5724
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Extensions
>            Reporter: vish uma
>            Priority: Minor
>
> The PutSQL processor currently always sets the autocommit value on the 
> database session to false before the SQL statement is run and resets it back 
> to the original value after. 
> i am not sure if the autocommit value is hardcoded to false for a reason, if 
> it is, please let me know.
> This is causing an issue with the snowflake DB where abruptly disconnected 
> sessions do not release the locks they have taken.
> i would like to make this autocommit value configurable. I can submit a patch 
> for this if there is no objections.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to