Missing ref: [2] https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client/2.3.0
2018-12-02 18:31 GMT+03:00, Павлухин Иван <vololo...@gmail.com>: > Hi Alexander, > > I have 2 points. > > 1. According to the jdbc spec [1] setNetworkTimeout method is > optional. What user problem we are going to solve by implementing that > method? > 2. Also I checked another quite popular jdbc driver provided by > MariaDB [2]. They ignore an executor argument as well and set a socket > timeout instead. So, I think that we are on a safe side if we ignore > an executor. > > [1] https://download.oracle.com/otndocs/jcp/jdbc-4_2-mrel2-spec/index.html > пт, 30 нояб. 2018 г. в 16:28, Alexander Lapin <lapin1...@gmail.com>: >> >> Hi Igniters, >> >> Within context of connection timeout [ >> https://issues.apache.org/jira/browse/IGNITE-5234] it's not obvious >> whether >> it's required to use setNetworkTimeout's executor or not. >> >> According to the javadoc of >> java.sql.Connection#setNetworkTimeout(Executor >> executor, int milliseconds), executor is "The <code>Executor</code> >> implementation which will be used by <code>setNetworkTimeout</code>." >> Seems that executor supposed to take care of connection closing/aborting >> in >> case of timeout, based on submitted Runnable implementation. On the other >> hand it's possible to ignore executor and implement >> timeout-detection/cancellation logic with Timer. Something like following >> (pseudo-code): >> >> ConnectionTimeoutTimerTask connectionTimeoutTimerTask = new >> ConnectionTimeoutTimerTask(timeout); >> timer.schedule(connectionTimeoutTimerTask, 0, REQUEST_TIMEOUT_PERIOD); >> ... >> JdbcResponse res = cliIo.sendRequest(req); >> ... >> >> private class ConnectionTimeoutTimerTask extends TimerTask { >> ... >> @Override public void run() { >> if (remainingConnectionTimeout <= 0) >> close(); //connection.close(); >> >> remainingConnectionTimeout -= REQUEST_TIMEOUT_PERIOD; >> } >> ... >> } >> >> It worth to mention that MSSQL Jdbc driver doesn't use executor and >> PostgreSQL doesn't implement setNetworkTimeout() at all. >> >> From my point of view it might be better to ignore executor, is it >> suitable? >> >> Any ideas? > > > > -- > Best regards, > Ivan Pavlukhin > -- Best regards, Ivan Pavlukhin