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]);
        }
    }
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 ) ) { backendUpdate = false ; sessionId = sessionId . substring ( 1 ) ; 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 ) ; } } if ( ( sd != null ) && ( sd . getISession ( ) != null ) && ( ! ( ( MemorySession ) sd . getISession ( ) ) . isInvalInProgress ( ) ) ) { sd . invalidate ( ) ; } 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 ) ; } } } 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 ] ) ; } }
/*
invalidateAll support added for LIDB3477.20 -- added for portal requirement