public DbConnectionBroker(String dbDriver, String dbServer, String dbLogin, String dbPassword, int minConns, int maxConns, String logFileString, 
            double maxConnTime)
        throws IOException
    {
        connPool = new Connection[maxConns];
        connStatus = new int[maxConns];
        connLockTime = new long[maxConns];
        connCreateDate = new long[maxConns];
        connID = new String[maxConns];
        currConnections = minConns;
        this.maxConns = maxConns;
        this.dbDriver = dbDriver;
        this.dbServer = dbServer;
        this.dbLogin = dbLogin;
        this.dbPassword = dbPassword;
        maxConnMSec = (int)(maxConnTime * 86400000D);
        if(maxConnMSec < 30000)
            maxConnMSec = 30000;
        try
        {
            log = new PrintStream(new FileOutputStream(logFileString));
        }
        catch(IOException e1)
        {
            now = new Date();
            log = new PrintStream(new FileOutputStream(String.valueOf(String.valueOf((new StringBuffer("DCB_")).append(String.valueOf(now.getTime())).append(".log")))));
        }
        log.println("Starting DbConnectionBroker Version 1.0.7:");
        log.println("dbDriver = ".concat(String.valueOf(String.valueOf(dbDriver))));
        log.println("dbServer = ".concat(String.valueOf(String.valueOf(dbServer))));
        log.println("dbLogin = ".concat(String.valueOf(String.valueOf(dbLogin))));
        log.println("log file = ".concat(String.valueOf(String.valueOf(logFileString))));
        log.println("minconnections = ".concat(String.valueOf(String.valueOf(minConns))));
        log.println("maxconnections = ".concat(String.valueOf(String.valueOf(maxConns))));
        log.println(String.valueOf(String.valueOf((new StringBuffer("Total refresh interval = ")).append(maxConnTime).append(" days"))));
        log.println("-----------------------------------------");
        boolean connectionsSucceeded = false;
        int dbLoop = 20;
        try
        {
            for(int i = 1; i < dbLoop; i++)
            {
                try
                {
                    for(int j = 0; j < currConnections; j++)
                        createConn(log, j);

                    connectionsSucceeded = true;
                    break;
                }
                catch(SQLException e)
                {
                	e.printStackTrace();
                    log.println(String.valueOf(String.valueOf((new StringBuffer("--->Attempt (")).append(String.valueOf(i)).append(" of ").append(String.valueOf(dbLoop)).append(") failed to create new connections set at startup: "))));
                    log.println("    ".concat(String.valueOf(String.valueOf(e))));
                    log.println("    Will try again in 15 seconds...");
                }
                try
                {
                    Thread.sleep(15000L);
                }
                catch(InterruptedException interruptedexception) { }
            }

            if(!connectionsSucceeded)
            {
                log.println("\r\nAll attempts at connecting to Database exhausted");
                throw new IOException();
            }
        }
        catch(Exception e)
        {
            e.printStackTrace(System.err);
            throw new IOException();
        }
        if(runner == null)
        {
            runner = new Thread(this);
            runner.start();
        }
    }