//import java.io.*;
import java.sql.*;

public class WaitDbStart {
  private static void Usage() {
	System.out.println("P1-> hostname\nP2-> Port\nP3-> SID\nP4-> Temporisation");
	System.exit(1);
  }
  public static void main(String[] args) {
    try {
      if (args.length != 4) {
	   Usage();
      }
      String hostname = args[0];
      String port = args[1];
      String sid = args[2];
      int tempo = Integer.parseInt(args[3]) * 1000;
      String dbuser = "est_tu_la";
      String dbpass = "petre_ben_quoui_petre_ben_qunon";

      Connection con=null;
      Class.forName("oracle.jdbc.driver.OracleDriver");
      int ERR=0;
      while(ERR!=1017) {
      try {
        con=DriverManager.getConnection("jdbc:oracle:thin:@"+hostname+":"+port+":"+sid,dbuser,dbpass);
        con.close();
        ERR=1017;
        System.out.println("La base répond !!!");
      }
      catch(SQLException sqlerr){
        ERR=sqlerr.getErrorCode();
		if (ERR != 1017) {
		  System.out.println("ErrOra : "+sqlerr.getMessage());
          try { Thread.sleep(tempo); }
	      catch (InterruptedException e) { e.printStackTrace(); }
	    }
	    else {
          System.out.println("La base répond !!!");
        }
      }
      }
   }
   catch(Exception e){
	    e.printStackTrace();
   }
 }
}
