docs: private void initDBSettings() {
          synchronized (this) {
  
              Connection tbcon = null;
              String url = null;
              try {
                  setUserInfo();
                  //passing true because we're doing initDBSettings
                  tbcon = getConnection(true);
                  if (tbcon == null)
                      return;
                  DatabaseMetaData dmd = tbcon.getMetaData();
  
                  // cmd pok_PQ97422 rollup
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      String dbProductName = dmd.getDatabaseProductName();
                      String dbProductVersion = dmd.getDatabaseProductVersion();
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "dbProductName: " + dbProductName);
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "dbProductVersion: " + dbProductVersion);
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "dbUserName: " + dmd.getUserName());
                  } // cmd end of pok_PQ97422 rollup
  
                  int dbCode = DBPortability.getDBCode(dmd);
                  if (dbCode == DBPortability.ORACLE) {
                      smallColSize = SMALLCOL_SIZE_ORACLE;
                      mediumColSize = MEDIUMCOL_SIZE_ORACLE;
                      largeColSize = LARGECOL_SIZE_ORACLE;
                      usingOracle = true;
  
                  } else if (dbCode == DBPortability.SYBASE) {
                      smallColSize = SMALLCOL_SIZE_SYBASE;
                      mediumColSize = MEDIUMCOL_SIZE_SYBASE;
                      largeColSize = LARGECOL_SIZE_SYBASE;
                      usingSybase = true;
                  } else if (dbCode == DBPortability.MICROSOFT_SQLSERVER) {
                      //SQLSERVER and SYBASE behaves the sameway  for binary objects
                      smallColSize = SMALLCOL_SIZE_SYBASE;
                      mediumColSize = MEDIUMCOL_SIZE_SYBASE;
                      largeColSize = LARGECOL_SIZE_SYBASE;
                      usingSQLServer = true;
                  } else if (dbCode == DBPortability.INFORMIX) {
                      smallColSize = SMALLCOL_SIZE_INFORMIX;
                      mediumColSize = MEDIUMCOL_SIZE_INFORMIX;
                      largeColSize = LARGECOL_SIZE_INFORMIX;
                      usingInformix = true;
                  } else if (dbCode == DBPortability.CLOUDSCAPE) {
                      smallColSize = SMALLCOL_SIZE_INFORMIX;
                      mediumColSize = MEDIUMCOL_SIZE_INFORMIX;
                      largeColSize = LARGECOL_SIZE_INFORMIX;
                      usingCloudScape = true;
                  } else if (dbCode == DBPortability.POSTGRESQL) {
                      dbHandler = new PostgreSQLHandler();
                      smallColSize = dbHandler.getSmallColumnSize();
                      mediumColSize = dbHandler.getMediumColumnSize();
                      largeColSize = dbHandler.getLargeColumnSize();
                  } else if (dbCode == DBPortability.MYSQL) {
                      dbHandler = new MySQLHandler();
                      smallColSize = dbHandler.getSmallColumnSize();
                      mediumColSize = dbHandler.getMediumColumnSize();
                      largeColSize = dbHandler.getLargeColumnSize();
                  } //HANDLING DERBY BELOW SO AS TO NOT CHANGE THE BEHAVIOR
                  else {
                      // venkat 89199 increased row size capability
                      if (_smc.getRowSize() == 4) {
                          smallColSize = SMALLCOL_SIZE_DB2;
                      } else if (_smc.getRowSize() == 8) {
                          smallColSize = SMALLCOL_SIZE_DB2_8K;
                      } else if (_smc.getRowSize() == 16) {
                          smallColSize = SMALLCOL_SIZE_DB2_16K;
                      } else if (_smc.getRowSize() == 32) {
                          smallColSize = SMALLCOL_SIZE_DB2_32K;
                      }
                      mediumColSize = MEDIUMCOL_SIZE_DB2;
                      largeColSize = LARGECOL_SIZE_DB2;
                      usingDB2 = true;
  
                      //For SolidDB, which is a subset of DB2
                      if (dbCode == DBPortability.SOLIDDB) {
                          usingSolidDB = true;
                      }
                      //for OS390
                      if (dbCode == DBPortability.DB2_CONNECT) {
                          smallColSize = SMALLCOL_SIZE_DB2;
                          usingDB2Connect = true;
                          // usingDB2 = false; cmd PK03943 - shouldn't set to false here
                      }
                      // LIDB2775.25 zSO start block
                      else if (dbCode == DBPortability.DB2_zOS) {
                          smallColSize = SMALLCOL_SIZE_DB2;
                          mediumColSize = MEDIUMCOL_SIZE_DB2_ZOS;
                          usingDB2Connect = true;
                          usingDB2zOS = true;
                      } // LIDB2775.25 zOS end block
  
                      //For AS400
                      else if (dbCode == DBPortability.DB2_AS400) {
                          smallColSize = SMALLCOL_SIZE_DB2;
                          mediumColSize = 28898; //d154211
                          usingAS400DB2 = true;
  
                          url = dmd.getURL();
                      } else if (dbCode == DBPortability.DERBY) {
                          //treat like db2 except for volatile
                          usingDB2 = false;
                          usingDerby = true;
                      }
                  }
  
              } catch (SQLException se) {
                  com.ibm.ws.ffdc.FFDCFilter.processException(se, "com.ibm.ws.session.store.db.DatabaseHashMap.initConnPool", "344", this);
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[INIT_DB_SETTINGS], "DatabaseHashMap.createTableError");
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[INIT_DB_SETTINGS], "CommonMessage.exception", se);
              } finally {
                  if (tbcon != null)
                      closeConnection(tbcon);
              }
  
              if (usingAS400DB2 && firstInitialize) { //added firstInitialize for PK55900
                  if (collectionName == null) //PK78174  so we won't overwrite the collectionName set at setUserInfo
                      collectionName = getCollectionName(url);
                  tableName = collectionName + "." + tableName;
                  firstInitialize = false;
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "AS400DB2 Table Name value = ", tableName);
                  }
              } else if (usingDB2zOS) { // LIDB2775.25 zOS
                  if (_smc.getTableNameValue() != null) {
                      tableName = _smc.getTableNameValue(); // LIDB2775.25 zOS
                  }
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "DB2 Table Name value = ", tableName);
                  }
              } else if (usingDB2Connect && firstInitialize) {
                  tableName = collectionName + "." + tableName;
                  firstInitialize = false;
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[INIT_DB_SETTINGS], "DB2Connect Table Name value = ", tableName);
                  }
              }
              initializeSQL_Strings();
              if (!SessionManagerConfig.is_zOS()) {
                  createTable();
              }
          }
  
          initialized = true;
  
      }