@Override public Transport getTransport() { return actual.getTransport(); }
@Override public Transport getTransport() { return delegate.getTransport(); }
@Override public Transport getTransport() { return realOne.getTransport(); }
private int recipientListSize(Collection<Address> recipients) { return recipients == null ? actual.getTransport().getMembers().size() : recipients.size(); }
@ManagedAttribute(description = "Number of nodes in the cluster", displayName = "Number of nodes") public double getNumNodes() { if (rpcManager == null) { return 1; //local mode } return rpcManager.getTransport().getMembers().size(); }
@Override public synchronized void lazyInitialize() { if (initialized) { return; } this.initialized = true; final List<Address> members = rpcManager.getMembers(); assert members != null; assert members.size() > 0; assert members.get(0) != null; final Address initialMaster = members.get(0); lastSeenViewId.set(rpcManager.getTransport().getViewId()); if (thisIsNewMaster(initialMaster)) { acquireControlStart(); } else { updateRoutingToNewRemote(initialMaster); } }
/** * {@inheritDoc} * @see org.jboss.ha.core.framework.server.ChannelSource#getChannel() */ @Override public Channel getChannel() { if (this.cache == null) return null; JGroupsTransport transport = (JGroupsTransport) this.cache.getAdvancedCache().getRpcManager().getTransport(); return transport.getChannel(); }
@Override protected void createService() { filter = new ArrayList<Address>(); filter.add(caches.get(0).getAdvancedCache().getRpcManager().getTransport().getAddress()); filter.add(caches.get(1).getAdvancedCache().getRpcManager().getTransport().getAddress()); cacheManager = caches.get(0).getCacheManager(); keyAffinityService = (KeyAffinityServiceImpl<Object>) KeyAffinityServiceFactory. newKeyAffinityService(cacheManager.getCache(cacheName), filter, new RndKeyGenerator(), executor, 100); }
@Override public <T> CompletionStage<T> invokeCommandOnAll(ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions) { long start = timeService.time(); CompletionStage<T> request = actual.invokeCommandOnAll(command, collector, rpcOptions); return request.thenApply(responseMap -> { updateStats(command, true, timeService.timeDuration(start, NANOSECONDS), actual.getTransport().getMembers()); return responseMap; }); }
private boolean isMaster(Cache<?, ?> cm) { Transport transport = cm.getAdvancedCache().getRpcManager().getTransport(); return transport.getCoordinator().equals(transport.getAddress()); }
public boolean clusterAndChFormed(int cacheIndex, int memberCount) { return advancedCache(cacheIndex).getRpcManager().getTransport().getMembers().size() == memberCount && advancedCache(cacheIndex).getDistributionManager().getWriteConsistentHash().getMembers().size() == memberCount; }
private void testLocalOperation(CheckRemoteLockAcquiredOnlyOnceTest.CacheOperation o) throws Exception { assert !advancedCache(1).getRpcManager().getTransport().isCoordinator(); assert advancedCache(0).getRpcManager().getTransport().isCoordinator(); tm(0).begin(); o.execute(); assert lockManager(0).isLocked(key); assert !lockManager(1).isLocked(key); assertEquals(controlInterceptor.remoteInvocations, 0); tm(0).rollback(); } }
protected List<Address> topology(CacheContainer cm) { return cm.getCache(cacheName).getAdvancedCache().getRpcManager().getTransport().getMembers(); }
protected JChannel channel(Cache<?, ?> cache) { return extractJGroupsTransport(cache.getAdvancedCache().getRpcManager().getTransport()).getChannel(); }
private CacheStatusResponse getCacheStatus(AdvancedCache cache) { LocalTopologyManager localTopologyManager = cache.getComponentRegistry().getComponent(LocalTopologyManager.class); int viewId = cache.getRpcManager().getTransport().getViewId(); ManagerStatusResponse statusResponse = localTopologyManager.handleStatusRequest(viewId); return statusResponse.getCaches().get(cache.getName()); }
@Override public <T> CompletionStage<T> invokeCommandOnAll(ReplicableCommand command, ResponseCollector<T> collector, RpcOptions rpcOptions) { rpcCollector.addRPC(new RpcDetail(getAddress(), command, cacheName, delegate.getTransport().getMembers())); return delegate.invokeCommandOnAll(command, collector, rpcOptions); }
public void testSinglePhaseCommit() throws Exception { final Object k0_1 = getKeyForCache(0); final Object k0_2 = getKeyForCache(0); final List<Address> members = advancedCache(0).getRpcManager().getTransport().getMembers(); assert advancedCache(0).getDistributionManager().locate(k0_1).containsAll(members); assert advancedCache(0).getDistributionManager().locate(k0_2).containsAll(members); TxCountInterceptor interceptor0 = new TxCountInterceptor(); TxCountInterceptor interceptor1 = new TxCountInterceptor(); advancedCache(0).addInterceptor(interceptor0, 1); advancedCache(1).addInterceptor(interceptor1, 2); tm(2).begin(); cache(2).put(k0_1, "v"); cache(2).put(k0_2, "v"); tm(2).commit(); assertEquals(interceptor0.lockCount, 2); assertEquals(interceptor1.lockCount, 2); assertEquals(interceptor0.prepareCount, 1); assertEquals(interceptor1.prepareCount, 1); assertEquals(interceptor0.commitCount, 0); assertEquals(interceptor1.commitCount, 0); }
@Override protected void createCacheManagers() throws Throwable { addClusterEnabledCacheManager(getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true), new TransportFlags().withMerge(true)); ml0 = new MergeListener(); manager(0).addListener(ml0); discard = TestingUtil.getDiscardForCache(manager(0)); discard.setDiscardAll(true); addClusterEnabledCacheManager(getDefaultClusteredCacheConfig(CacheMode.REPL_SYNC, true), new TransportFlags().withMerge(true)); ml1 = new MergeListener(); manager(1).addListener(ml1); cache(0).put("k", "v0"); cache(1).put("k", "v1"); Thread.sleep(2000); assert advancedCache(0).getRpcManager().getTransport().getMembers().size() == 1; assert advancedCache(1).getRpcManager().getTransport().getMembers().size() == 1; }
protected <K, V> Cache<K, V> getLockOwner(Object key, String cacheName) { Configuration c = getCache(0, cacheName).getCacheConfiguration(); if (c.clustering().cacheMode().isInvalidation()) { return getCache(0, cacheName); //for replicated caches only the coordinator acquires lock } else if (!c.clustering().cacheMode().isClustered()) { throw new IllegalStateException("This is not a clustered cache!"); } else { Address address = getCache(0, cacheName).getAdvancedCache().getDistributionManager().getCacheTopology() .getDistribution(key).primary(); for (Cache<K, V> cache : this.<K, V>caches(cacheName)) { if (cache.getAdvancedCache().getRpcManager().getTransport().getAddress().equals(address)) { return cache; } } throw new IllegalStateException(); } }
public void testMultipleLeaves() throws Exception { //kill 3 caches at once fork(() -> manager(3).stop()); fork(() -> manager(2).stop()); fork(() -> manager(1).stop()); eventuallyEquals(1, () -> advancedCache(0).getRpcManager().getTransport().getMembers().size()); log.trace("MultipleNodesLeavingTest.testMultipleLeaves"); TestingUtil.blockUntilViewsReceived(60000, false, cache(0)); TestingUtil.waitForNoRebalance(cache(0)); List<Address> caches = advancedCache(0).getDistributionManager().getWriteConsistentHash().getMembers(); log.tracef("caches = %s", caches); int size = caches.size(); assert size == 1; } }