Galera… To tentando desenvolver alguma coisa pra manipular a conexão com o banco de dados de tempo em tempo… Pra ser mais específico, estou tentando fazer um programa que verifique se a conexão com o banco de dados está ativa de tempo e tempo… Caso não esteja ele tenta reestabelecer a conexão… Também eu guardo um XML das operações enquanto a conexão não estiver estabelicida e ai eu envio pro banco quando conseguir estabelecer novamente… Não sei muito más acho que isso tem a ver com persistencia… não sei se estou fazendo da melhor maneira (aceito sugestões =) )… Bom… o que acontece é que eu gerei umas threads pra fazer esse temporizador e está travando minha interface gráfica… parece que o controle fica preso no while… não entendo… A thread não era pra rodar separadamente da interface???
Vejam meu código:
public class PersistenceController implements Runnable{
public PersistenceController(Connection con, int time){
bdcon = con;
closed = false;
sleep_time = time * 1000;
}
public void run() {
do{
Thread t1 = new Thread(new PersistenceRunnable(bdcon));
try {
t1.sleep(sleep_time);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
t1.run();
}while(!closed);
}
public void closePersistence(){
closed = true;
}
private Connection bdcon;
private boolean closed;
private int sleep_time;
}
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ginasticalaboral;
import java.sql.Connection;
import java.sql.DriverManager;
/**
*
* @author gs10123
*/
public class PersistenceRunnable implements Runnable {
public PersistenceRunnable(Connection con) {
bdcon = con;
}
public void run() {
try {
if (!bdcon.isValid(0)) {
bdcon = DriverManager.getConnection("jdbc:mySQL://10.96.2.254:3306/srcdb", "root", "nopass");
} else {
System.out.println("Conexão válida!");
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Sem conexão.. Tentando mais tarde");
}
}
private Connection bdcon;
}
Eu crio uma nova thread passando persistencecontroller como parametro no construtor da minha interface gráfica… ai para lá!!! :shock: