Algum forma de continuar com uma rotina mesmo se a conexão cair (jdbc)
8 respostas
jason_bourne
Pessoal,
Usando só o jdbc eu tenho como implementar alguma forma de minimizar o risco de queda da conexão com o banco? Por exemplo…se eu tiver uma rotina de carga de dados, e derrepente a conexão com o banco for resetada, ele voltaria de onde ele parou e continuaria normalmente.
O canal era tu fazer um gerenciamento de transação para dar Rollback após fazer o que tu quer fazer. Depois iniciar tudo do inicio quando a conexão com o banco voltar. Mas se quer fazer isso se continuar… tu pode botar tudo dentro de um e capturar a exceção. No while tem algum tipo de flag. dai se der exceção que o banco caiu tu simplesmente da um sleep(5000); e tenta denovo fazer o que tu fez. Se tiver algo mais concreto de o que tu vai fazer posso te dar uma dica melhor…
jason_bourne
Então kra…eu ja tenho uma rotina pronta pra fazer carga de um database para outro. São muitos dados e chega um determinado ponto a conexão é resetada ai ferra tudo. Eu acho que é alguma coisa com a conexão nat. Na verdade isso não importa. Tenho que fazer um esquema pra resolver isso. Tentei usar o datasource do jboss, mas não estou conseguindo configurar ele direito, então acho que a melhor solução mesmo é o jdbc puro. Como eu faria esse sleep(5000)? eu coloco onde ele?
M
mauriciorocha665
Tu não tem como fazer um PL/SQL pra rodar essa rotina? Vai ser bem mais rápido e vai fazer tudo em uma só chamada.
Senão, caso tu receba os dados a ser enviados através de uma List tu pode fazer algo tipo isso:
Eu só colocaria aquele Thread.sleep(3000); dentro do SQLException?
jason_bourne
Kra…eu fiz isso ai…só q ele não volta na parte onde ele parou…ele simplesmente continua pra próxima classe. Talvez pq todas as classes da rotina estejam na mesma Thread.
M
mauriciorocha665
Tu tem que fazer uma condição que faça ir para o proximo registro se der certo ou execute o mesmo se der errado. É só logica de programação. n tem misterio.
[]'s
jason_bourne
mauriciorocha665:
Tu tem que fazer uma condição que faça ir para o proximo registro se der certo ou execute o mesmo se der errado. É só logica de programação. n tem misterio.