[RESOLVIDO]Não rodar enquanto não tiver conexao com o BD

Galera seguinte preciso fazer um sistema, que enquanto nao tiver conexao com o banco de dados ele nao executa o que está abaixo no código.
O sistema será reniciado todos os dias , comecei a fazer mas sem sucesso, alguém poderia dar uma ajuda…
grato a todos e estou colocando o que comecei a fazer


public class Conexao {
    
    private static ResultSet rs;
    private static int mss;
    private static String msg;
    private static String mm;
    private static boolean pp;
    private static int i;
    
    public static void main(String[] args) throws ClassNotFoundException, InterruptedException {
        
        try{

              Class.forName("oracle.jdbc.OracleDriver");
                Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
                System.out.println("conectado");
                
                  java.sql.PreparedStatement stt = connection.prepareStatement("select * from system.status_minutos ORDER BY DT_PROCESSO DESC");
                  
                  ResultSet rt = stt.executeQuery();
                  while(rt.next()){
                      mss = rt.getInt("dt_processo");
                System.out.println("Data de Processamento : "+mss);
                
                mm = Integer.toString(mss);
                
                  }
                  for(i=0; i>10; i++){
                    //while(!msg.equals(mm)){
                       System.out.println("Aguardando 5 segundos...");
                Thread.sleep(5000);
                    pp =(false);
                  }   
                
        
        }catch(SQLException e){
            for(i=0; i<20; i++){
                System.out.println("Aguardando 5 segundos...");
                Thread.sleep(5000);
                    pp =(false);
                  } 
            JOptionPane.showMessageDialog(null, "SQLException : "+e);
        }
    }
    
}

Oi!

O SQLException não é algo conhecido em termos de erro. Pode ser a falta de uma vírgula na sua String SQL ou até mesmo a conexão, que é o que você precisa. Acredito que a Thread.sleep() possa vir a ser uma boa alternativa, mas o seu método deveria fazer apenas a conexão e mais nada, algo como:

private static Connection conn = null; public synchronized static Connection getConnection() { try { Class.forName("oracle.jdbc.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin"); return conn; } catch (ClassNotFoundException e) { // faz algo return null; } catch (SQLException e) { // 10 s Thread.sleep(10000); return getConnection(); } }

Fale Nel…

Cara tentei fazer dessa forma , mas está dando erro
“ilegal start of expression”

public class Conexao {
    
    private static ResultSet rs;
    private static int mss;
    private static String msg;
    private static String mm;
    private static boolean pp;
    private static int i;
    private static Connection conn = null;  
    
    public static void main(String[] args) throws ClassNotFoundException, InterruptedException {
 
       public synchronized static Connection getConnection() { 
            try {  
                Class.forName("oracle.jdbc.OracleDriver");     
                    conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");     
                } catch (ClassNotFoundException e) {  
                // faz algo  
                return null;  
               } catch (SQLException e) {  
            // 10 s  
          Thread.sleep(10000);  
           return getConnection();  
      }  
  }
 }
}

Acho que faltou ‘}’.
Cuide ao apenas copiar e colar, podemos esquecer detalhes.

Faça assim o seu teste colega e não da forma que fez:

[code]public static void main(String[] args) {
try {
Connection conn = getConnection();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public synchronized static Connection getConnection() throws InterruptedException {   
    try {     
        Class.forName("oracle.jdbc.OracleDriver");       
       	conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","admin");
       	return conn;
    } catch (ClassNotFoundException e) {     
        // faz algo     
    	return null;     
    } catch (SQLException e) {     
    	// 10 s     
    	System.out.println("Aguardando 10 segundos...");
    	Thread.sleep(10000);     
    	return getConnection();
    }
}     [/code]

Nel deu certinho cara muito obrigado, valeu mesmo!!!
abraços

Nel, se pudesse me ajudar nisso ficaria muito grato.
seguinte estou fazendo uma classe que verifica se o dia cair no domingo ela tem que esperar até segunda feira
se cair num sabado ela tem que esperar até segunda feira, sei que tenho que colocar uma Threads.sleep();

Mas não estou conseguindo colocar, pode me ajudar!?

[code]
public class FirstDayofWeek {

public static void main(String[] args) throws InterruptedException {      

       Date d = new Date();  
        Calendar c = new GregorianCalendar();  
        c.setTime(d);  
        String nome = "";  
        int dia = c.get(c.DAY_OF_WEEK);  
        switch(dia){  
            case Calendar.SUNDAY:
             nome = "Domingo";
            // JOptionPane.showMessageDialog(null, "Domingo o banco não funciona.....");
             while(nome == "Domingo"){
                 System.out.println("Aguardando 5 segundos...");
            Thread.sleep(5000);
             nome = ("Segunda");
             }
             
            System.exit(0);
          break;  
      case Calendar.SATURDAY: 
          nome = "sábado";
            JOptionPane.showMessageDialog(null, "Domingo o banco não funciona.....");
            System.exit(0);
          break;  
          default:
               String comando = "C:\\teste\\arquivo.zip"; 
            try{ 
                Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL "+comando); 
                }catch (IOException e){
                    JOptionPane.showMessageDialog(null, "Domingo o banco não funciona.....");
                }
              break;
         
    }  

}

}

[/code]

O correto não seria emitir uma mensagem ao usuário informando que o sistema está off sábado e domingo ?
Usar o Thread.sleep() para esse caso, é inaproriado, você não acha ?

Senão a cada x tempo o sistema verifica se já não é segunda.
O ideal era verificar somente quando solicitado pelo usuário .

Pois é grande eu concordo plenamente com você, só que o filha de uma mãe do DBA rsrsrs
disse que o banco que esta no servidor , nao funciona aos finais de semana, sendo que a aplicação deve acorrrer em dias já definidos
tipo dia 7, 10, 13, 16, 19 , 22, 25, 28 , 2 , 4
se algum desses dias cair num sabado por exemplo ficaria num sleep até segunda-feira
se caisse num domingo a mesma coisa.

[quote=snowblacksoul]Pois é grande eu concordo plenamente com você, só que o filha de uma mãe do DBA rsrsrs
disse que o banco que esta no servidor , nao funciona aos finais de semana, sendo que a aplicação deve acorrrer em dias já definidos
tipo dia 7, 10, 13, 16, 19 , 22, 25, 28 , 2 , 4
se algum desses dias cair num sabado por exemplo ficaria num sleep até segunda-feira
se caisse num domingo a mesma coisa.[/quote]

Deixa esse tópico fechado, com o Resolvido.
Abre um novo e expõe a sua necessidade e explica um pouco melhor isso que tu acabou de dizer.

Ai eu e com certeza mais pessoas iremos verificar e sugerir algo.
Não esqueça de postar o que tu já fez em código, senão vão achar que tu quer algo pronto sem ter feito nada.

Valeu Nel