Ich verwende MYSQL 5.0 und Tomcat 5.5. Nach 8 Stunden, MYSQL schließt standardmäßig alle inaktiven Verbindungen und so bekomme ich eine SQL-Ausnahme. Eine Lösung für dieses ProblemMYSQL 8 Stunden Timeout Problem
Antwort
Welchen Verbindungspool verwenden Sie? Die meisten erlauben es, dass ein Heartbeat-Befehl periodisch ausgeführt wird, um zu verhindern, dass Verbindungen auslaufen.
EDIT: Blick auf die DBCP configuration page, ich denke, Sie sollten eine geeignete (billig) validationQuery
setzen. Sie könnten dann entweder DBCP befehlen, dies zu testen, wenn Sie inaktive Verbindungen (testWhileIdle
) potentiell entfernen oder es kurz vor dem Zurückgeben der Verbindung (testOnBorrow
) testen lassen. Das erste würde (hoffentlich!) Deine untätigen Verbindungen am Leben erhalten; die zweite würde nicht, aber würde Sie gebrochene Verbindungen nicht zurückgeben (d. h. wenn Sie eine neue schaffen würden, falls notwendig).
Meinen Sie, dass Sie die Verbindungen aufrechterhalten, während sie im Leerlauf sind? Ich bin kein Experte für mySql, aber in den Datenbanken, mit denen ich gearbeitet habe, gilt es als gute Methode, die Verbindung nur dann offen zu halten, wenn sie benötigt wird, und sie dann zu schließen.
Ich weiß nicht, wie das Timeout zu erhöhen, aber ich denke, es sollte eine Einstellung sein .. Warum erstellen Sie die Verbindung nicht, wenn Sie es brauchen, und schließen Sie es nach der Verwendung anders als abhängig von einer erstellten Verbindung ?
wait_timeout, wird die Zeit erhöhen, aber Ich denke nicht, es wäre die machbare Lösung. –
Mit MySQL wird standardmäßig eine offene Verbindung (die oft in einem Verbindungspool wartet) nach 8 Stunden Inaktivität geschlossen. Sie können diese Zeit von 8 Stunden ändern, indem die wait_timeout variable Konfiguration entweder in Ihrer my.cnf oder auf unserer mysql Kommandozeile
Siehe auch: http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_wait_timeout http://dev.mysql.com/doc/refman/5.0/ de/gone-away.html
Diese Frage wurde vor ein paar Jahren gestellt, aber ich finde, dass es gut ist, die richtige Antwort zu haben. Ich hatte das gleiche Problem, um zu lösen, musste ich mit der Konfiguration ein wenig spielen. Hier ist, was für mich funktioniert. Gehen Sie auf https://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html für weitere Informationen. Der Code unten kümmerte sich um alles. Es gibt eine Möglichkeit, die Werte zu optimieren, aber ich werde mich später darum kümmern.
<Resource name="jdbc/database"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="username" password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql:///"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
testWhileIdle="true"
testOnBorrow="true"
testOnReturn="false"
validationQuery="SELECT 1"
validationInterval="30000"`enter code here`
timeBetweenEvictionRunsMillis="30000"
minIdle="10" `enter code here`
initialSize="10"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"
minEvictableIdleTimeMillis="30000"
jmxEnabled="true"
/>
- 1. MySQL-Verbindung und Ruhezustand c3p0 Einstellungen, Timeout nach 8 Stunden?
- 2. ASP.NET-Site Sitzung Timeout Problem
- 3. MySQL-Gruppe nach Stunden
- 4. JDBC getConnection Timeout Problem
- 5. Mysql Betrieb Timeout Fehler
- 6. SSRS Timeout Problem
- 7. SQL Server Timeout Problem
- 8. GWT JsonpRequestBuilder Timeout Problem
- 9. Timeout-Dialog.js Problem
- 10. ADO.Net DataReader-Timeout-Problem
- 11. Berechnung der Median einer Zeitreihe, um 8 alle 8 Stunden
- 12. Node.js - mysql Abfrage Timeout
- 13. C# MySql Timeout abgelaufen
- 14. MySQL löschen älter dann * Stunden
- 15. Magento Redis Sitzung Problem: nach ein paar Stunden Website verlangsamt
- 16. mysql 12 Stunden bis 24 Stunden Zeit Umwandlung
- 17. MySQL: Datensätze nach Stunden eingefügt, für die letzten 24 Stunden
- 18. Session-Timeout-Problem mit Ajax
- 19. jquery highlight fading - timeout problem
- 20. AJAX Timeout Problem in MVC
- 21. MySQL Odbc Timeout von R
- 22. IE 8 Caching Problem
- 23. flash 8 + setTimeout Problem
- 24. Jetty 8 set "session-timeout" ohne web.xml?
- 25. MySQL JOIN Problem
- 26. Nicht getting Verbindung nach 8 Stunden in Hibernate 3.0
- 27. UTF-8 Französisch Akzent Zeichen Problem
- 28. mysql Problem
- 29. mysql erhalten Datensätze größer als 10 Stunden
- 30. zeigen Tage, Stunden, Minuten von Mysql Timestamp
Oder um die Verbindung vor der Verwendung zu testen, und wenn es getötet wurde, erstellen Sie eine neue Verbindung. – Kieron
Grundsätzlich verwende ich OpenCMS, ein Content Management System, das MYSQL und Tomcat verwendet. Es verwendet DBCP Verbindung Pooling-Mechanismus –
Brilliant Antwort @Jon. Aus welchem Interesse würden Sie diese beiden Methoden empfehlen? –