É necessário sempre reiniciar o TOMCAT?

3 respostas
L

Estamos utilizando Tomcat, Hibernate e Firebird. Cada vez que o banco de dados é reiniciado, também temos que, reiniciar o Tomcat. Existe alguma saída para não prescisar reinicar o Tomcat cada vez que for reiniciado o banco de dados?

Segue o método getSessio do HibernateUtil:

public static Session getSession() throws InfrastructureException {

Session s = (Session) threadSession.get();

try {

if (s == null) {

if (getInterceptor() != null) {

s = getSessionFactory().openSession(getInterceptor());

} else {

s = getSessionFactory().openSession();

}

threadSession.set(s);

} else {

s = getSessionFactory().openSession();

threadSession.set(s);

}

} catch (HibernateException ex) {

throw new InfrastructureException(ex);

}

return s;

}

3 Respostas

fsquadro

lfgambabr,

Eu tenho o mesmo problema aqui no meu servidor, quando o PostgreSQL é iniciado, tenho que reiniciar o Tomcat.
O que fizemos pra resolver, foi um script, toda vem q o postgreSQL é “levantado”, ele levanta o Tomcat também (verifica se o Tomcat já está rodando, em caso positivo, da um stop e depois um start)

Caso tenha uma solução mais elegante, eu também gostaria de saber.

L

O problema foi resolvido utilizando a função:

HibernateUtil.rebuildSessionFactory()

foi chamada a função antes do logim, logo, cada login a sessão é remapeada novamente.

[]´s

L

Saudacoes brothers,

O lance legal (elegante) tambem para resolver esta parada eh no DataSource, onde voce preenche a tag validationQuery, como segue exemplo abaixo:

&lt?xml version='1.0' encoding='utf-8'?&gt
<Context
    path="/axis2">
  <Resource
    name="jdbc/database"
    type="javax.sql.DataSource"
    password="xxxxx"
    driverClassName="com.informix.jdbc.IfxDriver"
    maxIdle="50"
    maxWait="50000"
    validationQuery="select count(*) from table"
    username="root"
    url="jdbc:informix-sqli://<<server>>/<<database>>:informixserver=<<database_tcp>>"
    maxActive="50"/>
</Context>

Quero lembrar que o contexto acima eh do Tomcat da versao 5.5.17. Se voce reparar a tag validationQuery, faco uma consulta simples, qdo o banco tiver fora e depois voltar, o Tomcat da reload na aplicacao e nao teremos dor de cabeca de ficar shutdowing/startuping no Tom.

Abracos,

Leandro Capuano

Criado 3 de maio de 2007
Ultima resposta 7 de mai. de 2007
Respostas 3
Participantes 3