sql >> Databáze >  >> RDS >> Mysql

PreparedStatement nikdy nevyprší časový limit, i když je explicitně nastaven

Zavolejte Connection.setNetworkTimeout() nakonec pokus .

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 {
   ...
}

Trpíte nepotvrzeným TCP provozem, který může přerušit připojení, pokud není nastaven časový limit sítě.



  1. Jak nainstalovat MySQL Workbench na Windows

  2. Vývoj Rails – Nelze se připojit k serveru MySQL na „localhost“ (10061)

  3. Jak zamíchat sloupec v MySql

  4. Upozornění:mysqli_query() očekává, že parametr 1 bude mysqli, daný zdroj