Em meu código existe um método que realiza a inserção de dados vindos do clientes e o outro no servidor que inserir os dados nas devidas tabela a partir de um cursor em SQL server. Preciso isolar estes metodos. quando um estiver a inserir o outro aguarda apois a inserção terminar.
public void InserirDaddos(String registo) {
Log inserirDados = new Log();
PreparedStatement stmt = null;
Connection con = Conectar.getConnection();
try {
con.setAutoCommit(false);
stmt = con.prepareStatement(registo);
stmt.execute();
con.commit();
} catch (Exception ex) {
System.out.println("Erro ao salvar" + ex.getMessage());
} finally {
Conectar.closseConnection(con, stmt);
}
}
public void resolucaoConflitos() {
int diferenca = 0;
try {
Conectar.closseConnection(con);
con = Conectar.getConnection();
con.setAutoCommit(false);
stmt1 = con.prepareCall("{CALL CONFLITOS()}");
stmt1.execute();
con.commit();
} catch (Exception ex) {
System.out.println("Erro ao resolver conflitos os conflitos " + ex.getMessage());
} finally {
Conectar.closseConnection(con, stmt);
}
}
public class sincroniza {
public sincroniza() {
}
public synchronized char inserirDados() {
while (!disponivel) {
try {
wait();
} catch (InterruptedException ex) {
}
}
disponivel = false;
notify();
return infor;
}
public synchronized void reconciliar(char valor) {
while (disponivel) {
try {
wait();
br.resolucaoConflitos();
} catch (InterruptedException ex) {
}
}
infor = valor;
disponivel = true;
notify();
}
}