Hi wangsan, I agree with you. It would be kind of you to open a jira to check the problem.
For the first problem, I think we need to establish connection each time execute batch write. And, it is better to get the connection from a connection pool. For the second problem, to avoid multithread problem, I think we should synchronized the batch object in flush() method. What do you think? Best, Hequn On Tue, Jul 10, 2018 at 2:36 PM, wangsan <wamg...@163.com> wrote: > Hi all, > > I'm going to use JDBCAppendTableSink and JDBCOutputFormat in my Flink > application. But I am confused with the implementation of JDBCOutputFormat. > > 1. The Connection was established when JDBCOutputFormat is opened, and > will be used all the time. But if this connction lies idle for a long time, > the database will force close the connetion, 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. > > Please correct me if I am wrong. > > —— > wangsan >