sql >> Databasteknik >  >> RDS >> Mysql

PreparedStatement får aldrig timeout även om det uttryckligen ställts in

Anrop Connection.setNetworkTimeout() i ett försök-äntligen .

private final static Executor immediateExecutor = Runnable::run;

try ( Connection connection = pool.getConnection() ) {
   int timeout = connection.getNetworkTimeout();
   connection.setNetworkTimeout(immediateExecutor, TimeUnit.SECONDS.toMillis(5));
   ...
   try (PreparedStatement...) {
      ...
   }
   finally {
      connection.setNetworkTimeout(timeout);
   }
}
finally {
   ...
}

Du lider av okänt TCP-trafik, som kan koppla en anslutning om en nätverkstimeout inte är inställd.



  1. android.database.sqlite.SQLiteException:nära s:syntaxfel (kod 1):,

  2. Lösning för att infoga avsiktslås i MySQL

  3. Hur man konverterar en SQL Server-markör till MySQL-motsvarande

  4. Steg för att installera MySQL8 på CentOS