docs: void processInvalidListeners(Enumeration enum1, Connection nukerCon) throws Exception {
          if (com.ibm.websphere.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_WAS.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_WAS.entering(methodClassName, methodNames[PROCESS_INVALID_LISTENERS]);
          }
  
          DatabaseSession s;
          PreparedStatement delNuke = null;
          boolean delNukeClose = false;
          PreparedStatement ps = null;
          boolean psClose = false;
          long now = System.currentTimeMillis();
          //handle the subset of session listerners
          int deleteCount = 0;
          while (enum1.hasMoreElements()) {
              s = (DatabaseSession) enum1.nextElement();
              String id = s.getId();
              long lastAccess = s.getCurrentAccessTime(); // try using lastTouch again..
  
              try {
                  // get the session ready and read in any listeners
                  s.setIsNew(false);
                  s.getSwappableListeners(BackedSession.HTTP_SESSION_BINDING_LISTENER);
  
                  delNuke = nukerCon.prepareStatement(delPrimaryRowInval);
                  delNuke.setString(1, id);
                  delNuke.setString(2, s.getAppName());
                  setPSLong(delNuke, 3, lastAccess);
  
                  int rc = delNuke.executeUpdate();
                  delNuke.close();
                  delNukeClose = true;
  
                  // only invalidate those which have not been accessed since
                  // check in computeInvalidList
                  if (rc > 0) {
                      // return of session done as a result of this call
                      s.internalInvalidate(true);
  
                      if (_smc.isUsingMultirow()) {
                          ps = nukerCon.prepareStatement(delOne);
                          ps.setString(1, id);
                          ps.setString(2, s.getAppName());
                          ps.executeUpdate();
                          ps.close();
                          psClose = true;
                      }
                      deleteCount++;
  
                  }
  
                  /*
                   * REG : Changed this on 11/03/2006 from
                   * "if ((now + _smc.getInvalidationCheckInterval() * 1000) >= System.currentTimeMillis()) {"
                   * because we don't want to update this on every invalidation with a listener that is processed.
                   * We'll only update this if we're getting close.
                   *
                   * Processing Invalidation Listeners could take a long time. We should update the
                   * NukerTimeStamp so that another server in this cluster doesn't kick off invalidation
                   * while we are still processing. We only want to update the time stamp if we are getting
                   * close to the time when it will expire. Therefore, we are going to do it after we're 1/2 way there.
                   */
                  if ((now + _smc.getInvalidationCheckInterval() * (1000 / 2)) < System.currentTimeMillis()) {
                      updateNukerTimeStamp(nukerCon, getIStore().getId());
                      now = System.currentTimeMillis();
                  }
              } catch (Exception e) {
                  //                if (isStaleConnectionException(e)) {
                  //                    com.ibm.ws.ffdc.FFDCFilter.processException(e, "com.ibm.ws.session.store.db.DatabaseHashMap.processInvalidListeners", "2620", s);
                  //                    throw e;
                  //                } else {
                  com.ibm.ws.ffdc.FFDCFilter.processException(e, "com.ibm.ws.session.store.db.DatabaseHashMap.processInvalidListeners", "2623", s);
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[PROCESS_INVALID_LISTENERS], "DatabaseHashMap.invalidateError");
                  LoggingUtil.SESSION_LOGGER_WAS.logp(Level.SEVERE, methodClassName, methodNames[PROCESS_INVALID_LISTENERS], "CommonMessage.exception", e);
                  throw e;
                  //                }
              } finally {
                  if (!delNukeClose && delNuke != null)
                      closeStatement(delNuke);
                  if (!psClose && ps != null)
                      closeStatement(ps);
              }
          }
  
      }