@SuppressWarnings({"unchecked", "static-access"})
  public static synchronized void initConnectionPool() throws SQLException, ClassNotFoundException {
    ConnectionPool.getConnectionPool().destoryConnectionPool();

    @SuppressWarnings("rawtypes")
    Vector temp = ConnectionPool.getConnectionPool().getConnectionPoolBuffer();
    ConnectionFactory connectionFactory = ConnectionFactory.getDefaultFactory();

    for (int i = 0; i < MAX_CONNECTION; i++) {

      Connection connection = connectionFactory.createConnection("mysql");
      temp.addElement(new ConnectionInfo(connection, System.currentTimeMillis()));
      System.out.println("New Connection Created.." + connection);
    }
  }
  public synchronized Connection getConnection() {
    ConnectionInfo connectionInfo = null;

    if (wait_count > MAX_CONNECTION) {
      return null;
    }

    try {
      while (buffer.size() == 0) {
        wait_count++;
        this.wait();
        wait_count--;
      }

      connectionInfo = (ConnectionInfo) this.buffer.elementAt(0);
      long interval = System.currentTimeMillis() - connectionInfo.time;
      if (interval > 1000 * 60 * 30) {
        try {
          System.out.println(interval / 1000 + "초를 경과 Connection Close");
          connectionInfo.connection.close();
        } catch (SQLException e1) {
          e1.printStackTrace();
          System.out.println("Connection Closed error");
        }
        ConnectionFactory connectionFactory = ConnectionFactory.getDefaultFactory();
        connectionInfo.connection = connectionFactory.createConnection("mysql");
        System.out.println(new java.util.Date().toString() + "Connection Opened");
      }
    } catch (InterruptedException e2) {
      e2.printStackTrace();

    } finally {
      connectionInfo = (ConnectionInfo) this.buffer.remove(0);
    }
    return connectionInfo.connection;
  }