Я разработал веб-приложение с GWT. Я создаю только один EntityManagerFactory (singleton), но я не знаю, когда мне нужно его закрыть. Я следовал инструкциям на этом сайте: http://javanotepad.blogspot.com/2007/05/jpa-entitymanagerfactory-in-web.html, но через 8 часов, не заходя в приложение, у меня появляется ошибка:
78616509 [http-9080-Processor4] ERROR org.hibernate.transaction.JDBCTransaction - JDBC begin failed
com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was 44,115,64
4 milliseconds ago. The last packet sent successfully to the server was 44,115,644 milliseconds ago. is lo
nger 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 tim
eouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1112)
После 2 или 3 попыток все работает нормально. Если я закрываю EntityManagerFactory после каждой транзакции, у меня нет проблем, но я не хочу этого делать. Я хочу знать, как я могу управлять циклом EntityManagerFactory.
Заранее спасибо.