docs: Connection getConnection(boolean fromInit) {
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[GET_CONNECTION]);
          }
          Connection conn = null;
          boolean exceptionOccured = false;
  
          if (dataSource == null)
              getDataSource();
  
          if (dataSource != null) {
  
              //Try getting connection thrice when stale connection happens
              //if it fails, give it up
              int tries = 0;
              suspendTransaction();
              beginDBContext(); // PK06395/d321615
              while (tries < _smc.getConnectionRetryCount()+1) {
                  try {
                      tries++;
                      exceptionOccured = false;
                      //
                      //		            if (!SessionManagerConfig.is_zOS()) {	  // LIDB2775.25 zOS
                      //                        conn = dataSource.getConnection(dbid, dbpwd);
                      //		            } else {
                      // in liberty profile, depend on data source for user/password
                      conn = dataSource.getConnection(); // LIDB2775.25 zOS
  
                      if (dbHandler != null && !dbHandler.isConnectionValid(conn)) {
                          LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[GET_CONNECTION], "Stale connection detected.");
                          continue;
                      }
  
                      //		            }
                      conn.setAutoCommit(true);
                      if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINER)) {
                          LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[GET_CONNECTION], "Connection-isolation-level" + conn.getTransactionIsolation());
                      }
                      //if we did not successully initialize the database settings due to the database being down on startup, do it now
                      //fromInit tells us if we came from initDBSettings: We don't want to call this the first time when initDBSettings calls getConnection
                      if (!initialized && !fromInit && !tryingToInitialize) {
                          synchronized (this) {
                              tryingToInitialize = true;
                              if (!initialized) {
                                  initDBSettings();
                              }
                              tryingToInitialize = false;
                          }
                      }
                      return conn;
  
                  } catch (Throwable th) {
                      exceptionOccured = true;
                      //                    if (isStaleConnectionException(th)) {
                      //                        com.ibm.ws.ffdc.FFDCFilter.processException(th, "com.ibm.ws.session.store.db.DatabaseHashMap.getConnection", "1081", this);
                      //                        if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled()&&LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      //                            LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[UPDATE_LAST_ACCESS_TIME], "StaleConnectionException");
                      //                        }
                      //                        continue; // try up to 3 times
                      //                    } else {
                      //                        exceptionOccured = true;
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[GET_CONNECTION], "CommonMessage.exception", th);
                      //                        break; // bail out now
                      //                    }
                      continue; // try up to 3 times
                  }
              }
  
          } else {
              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.WARNING, methodClassName, methodNames[GET_CONNECTION], "DatabaseHashMap.getConnectionError");
          }
          if (exceptionOccured) {
              endDBContext(); // PK06395/d321615
              resumeTransaction();
          }
          return null;
  
      }