Bom dia pessoal,
estou tendo um problema em um servidor aqui na empresa, ele roda um servidor CentOS 6 64bits, JRE 7, Apache Tomcat 7.0.22 e MySql 5.1.52. O meu problema é o seguinte, sempre quando chego na empresa e vou tentar acessar a aplicação, ela me retorna um erro de conexão com o banco; depois que eu restarto o Tomcat, a aplicação funciona normalmente.
Gostaria de saber se alguém tem uma sugestão, pois o servidor fica ligado 24hs e parece que sempre quando muda o dia, ou seja, o relógio vira as 24hs, o Tomcat não consegue mais se conectar ao MySql.
cara,
vc vai ter que investigar na sua aplicação o que está fazendo ocorrer isso, como por exemplo numero excessivo de conexões aberta.
t+
o tomcat tem alguma relação com o banco na sua aplicação?
Olá alissonvla, o servidor fica ligado 24hs mas ninguém acessa ele durante a noite, e eu só abro a conexão com o banco uma vez.
Olá heatcold, na realidade não, mas eu acho estranho que só restartando o Tomcat que tudo volta ao normal.
Vc está utilizando algum pool de conexão?
Se não:
MySQL fecha conexão ociosa após certo tempo (o padrão é 8 horas)!
Olá yoshikichi, na minha aplicação sempre verifico se a conexão existe, se não existir eu mando abrir uma conexão com o banco.
public class ConnectionFactory {
private static Connection conexao;
public static Connection getConnection() throws ClassNotFoundException, SQLException {
if (conexao == null) {
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/metalurgica", "root", "senha");
}
return conexao;
}
}
[quote=atilaraphael]Olá yoshikichi, na minha aplicação sempre verifico se a conexão existe, se não existir eu mando abrir uma conexão com o banco.
[code]
public class ConnectionFactory {
private static Connection conexao;
public static Connection getConnection() throws ClassNotFoundException, SQLException {
if (conexao == null) {
Class.forName("com.mysql.jdbc.Driver");
conexao = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/metalurgica", "root", "senha");
}
return conexao;
}
}
[/code][/quote]
Então já vi esse tópico algumas vezes aqui no guj.
Na propria especificação do Mysql fala sobre esse problema.
Só editando, utliza um pool de conexões, é melhor.
http://imasters.com.br/artigo/17195/java/pool_de_conexao_jee_tomcat/