docs: public Connection getConnFromTranLogDirString(String fullLogDirectory) throws LogCorruptedException, LogAllocationException, InternalLogException, LogIncompatibleException {
          if (tc.isEntryEnabled())
              Tr.entry(tc, "getConnFromTranLogDirString", new java.lang.Object[] { fullLogDirectory, this });
  
          Connection conn = null;
  
          try {
              // Parse the _internalLogProperties in order to extract the config parameters to connect to the database
              // The LOG_DIRECTORY will be of the form,
              //    DB2:  custom://com.ibm.rls.jdbc.SQLRecoveryLog?url=jdbc:db2://localhost:50000/SAMPLE,user=db2admin,
              //                                                  password=db2admin,dbdir=C:\\SQLLIB\\java
              // ORACLE:  custom://com.ibm.rls.jdbc.SQLRecoveryLog?url=jdbc:oracle:thin:@localhost:1521:orcl,user=scott,
              //                                                  password=tiger,dbdir=C:\\Oracle\\app\\Administrator\\product\\11.2.0\\dbhome_1\\jdbc\\lib
              //
              // Other DB2 URL specs might be "jdbc:db2\:WSTEST" or "jdbc:db2://moondb05.rtp.raleigh.ibm.com:50000/BFTESTDB"
              //
              // The dbdir property enables the location of the db2 jars so the driver can be found
              // On WINDOWS
              //          java.io.File file1 = new java.io.File("C:\\SQLLIB\\java\\db2jcc.jar");
              //          java.io.File file2 = new java.io.File("C:\\SQLLIB\\java\\db2jcc_license_cu.jar");
              //          java.io.File file3 = new java.io.File("C:\\SQLLIB\\java\\");
              //On UNIX
              //        java.io.File file1 = new java.io.File("/test/db2jcc.jar");
              //        java.io.File file2 = new java.io.File("/test/db2jcc_license_cu.jar");
              //        java.io.File file3 = new java.io.File("/test");
  
              // Set up RDBMS properties to be used by JDBC
              Properties dbProps = new Properties();
  
              // Parse the string we've been given
              parseLogDirectoryString(fullLogDirectory, dbProps);
  
              // Set up the class for the specific RDBMS implementation's JDBC driver
              Class cls = null;
              // Create a new class loader with the directory
              ClassLoader sqlDriverClassLoader = null;
  
              try {
                  sqlDriverClassLoader = (ClassLoader) AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() {
                      @Override
                      public Object run() {
                          ClassLoader cl = new java.net.URLClassLoader(_urls);
                          return cl;
                      }
                  });
              } catch (PrivilegedActionException e) {
                  Tr.error(tc, e.getMessage());
                  if (tc.isDebugEnabled()) {
                      Tr.debug(tc, e.getMessage(), e);
                  }
              }
  
              if (_isOracle) {
                  cls = sqlDriverClassLoader.loadClass("oracle.jdbc.OracleDriver");
              } else {
                  cls = sqlDriverClassLoader.loadClass("com.ibm.db2.jcc.DB2Driver");
              }
  
              if (tc.isDebugEnabled())
                  Tr.debug(tc, "instantiate jdbc driver class = " + cls);
              // Class cls = Class.forName("com.ibm.db2.jcc.DB2Driver") //.newInstance();
              java.sql.Driver d = (java.sql.Driver) cls.newInstance();
  
              if (tc.isDebugEnabled())
                  Tr.debug(tc, " **** Does this driver accept my URL? " + d.acceptsURL(_dbURL));
              DriverManager.registerDriver(d);
  
              // Connect to the Database
              conn = d.connect(_dbURL, dbProps);
          } catch (Throwable exc) {
              FFDCFilter.processException(exc, "com.ibm.ws.recoverylog.spi.SQLMultiScopeRecoveryLog.openLog", "500", this);
              if (tc.isEventEnabled())
                  Tr.event(tc, "Unexpected exception caught in openLog", exc);
              markFailed(exc); /* @MD19484C */
              _recoverableUnits = null;
  
              for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
                  if (tc.isDebugEnabled())
                      Tr.debug(tc, " " + ste);
              }
  
              if (tc.isEntryEnabled())
                  Tr.exit(tc, "openLog", "InternalLogException");
              throw new InternalLogException(exc);
          }
  
          if (tc.isEntryEnabled())
              Tr.exit(tc, "getConnFromTranLogDirString", conn);
          return conn;
      }