-
Notifications
You must be signed in to change notification settings - Fork 6
/
UsingServicesToIsolateWorkOnDifferentSetsOfMachines.java
executable file
·67 lines (48 loc) · 2.56 KB
/
UsingServicesToIsolateWorkOnDifferentSetsOfMachines.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.benstopford.coherence.bootstrap.morecomplex;
import com.benstopford.coherence.bootstrap.structures.tools.SampleInvocable;
import com.benstopford.coherence.bootstrap.structures.framework.cluster.ClusterRunner;
import com.tangosol.net.CacheFactory;
import com.tangosol.net.InvocationService;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.util.Map;
import static junit.framework.Assert.assertEquals;
/**
* BTS, 03-Sep-2008
*/
public class UsingServicesToIsolateWorkOnDifferentSetsOfMachines extends ClusterRunner {
@Test
public void splitMachinesIntoTwoSetsWithServices() throws IOException, InterruptedException {
// Five Coherence processes (including this one)
startCoherenceProcess("config/basic-invocation-service-1.xml");
startCoherenceProcess("config/basic-invocation-service-1.xml");
startCoherenceProcess("config/basic-invocation-service-2.xml");
startCoherenceProcess("config/basic-invocation-service-2.xml");
SampleInvocable getMemberIdInvocable = new SampleInvocable();
//Invocation service 1 is only running on 3 of the 5 nodes
InvocationService service1 = getService("MyInvocationService1");
Map membersVisited1 = service1.query(getMemberIdInvocable, service1.getInfo().getServiceMembers());
System.out.printf("Service 1 is distributed on the %s members: %s\n", service1.getInfo().getServiceMembers().size(), membersVisited1.values());
//Invocation service 1 is running on a different 3 of the 5 nodes
InvocationService service2 = getService("MyInvocationService2");
Map membersVisited2 = service2.query(getMemberIdInvocable, service2.getInfo().getServiceMembers());
System.out.printf("Service 1 is distributed on the %s members: %s\n", service2.getInfo().getServiceMembers().size(), membersVisited2.values());
assertEquals(membersVisited1.toString(), 3, membersVisited1.size());
assertEquals(membersVisited2.toString(), 3, membersVisited2.size());
}
private InvocationService getService(String name) {
return (InvocationService) CacheFactory.getCacheFactoryBuilder()
.getConfigurableCacheFactory("config/basic-invocation-service-1-and-2.xml", classLoader)
.ensureService(name);
}
@Before
public void setUp() throws Exception {
super.setUp();
}
@After
public void tearDown() throws Exception {
super.tearDown();
}
}