| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 13:00:44
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Tenho uma aplicação que trabalha com dois bancos, um local e um remoto...
Usando o Hibernate , a idéia é...
*Se banco remoto está funcionando, utiliza banco remoto
*Senão utiliza banco local
*Assim que conexão com banco remoto voltar, utilizar banco remoto
Para isso criei dois sessionFactory...um remoto e um para o banco local...
No hibernateUtil, tenho um método chamado getSession() que deve seguir as regrinhas que citei acima
O problema é que mesmo que eu derrube o servidor de banco de dados, ele sempre retorna true na compração "session.isConnected()", portanto sempre retornará a conexão do banco remoto, mesmo não estando conectado a ele
Tentei fazer com socket, como sujerido em outros tópicos daqui, mas daí ele somente verificaria se a máquina está ativa e não necessariamente se o servidor está funcionando.. também daria pra fazer criando uma conexão manualmente, mas daí a cada vez que acessar o banco, ele criaria uma nova conexão...perdendo desempenho na aplicação...
Não teria uma maneira de verificar se a conexão está ativa pelo sessionFactory ou pela sessão em si?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 13:11:02
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Informação...que esqueci de citar.... estou usando o c3p0 para controlar o pool de conexões..
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/05/2011 16:06:40
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Ninguém nunca fez uma aplicação com dois bancos?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/05/2011 15:05:07
|
leopoldof
GUJ Master
Membro desde: 07/03/2008 07:40:45
Mensagens: 1012
Offline
|
Bom...depois de muitos testes consegui fazer funcionar (em partes)
fiz vários testes e funcionou...
No caso...se inicializo o aplicativo conectado, depois derrubo o server db , ele retorna a base local...como presciso...
Só numa ocasião, ele trava e ainda não consegui resolver...
Quando puxo o cabo de rede fora....então parace que ele trava na instrução session.getConnection().getTransactionIsolation();..... fica aí nessa instrução...eternamente....
|
|
|
 |
|
|
|
|