docs: public void invalidateAll(String sessionId, String appName, SessionData sd, boolean goRemote, boolean fromRemote) {
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINER)) {
              StringBuffer sb = new StringBuffer("for app ").append(appName).append(" id ").append(sessionId).append(" goRemote ").append(goRemote).append(" fromRemote ").append(fromRemote);
              LoggingUtil.SESSION_LOGGER_CORE.entering(methodClassName, methodNames[INVALIDATE_ALL], sb.toString());
          }
  
          boolean backendUpdate = true;
          if (sessionId.startsWith(NO_BACKEND_UPDATE_FLAG)) { // special check to prevent each zOS servant from doing db query
              backendUpdate = false;
              sessionId = sessionId.substring(1); // remove flag
              if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
                  LoggingUtil.SESSION_LOGGER_CORE.logp(Level.FINE, methodClassName, methodNames[INVALIDATE_ALL], "setting backendUpdate to false and removed flag - sessionId: "
                                                                                                                 + sessionId);
              }
          }
          // we invalidate on this server before broadcast so that in a cluster with
          // persistent
          // session's, we'll do the actual invalidation and removal from the back-end
          // here.
  
          if ((sd != null) && (sd.getISession() != null) && (!((MemorySession) sd.getISession()).isInvalInProgress())) { // sd will be null if fromRemote is true
              sd.invalidate(); // take care of this session first -- the session that
                               // was used to call invalidateAll
          }
          Enumeration vEnum = SessionContextRegistry.getScrSessionContexts();
          while (vEnum.hasMoreElements()) {
              SessionContext context = (SessionContext) vEnum.nextElement();
              if (fromRemote) {
                  context.remoteInvalidate(sessionId, backendUpdate);
              } else {
                  if (sd.getSessCtx() != context) {
                      context.invalidate(sessionId);
                  }
              }
          }
          /* Change this to handle ApplicationSessions */
          if (SessionManagerConfig.getUsingApplicationSessionsAndInvalidateAll()) {
              Enumeration vEnumManagers = SessionManagerRegistry.getSessionManagerRegistry().getSessionManagers();
              while (vEnumManagers.hasMoreElements()) {
                  IGenericSessionManager manager = (IGenericSessionManager) vEnumManagers.nextElement();
                  callInvalidateAllOnApplicationSessionManager(manager, sessionId, backendUpdate, fromRemote);
              }
          }
          if (com.ibm.ejs.ras.TraceComponent.isAnyTracingEnabled() && LoggingUtil.SESSION_LOGGER_CORE.isLoggable(Level.FINE)) {
              LoggingUtil.SESSION_LOGGER_CORE.exiting(methodClassName, methodNames[INVALIDATE_ALL]);
          }
      }