2013-07-27 12 views
10

Próbuję ustawić właściwość połączenia autoReconnect = true mysql w pliku application.conf z mojej aplikacji Play Framework 2.0. Ale to daje mi następujący błąd:Jak ustawić właściwość autoReconnect dla adresu URL mysql db w pliku konfiguracyjnym Play Framework?

Caused by: java.sql.SQLException: The connection property 'autoReconnect' only accepts values of the form: 'true', 'false', 'yes' or 'no'. The value 'true?useUnicode=yes' is not in this set. 

To jest mój ciąg połączenia w application.conf pliku:

db.default.url="mysql://db_user:[email protected]/mydb?autoReconnect=true" 

Próbuję ustawić ten parametr połączenia bo otrzymuję ten błąd w moim aplikacja po nim jest bezczynny przez dłuższy czas:

[error] c.j.b.ConnectionHandle - Database access problem. Killing off all remaining connections in the connection pool. SQL State = 08S01 
[error] application - Failed to login the user : guest 
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully 
received from the server was 153,398,761 milliseconds ago. 
The last packet sent successfully to the server was 153,398,762 milliseconds ago. is longer than the server configured value of 'wait_timeout'. 
You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 

próbowałem też ustawienie tych parametrów zabaw db rozwiązać ten problem połączenia jak wspomniano tutaj (https://groups.google.com/forum/#!topic/play-framework/KzvbZ61j9Eo), ale nie rozwiązało problemu.

Wszelkie wskazówki dotyczące rozwiązania tego problemu zostałyby docenione.

Dzięki.

+0

Czy to działa? Dodałem? AutoReconnect = true do URL-a jdbc, ale kiedy czekam zbyt długo, stil otrzymuje ten sam błąd, nie łączy się automatycznie automatycznie – Gavriel

Odpowiedz

9

oczywiście coś jest dodanie '? UseUnicode = yes' do URI, więc możesz skończyć z

mysql://db_user:[email protected]/mydb?autoReconnect=true?useUnicode=yes 

parsowania To daje, że wartość autoReconnect jest prawda? UseUnicode = yes

Dowiesz się trochę, może robią to twoje warstwy połączeń lub warstwy abstrakcji danych.

+2

Dzięki, miałem problem z kodowaniem reklamy 'jdbc: mysql: //127.0.0.1: 3306/Mysql? RelaxAutoCommit = " true " 'w moim pliku. Właśnie go usunąłem i działa. – MokaT

5

Masz 2 parametry połączenia, zamiast je łączyć z &? :

Powiązane problemy