Ich verwende Amazon EC2, um meine Java Wicket App zu starten, und ich habe Amazon MySQL-Instanz für die Anwendung ausgeführt. Alles funktioniert gut, aber nach 8 Stunden ist meine Datenbankverbindung verloren. Ich habe versucht, c3p0 Einstellungen so zu konfigurieren, dass dies nicht passieren würde. Ich habe auch versucht, MySQL-Einstellungen zu aktualisieren, aber keine Hilfe.MySQL-Verbindung und Ruhezustand c3p0 Einstellungen, Timeout nach 8 Stunden?
Hier ist meine persitence.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="xyz">
<persistence-unit name="mysqldb-ds" transaction-type="RESOURCE_LOCAL">
<description>Persistence Unit</description>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.username" value="XXXXX"/>
<property name="hibernate.connection.password" value="YYYYY"/>
<property name="hibernate.connection.url" value="jdbc:mysql://xxxx.yyyyy.us-east-1.rds.amazonaws.com:3306/paaluttaja"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="connection.pool_size" value="1" />
<property name="cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="20" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="3000" />
</properties>
</persistence-unit>
</persistence>
Ich mache Abfragen wie folgt:
@Service
public class LoginServiceImpl implements LoginService{
@Override
public Customer login(String username, String password) throws LSGeneralException {
EntityManager em = EntityManagerUtil.getEm();
TypedQuery<Customer> query = em.createQuery("SELECT c FROM Customer c "
+ "WHERE c.username = '" + username + "' "
+ "AND c.password = '" + password + "'", Customer.class);
Customer customer = null;
try {
customer = (Customer) query.getSingleResult();
}catch(Exception e){
if(e instanceof NoResultException){
throw new LSGeneralException("login.failed.wrong.credentials", e);
}else{
throw new LSGeneralException("failure", e);
}
}
customer.setLogged(true);
return customer;
}
}
Alle Hilfe würde geschätzt.
Ich habe einige Änderungen an meiner Konfiguration vorgenommen und jetzt warten wir und hoffen auf das Beste. Die Überwachung zeigt, dass hibernate.c3p0.min_size = 5 wirksam wurde, vorher war es 1. Monitoring Bild: http://oi49.tinypic.com/35hipee.jpg – TuomasSaranen
Hallo Steve, können Sie einen Blick auf meine aktuelle Frage werfen, ist es etwas verwandt: http://StackOverflow.com/Questions/19664878/configure-c3p0 -zu-close-Hibernate-Sitzung-wenn-Verbindung-ist-down? Vielen Dank – amphibient