private MemcachedBackupSession loadBackupSession(final String requestedSessionId, final String newNodeId) { try { final SessionValidityInfo validityInfo = _lockingStrategy.loadBackupSessionValidityInfo( requestedSessionId ); if ( validityInfo == null || !validityInfo.isValid() ) { if(_log.isDebugEnabled()) _log.debug( "No validity info (or no valid one) found for sessionId " + requestedSessionId ); return null; } final byte[] obj = _storage.get( getSessionIdFormat().createBackupKey( requestedSessionId ) ); if ( obj == null ) { if(_log.isDebugEnabled()) _log.debug( "No backup found for sessionId " + requestedSessionId ); return null; } final MemcachedBackupSession session = _transcoderService.deserialize( obj, _manager ); session.setSticky( _sticky ); session.setLastAccessedTimeInternal( validityInfo.getLastAccessedTime() ); session.setThisAccessedTimeInternal( validityInfo.getThisAccessedTime() ); final String newSessionId = getSessionIdFormat().createNewSessionId( requestedSessionId, newNodeId ); _log.info( "Session backup loaded from secondary memcached for "+ requestedSessionId +" (will be relocated)," + " setting new id "+ newSessionId +" on session..." ); session.setIdInternal( newSessionId ); return session; } catch( final Exception e ) { _log.error( "Could not get backup validityInfo or backup session for sessionId " + requestedSessionId, e ); return null; } }
private MemcachedBackupSession loadBackupSession(final String requestedSessionId, final String newNodeId) { try { final SessionValidityInfo validityInfo = _lockingStrategy.loadBackupSessionValidityInfo( requestedSessionId ); if ( validityInfo == null || !validityInfo.isValid() ) { if(_log.isDebugEnabled()) _log.debug( "No validity info (or no valid one) found for sessionId " + requestedSessionId ); return null; } final byte[] obj = _storage.get( getSessionIdFormat().createBackupKey( requestedSessionId ) ); if ( obj == null ) { if(_log.isDebugEnabled()) _log.debug( "No backup found for sessionId " + requestedSessionId ); return null; } final MemcachedBackupSession session = _transcoderService.deserialize( obj, _manager ); session.setSticky( _sticky ); session.setLastAccessedTimeInternal( validityInfo.getLastAccessedTime() ); session.setThisAccessedTimeInternal( validityInfo.getThisAccessedTime() ); final String newSessionId = getSessionIdFormat().createNewSessionId( requestedSessionId, newNodeId ); _log.info( "Session backup loaded from secondary memcached for "+ requestedSessionId +" (will be relocated)," + " setting new id "+ newSessionId +" on session..." ); session.setIdInternal( newSessionId ); return session; } catch( final Exception e ) { _log.error( "Could not get backup validityInfo or backup session for sessionId " + requestedSessionId, e ); return null; } }