/** * Set the memcached nodes space or comma separated. * <p> * E.g. <code>n1.localhost:11211 n2.localhost:11212</code> * </p> * <p> * When the memcached nodes are set when this manager is already initialized, * the new configuration will be loaded. * </p> * * @param memcachedNodes * the memcached node definitions, whitespace or comma separated */ @Override public void setMemcachedNodes( final String memcachedNodes ) { _msm.setMemcachedNodes( memcachedNodes ); }
/** * Set the memcached nodes space or comma separated. * <p> * E.g. <code>n1.localhost:11211 n2.localhost:11212</code> * </p> * <p> * When the memcached nodes are set when this manager is already initialized, * the new configuration will be loaded. * </p> * * @param memcachedNodes * the memcached node definitions, whitespace or comma separated */ @Override public void setMemcachedNodes( final String memcachedNodes ) { _msm.setMemcachedNodes( memcachedNodes ); }
/** * Set the memcached nodes space or comma separated. * <p> * E.g. <code>n1.localhost:11211 n2.localhost:11212</code> * </p> * <p> * When the memcached nodes are set when this manager is already initialized, * the new configuration will be loaded. * </p> * * @param memcachedNodes * the memcached node definitions, whitespace or comma separated */ @Override public void setMemcachedNodes( final String memcachedNodes ) { _msm.setMemcachedNodes( memcachedNodes ); }
/** * Set the memcached nodes space or comma separated. * <p> * E.g. <code>n1.localhost:11211 n2.localhost:11212</code> * </p> * <p> * When the memcached nodes are set when this manager is already initialized, * the new configuration will be loaded. * </p> * * @param memcachedNodes * the memcached node definitions, whitespace or comma separated */ @Override public void setMemcachedNodes( final String memcachedNodes ) { _msm.setMemcachedNodes( memcachedNodes ); }
@Test public void testConfigurationFormatMemcachedNodesFeature44() throws LifecycleException { _service.setMemcachedNodes( "n1:127.0.0.1:11211" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getNodeIds(), Arrays.asList( "n1" ) ); _service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getNodeIds(), Arrays.asList( "n1", "n2" ) ); _service.setMemcachedNodes( "n1:127.0.0.1:11211,n2:127.0.0.1:11212" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getNodeIds(), Arrays.asList( "n1", "n2" ) ); }
@SuppressWarnings("unchecked") @BeforeMethod public void setup() throws Exception { final StandardContext context = createContext(); context.setBackgroundProcessorDelay( 1 ); // needed for test of updateExpiration final SessionManager manager = createSessionManager(context); _service = manager.getMemcachedSessionService(); _service.setMemcachedNodes( "n1:127.0.0.1:11211" ); _service.setSessionBackupAsync( false ); _service.setSticky( true ); _memcachedMock = mock( MemcachedClient.class ); final OperationFuture<Boolean> setResultMock = mock( OperationFuture.class ); when( setResultMock.get( ) ).thenReturn( Boolean.TRUE ); when( setResultMock.get( anyInt(), any( TimeUnit.class ) ) ).thenReturn( Boolean.TRUE ); when( _memcachedMock.set( any( String.class ), anyInt(), any(), any( Transcoder.class ) ) ).thenReturn( setResultMock ); final OperationFuture<Boolean> deleteResultMock = mock( OperationFuture.class ); when( deleteResultMock.get() ).thenReturn( Boolean.TRUE ); when( _memcachedMock.delete( anyString() ) ).thenReturn( deleteResultMock ); startInternal( manager, _memcachedMock ); _executor = Executors.newCachedThreadPool(); }
@Test public void testConfigurationFormatFailoverNodesFeature44() throws LifecycleException { _service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212" ); _service.setFailoverNodes( "n1" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getFailoverNodeIds(), Arrays.asList( "n1" ) ); _service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212 n3:127.0.0.1:11213" ); _service.setFailoverNodes( "n1 n2" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getFailoverNodeIds(), Arrays.asList( "n1", "n2" ) ); _service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212 n3:127.0.0.1:11213" ); _service.setFailoverNodes( "n1,n2" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); Assert.assertEquals( _service.getFailoverNodeIds(), Arrays.asList( "n1", "n2" ) ); }
/** * Test for issue #105: Make memcached node optional for single-node setup * http://code.google.com/p/memcached-session-manager/issues/detail?id=105 */ @Test public void testBackupSessionFailureWithoutMemcachedNodeIdConfigured105() throws Exception { _service.setMemcachedNodes( "127.0.0.1:11211" ); _service.setSessionBackupAsync(false); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); final MemcachedBackupSession session = createSession( _service ); session.access(); session.endAccess(); session.setAttribute( "foo", "bar" ); @SuppressWarnings( "unchecked" ) final OperationFuture<Boolean> futureMock = mock( OperationFuture.class ); when( futureMock.get( ) ).thenThrow(new ExecutionException(new RuntimeException("Simulated exception."))); when( futureMock.get( anyInt(), any( TimeUnit.class ) ) ).thenThrow(new ExecutionException(new RuntimeException("Simulated exception."))); when( _memcachedMock.set( eq( session.getId() ), anyInt(), any(), any( Transcoder.class ) ) ).thenReturn( futureMock ); final BackupResult backupResult = _service.backupSession( session.getIdInternal(), false, null ).get(); assertEquals(backupResult.getStatus(), BackupResultStatus.FAILURE); verify( _memcachedMock, times( 1 ) ).set( eq( session.getId() ), anyInt(), any(), any( Transcoder.class ) ); }
_service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212" ); // for backup support _service.startInternal(new MemcachedStorageClient(_memcachedMock)); // we must put in our mock again
if ( !stickyness.isSticky() ) { _service.setLockingMode( LockingMode.NONE, null, false ); _service.setMemcachedNodes( "n1:127.0.0.1:11211 n2:127.0.0.1:11212" ); // for backup support _service.startInternal(new MemcachedStorageClient(_memcachedMock)); // we must put in our mock again
/** * Test for issue #105: Make memcached node optional for single-node setup * http://code.google.com/p/memcached-session-manager/issues/detail?id=105 */ @Test public void testConfigurationFormatMemcachedNodesFeature105() throws LifecycleException { _service.setMemcachedNodes( "127.0.0.1:11211" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); assertEquals(_service.getMemcachedNodesManager().getCountNodes(), 1); assertEquals(_service.getMemcachedNodesManager().isEncodeNodeIdInSessionId(), false); assertEquals(_service.getMemcachedNodesManager().isValidForMemcached("123456"), true); _service.shutdown(); _service.setMemcachedNodes( "n1:127.0.0.1:11211" ); _service.startInternal(new MemcachedStorageClient(_memcachedMock)); assertEquals(_service.getMemcachedNodesManager().getCountNodes(), 1); assertEquals(_service.getMemcachedNodesManager().isEncodeNodeIdInSessionId(), true); assertEquals(_service.getMemcachedNodesManager().isValidForMemcached("123456"), false); assertEquals(_service.getMemcachedNodesManager().isValidForMemcached("123456-n1"), true); }
/** * Set the memcached nodes space or comma separated. * <p> * E.g. <code>n1.localhost:11211 n2.localhost:11212</code> * </p> * <p> * When the memcached nodes are set when this manager is already initialized, * the new configuration will be loaded. * </p> * * @param memcachedNodes * the memcached node definitions, whitespace or comma separated */ @Override public void setMemcachedNodes( final String memcachedNodes ) { _msm.setMemcachedNodes( memcachedNodes ); }
@Test(enabled = false) // spurious failures public void testBackupSessionInCouchbaseCluster() throws Exception { final MemcachedSessionService service = _tomcat1.getService(); cluster.add(setupCouchbase(getMaxCouchbasePort() + 1)); service.setMemcachedNodes(getMemcachedNodesConfig(getURIs())); setupCouchbaseClient(); waitForReconnect(service.getStorageClient(), cluster.size(), 1000); waitForReconnect(mc, cluster.size(), 1000); final MemcachedBackupSession session = createSession( service ); final String sessionId = "12345"; session.setId(sessionId); session.setAttribute( "foo", "bar" ); final BackupResult backupResult = service.backupSession( session.getIdInternal(), false, null ).get(); assertEquals(backupResult.getStatus(), BackupResultStatus.SUCCESS); final MemcachedBackupSession loadedSession = transcoderService.deserialize(mc.get(sessionId, ByteArrayTranscoder.INSTANCE), _tomcat1.getManager()); checkSession(loadedSession, session); }
final String memcachedNodes = _memcachedNodes + "," + "n2:localhost:" + (MEMCACHED_PORT + 1); _tomcat1.getService().setMemcachedNodes(memcachedNodes); _tomcat1.getService().setFailoverNodes("n1"); _tomcat2.getService().setMemcachedNodes(memcachedNodes); _tomcat2.getService().setFailoverNodes("n2");