sql >> Database teknologi >  >> RDS >> Mysql

PreparedStatement vil aldrig timeout, selvom det udtrykkeligt er angivet

Kald Connection.setNetworkTimeout() i et forsøg-endelig .

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 af ikke-godkendt TCP-trafik, som kan afbryde en forbindelse, hvis der ikke er indstillet en netværkstimeout.



  1. PDO "Ufanget undtagelse 'PDOException' .. Kan ikke udføre forespørgsler, mens andre ubuffrede forespørgsler er aktive. Overvej at bruge PDOStatement::fetchAll()."

  2. Hvordan kan jeg automatisere opgaven med at generere scripts i SQL Server Management Studio 2008?

  3. Forespørgselsoptimering i PostgreSQL. FORKLAR Grundlæggende – Del 3

  4. Indsæt i en tabelbase på sammenføjningsresultat fra 2 andre borde