docs: private boolean doesIndexExistsiSeries(Connection con, String indexName) {
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES]);
          }
          boolean indexExists_iSeries = false;
  
          //Introduce noQualifiertblName and set it to "SESSIONS" instead of using tableName since tableName is set to
          //qualifierName.tableName which is different from the one using in iSeries platform
          String sysIndexes = null, sysKeys = null, noQualifiertblName = "SESSIONS", qualifierName = null, sqlQueryIndex = null, sqlQueryCol = null, returnIndexName = null, index_colNames = null, schemaSeparator = ".";
  
          PreparedStatement ps = null, ps1 = null;
          ResultSet rs = null, rs1 = null;
          int counter = 0;
  
          sysIndexes = "QSYS2".concat(schemaSeparator).concat("sysindexes");
          sysKeys = "QSYS2".concat(schemaSeparator).concat("syskeys");
  
          //Keep the following line for future reference
          //SELECT INDEX_NAME FROM QSYS2.SYSINDEXES  WHERE INDEX_NAME='SESS_INDEX' AND TABLE_NAME='SESSIONS'
          //AND IS_UNIQUE='U' AND TABLE_SCHEMA='KPW51BSSSN'FOR READ ONLY
          sqlQueryIndex = "select index_name from " + sysIndexes + " where Index_Name = '"
                          + indexName.toUpperCase() + "' and " + "Table_Name = '" + noQualifiertblName
                          + "' and IS_UNIQUE = 'U'";
  
          //Keep the following line for future reference
          //SELECT COLUMN_NAME FROM qsys2.SYSKEYS  WHERE INDEX_NAME='SESS_INDEX' AND INDEX_SCHEMA='KPW51BSSSN'
          sqlQueryCol = "select COLUMN_NAME from " + sysKeys +
                        " where INDEX_NAME = '" + indexName.toUpperCase() + "'";
  
          if (collectionName != null) {
              sqlQueryIndex += " and table_schema = '" + collectionName.toUpperCase() + "'";
              sqlQueryCol += " and index_schema = '" + collectionName.toUpperCase() + "'";
          }
          sqlQueryIndex += " for read only";
          sqlQueryCol += " for read only";
  
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "sqlQueryIndex: " + sqlQueryIndex);
              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "sqlQueryCol: " + sqlQueryCol);
          }
  
          //checking if the index exists first
          try {
              ps = con.prepareStatement(sqlQueryIndex);
              rs = ps.executeQuery();
  
              if (rs.next()) { //ResultSet returning the possible SESS_INDEX
                  returnIndexName = rs.getString(1);
                  if (returnIndexName != null) {
                      if (returnIndexName.indexOf(indexName.toUpperCase()) != -1) {
                          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "index: " + returnIndexName + " exists");
                          }
                          indexExists_iSeries = true;
                      } else if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                          LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "index: " + returnIndexName + " does not exist");
                      }
                  }
              } else {
                  if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "ResultSet is null");
                  }
              }
          } catch (Throwable th) {
              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "CommonMessage.exception", th);
          } finally {
              if (rs != null) {
                  closeResultSet(rs);
              }
              if (ps != null) {
                  closeStatement(ps);
              }
          }
          //If the session index exists, we will check if the index definition is
          //what the session manager would have created
          if (indexExists_iSeries) {
              try {
                  ps1 = con.prepareStatement(sqlQueryCol);
                  rs1 = ps1.executeQuery();
                  while (rs1.next()) {
                      String extractedColumn = rs1.getString(1);
                      if (extractedColumn != null) {
                          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                              LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "extractedColumn : " + extractedColumn);
                          }
                          if ((extractedColumn.indexOf(idCol.toUpperCase()) != -1) ||
                                  (extractedColumn.indexOf(propCol.toUpperCase()) != -1) ||
                                     (extractedColumn.indexOf(appCol.toUpperCase()) != -1)) {
  
                              if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
                                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.FINE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "column is found : " + extractedColumn);
                              }
                              counter++;
                          }// end if (extractedColumn......)
                      }// end if (extractedColumn != null)
                  }//end while
                   //we issue the warning here as if the index exists and any
                   //index column is missing
                  if (counter < 3) {
                      LoggingUtil.SESSION_LOGGER_WAS.logp(Level.WARNING, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "DatabaseHashMap.IndexIncorrect");
                  }
              } catch (Throwable th) {
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], "CommonMessage.exception", th);
              } finally {
                  if (rs1 != null) {
                      closeResultSet(rs1);
                  }
                  if (ps1 != null) {
                      closeStatement(ps1);
                  }
              }
          }// end  if (indexExists_iSeries)
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.exiting(methodClassName, methodNames[DOES_INDEX_EXISTS_ISERIES], indexExists_iSeries);
          }
          return indexExists_iSeries;
      }