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

PreparedStatement non scadrà mai anche se impostato in modo esplicito

Chiama Connection.setNetworkTimeout() finalmente in prova .

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

Stai soffrendo di traffico TCP non riconosciuto, che può bloccare una connessione se non è impostato un timeout di rete.