docs: public void setupDBConnection() throws DBException
      {
          String strURL = this.getProperty(SQLParams.JDBC_URL_PARAM);
          if ((strURL == null) || (strURL.length() == 0))
              strURL = this.getProperty(SQLParams.DEFAULT_JDBC_URL_PARAM);    // Default
          String strServer = this.getProperty(SQLParams.DB_SERVER_PARAM);
          if ((strServer == null) || (strServer.length() == 0))
              strServer = this.getProperty(SQLParams.DEFAULT_DB_SERVER_PARAM);    // Default
          if ((strServer == null) || (strServer.length() == 0))
              strServer = "localhost"; //this.getProperty(DBParams.SERVER);    // ??       
          String strDatabaseName = this.getDatabaseName(true);
          strURL = Utility.replace(strURL, "${dbname}", strDatabaseName);
          if (strServer != null)
              strURL = Utility.replace(strURL, "${dbserver}", strServer);
          if (strURL.contains("${user.home}"))
          {
              try {
                  strURL = Utility.replace(strURL, "${user.home}", System.getProperty("user.home"));
              } catch (SecurityException e) {
                  strURL = Utility.replace(strURL, "${user.home}", "");
              }
          }
          String strUsername = this.getProperty(SQLParams.USERNAME_PARAM);
          if ((strUsername == null) || (strUsername.length() == 0))
              strUsername = this.getProperty(SQLParams.DEFAULT_USERNAME_PARAM); // Default
          String strPassword = this.getProperty(SQLParams.PASSWORD_PARAM);
          if ((strPassword == null) || (strPassword.length() == 0))
              strPassword = this.getProperty(SQLParams.DEFAULT_PASSWORD_PARAM); // Default
          // Open the database for non-exclusive access
          try   {
              Utility.getLogger().info("Connecting: " + strURL + " User: " + strUsername);
              m_JDBCConnection = DriverManager.getConnection(strURL, strUsername, strPassword);
              Utility.getLogger().info("Connection okay: " + (m_JDBCConnection != null));
          }
          catch (SQLException e)
          {
              DBException ex = this.convertError(e);    // Probably "DB Not found"
              if ((ex.getErrorCode() == DBConstants.DB_NOT_FOUND)
                  && (!DBConstants.FALSE.equalsIgnoreCase(this.getProperty(DBConstants.CREATE_DB_IF_NOT_FOUND)))
                      && (DBConstants.TRUE.equals(this.getProperty(SQLParams.CREATE_DATABASE_SUPPORTED))))
              {
                  if (this.create(strDatabaseName)) // Database not found, create it.
                      return;     // Success
              	e.printStackTrace();
              }
              if (ex.getErrorCode() != DBConstants.DB_NOT_FOUND)
              	e.printStackTrace();	// Ignore if create is turned off
              throw ex;
          }
          catch (java.lang.Exception ex)
          {
              ex.printStackTrace();
              Debug.print(ex, "Error on open db");
              System.exit(0);
          }
      }