sql >> Database >  >> RDS >> Mysql

java jdbc mysql-connector:hoe loskoppelen op te lossen na een lange inactieve tijd

Het MySQL JDBC-stuurprogramma heeft een functie voor automatisch opnieuw verbinden die af en toe nuttig kan zijn; zie "Driver/Datasource Klassenamen, URL-syntaxis en configuratie-eigenschappen voor Connector/J ", en lees de waarschuwingen.

Een tweede optie is om een ​​JDBC-verbindingspool te gebruiken.

Een derde optie is om aan het begin van elke transactie een query uit te voeren om te testen of uw verbinding nog steeds actief is. Als de verbinding niet actief is, sluit u deze en opent u een nieuwe verbinding. Een veelvoorkomende zoekopdracht is SELECT 1 . Zie ook:

Een eenvoudige oplossing is om de MySQL-configuratie-eigenschappen te wijzigen om de time-out voor inactiviteit van de sessie op een heel groot aantal in te stellen. Maar:

  • Dit helpt niet als je applicatie heel lang inactief is.
  • Als uw toepassing (of een andere toepassing) verbindingen lekt, kan het verhogen van de time-out bij inactiviteit betekenen dat verbroken verbindingen voor onbepaalde tijd open blijven ... wat niet goed is voor het gebruik van het databasegeheugen.



  1. PostgreSQL 8.4 verleent DML-rechten op alle tabellen aan een rol

  2. Een kolom selecteren die ook een trefwoord is in MySQL

  3. Python-lijst naar PostgreSQL-array

  4. SQL RANK() versus ROW_NUMBER()