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

ASF GitHub Bot commented on FLINK-9794:
---------------------------------------

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

    https://github.com/apache/flink/pull/6301#discussion_r201552317
  
    --- Diff: 
flink-connectors/flink-jdbc/src/main/java/org/apache/flink/api/java/io/jdbc/JDBCOutputFormat.java
 ---
    @@ -41,6 +43,8 @@
     public class JDBCOutputFormat extends RichOutputFormat<Row> {
        private static final long serialVersionUID = 1L;
        static final int DEFAULT_BATCH_INTERVAL = 5000;
    +   static final long DEFAULT_IDLE_CONNECTION_CHECK_INTERVAL = 30 * 60 * 
1000;
    +   static final int DEFAULT_IDLE_CONNECTION_CHECK_TIMEOUT = 0;
    --- End diff --
    
    I'd like to change the const value to larger than "0", based on JDK 1.8, 
the `Timer#schedule` method's third parameter `period` less or equal than "0" 
will throw `IllegalArgumentException` exception, see here : 
https://docs.oracle.com/javase/8/docs/api/java/util/Timer.html#schedule-java.util.TimerTask-long-long-


> JDBCOutputFormat does not consider idle connection and multithreads 
> synchronization
> -----------------------------------------------------------------------------------
>
>                 Key: FLINK-9794
>                 URL: https://issues.apache.org/jira/browse/FLINK-9794
>             Project: Flink
>          Issue Type: Bug
>          Components: Streaming Connectors
>    Affects Versions: 1.4.0, 1.5.0
>            Reporter: wangsan
>            Priority: Major
>              Labels: pull-request-available
>
> Current implementation of  JDBCOutputFormat has two potential problems: 
> 1. The Connection was established when JDBCOutputFormat is opened, and will 
> be used all the time. But if this connection lies idle for a long time, the 
> database will force close the connection, thus errors may occur.
> 2. The flush() method is called when batchCount exceeds the threshold, but it 
> is also called while snapshotting state. So two threads may modify upload and 
> batchCount, but without synchronization.
> We need fix these two problems to make JDBCOutputFormat more reliable.



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

Reply via email to