Используемые технологии:
JDK 1.6.0_21
Maven 3.0.2
Согласованность 3.7.0
SolarisOS 5.10
ШАГ 1: СОЗДАТЬ MAVEN ПРОЕКТ
Maven проект создается как показано ниже. (Его можно создать с помощью Maven или IDE Plug-in).
ШАГ 2: СКАЧАТЬ КОГЕРЕНТНЫЙ ПАКЕТ
Пакет Coherence загружается через http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html
ШАГ 3: БИБЛИОТЕКИ
Во-первых, библиотека Coherence устанавливается в локальный репозиторий Maven, а ее описание добавляется в pom.xml, как показано ниже. Также, если maven не используется, файл coherence.jar можно добавить в classpath.
|
1
2
3
4
5
6
|
<!-- Coherence library(from local repository) --><dependency> <groupId>com.tangosol</groupId> <artifactId>coherence</artifactId> <version>3.7.0</version></dependency> |
Ниже плагин может быть использован для создания runnable-jar .
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>com.otv.exe.TestCacheExecutor</mainClass> </manifest> </archive> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions></plugin> |
ШАГ 4: СОЗДАТЬ otv-coherence-cache-config.xml
otv-coherence-cache-config.xml содержит конфигурацию кэширования (распределенную или реплицированную) и конфигурацию отображения схемы кэширования. Созданные все отображения кэша должны быть добавлены в coherence-cache-config.xml .
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?xml version="1.0"?> xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"> <caching-scheme-mapping> <cache-mapping> <cache-name>user-map</cache-name> <scheme-name>MapDistCache</scheme-name> </cache-mapping> </caching-scheme-mapping> <caching-schemes> <distributed-scheme> <scheme-name>MapDistCache</scheme-name> <service-name>MapDistCache</service-name> <backing-map-scheme> <local-scheme> <unit-calculator>BINARY</unit-calculator> </local-scheme> </backing-map-scheme> <autostart>true</autostart> </distributed-scheme> </caching-schemes></cache-config> |
ШАГ 5: СОЗДАЙТЕ tangosol-coherence-override.xml
tangosol-coherence-override.xml содержит конфигурацию кластера, идентификатора члена и настраиваемой фабрики кэша . Также под конфигурационным xml файлом показан первый член кластера.
tangosol-coherence-override.xml для первого члена кластера:
|
01
02
03
04
05
06
07
08
09
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
|
<?xml version='1.0'?> xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <cluster-config> <member-identity> <cluster-name>OTV</cluster-name> <!-- Name of the first member of the cluster --> <role-name>OTV1</role-name> </member-identity> <unicast-listener> <well-known-addresses> <socket-address id="1"> <!-- IP Address of the first member of the cluster --> <address>x.x.x.x</address> <port>8089</port> </socket-address> <socket-address id="2"> <!-- IP Address of the second member of the cluster --> <address>y.y.y.y</address> <port>8089</port> </socket-address> </well-known-addresses> <!-- Name of the first member of the cluster --> <machine-id>OTV1</machine-id> <!-- IP Address of the first member of the cluster --> <address>x.x.x.x</address> <port>8089</port> <port-auto-adjust>true</port-auto-adjust> </unicast-listener> </cluster-config> <configurable-cache-factory-config> <init-params> <init-param> <param-type>java.lang.String</param-type> <param-value system-property="tangosol.coherence.cacheconfig"> otv-coherence-cache-config.xml </param-value> </init-param> </init-params> </configurable-cache-factory-config></coherence> |
tangosol-coherence-override.xml для второго члена кластера:
|
01
02
03
04
05
06
07
08
09
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
|
<?xml version='1.0'?> xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-operational-config coherence-operational-config.xsd"> <cluster-config> <member-identity> <cluster-name>OTV</cluster-name> <!-- Name of the second member of the cluster --> <role-name>OTV2</role-name> </member-identity> <unicast-listener> <well-known-addresses> <socket-address id="1"> <!-- IP Address of the first member of the cluster --> <address>x.x.x.x</address> <port>8089</port> </socket-address> <socket-address id="2"> <!-- IP Address of the second member of the cluster --> <address>y.y.y.y</address> <port>8089</port> </socket-address> </well-known-addresses> <!-- Name of the second member of the cluster --> <machine-id>OTV2</machine-id> <!-- IP Address of the second member of the cluster --> <address>y.y.y.y</address> <port>8089</port> <port-auto-adjust>true</port-auto-adjust> </unicast-listener> </cluster-config> <configurable-cache-factory-config> <init-params> <init-param> <param-type>java.lang.String</param-type> <param-value system-property="tangosol.coherence.cacheconfig"> otv-coherence-cache-config.xml</param-value> </init-param> </init-params> </configurable-cache-factory-config></coherence> |
ШАГ 6: СОЗДАТЬ ФАЙЛ ПОЛЬЗОВАТЕЛЯ
Новый пользовательский компонент создан. Этот компонент будет распределен между двумя узлами в кластере OTV . Для сериализации был реализован интерфейс java.io.Serializable , но PortableObject может быть реализован для повышения производительности.
|
01
02
03
04
05
06
07
08
09
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
|
package com.otv.user;import java.io.Serializable;/** * @author onlinetechvision.com * @since 9 Oct 2011 * @version 1.0.0 * */public class User implements Serializable { private static final long serialVersionUID = 1L; private String name; private String surname; public User(String name, String surname) { this.name = name; this.surname = surname; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } @Override public String toString() { StringBuffer strBuff = new StringBuffer(); strBuff.append("name : ").append(name); strBuff.append(", surname : ").append(surname); return strBuff.toString(); }} |
ШАГ 7: СОЗДАЙТЕ КЭШ-КЛАСС
Новый класс TestCache создан. Этот класс инициализирует распределенное (распределенное) управление данными и создает объект кэша с именем user-map .
|
01
02
03
04
05
06
07
08
09
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
68
69
70
|
package com.otv;import org.apache.log4j.Logger;import com.otv.listener.UserMapListener;import com.tangosol.net.CacheFactory;import com.tangosol.net.NamedCache;/** * @author onlinetechvision.com * @since 9 Oct 2011 * @version 1.0.0 * */public class TestCache { private static Logger log = Logger.getLogger(TestCache.class); private static TestCache instance = null; private NamedCache cache = null; private static final String USER_MAP = "user-map"; private static final long LOCK_TIMEOUT = -1; public TestCache() { setCache(CacheFactory.getCache(USER_MAP)); getCache().addMapListener(new UserMapListener()); } public static TestCache getInstance() { if(instance == null) { instance = new TestCache(); } return instance; } public static void setInstance(TestCache instance) { TestCache.instance = instance; } public NamedCache getCache() { return cache; } public void setCache(NamedCache cache) { this.cache = cache; } public void addToCache(Object key, Object value) { // key is locked getCache().lock(key, LOCK_TIMEOUT); try { // application logic getCache().put(key, value); } finally { // key is unlocked getCache().unlock(key); } } public void deleteFromCache(Object key) { // key is locked getCache().lock(key, LOCK_TIMEOUT); try { // application logic getCache().remove(key); } finally { // key is unlocked getCache().unlock(key); } }} |
ШАГ 8: СОЗДАНИЕ UserMapListener IMPL CLASS
Новый класс UserMapListener создан. Этот слушатель получает распределенные события пользовательской карты .
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package com.otv.listener;import org.apache.log4j.Logger;import com.tangosol.util.MapEvent;import com.tangosol.util.MapListener;/** * @author onlinetechvision.com * @since 9 Oct 2011 * @version 1.0.0 * */public class UserMapListener implements MapListener { private static Logger logger = Logger.getLogger(UserMapListener.class); public void entryDeleted(MapEvent me) { logger.debug("Deleted Key = " + me.getKey() + ", Value = " + me.getOldValue()); } public void entryInserted(MapEvent me) { logger.debug("Inserted Key = " + me.getKey() + ", Value = " + me.getNewValue()); } public void entryUpdated(MapEvent me) {// logger.debug("Updated Key = " + me.getKey() + ", New_Value = " + // me.getNewValue() + ", Old Value = " + me.getOldValue()); }} |
ШАГ 9: СОЗДАЙТЕ КЛАСС TestCacheExecutor
Класс TestCacheExecutor создан для запуска приложения.
|
01
02
03
04
05
06
07
08
09
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
|
package com.otv.exe;import java.util.Iterator;import org.apache.log4j.Logger;import com.otv.TestCache;import com.otv.user.User;/** * @author onlinetechvision.com * @since 9 Oct 2011 * @version 1.0.0 * */public class TestCacheExecutor implements Runnable { private static Logger log = Logger.getLogger(TestCacheExecutor.class); public static void main(String[] args) { try { TestCacheExecutor testCacheExecutor = new TestCacheExecutor(); while (true) { testCacheExecutor.run(); Thread.sleep(10000); } } catch (InterruptedException e) { e.printStackTrace(); } } public void run() { execute(); } public void execute() { //Entries which will be inserted via first member of the cluster so before the project is built // in order to deploy first member of the cluster, this code block should be opened and below //code block should be commented-out... User firstUser = new User("Bruce", "Willis"); User secondUser = new User("Clint", "Eastwood"); TestCache.getInstance().addToCache("user1", firstUser); TestCache.getInstance().addToCache("user2", secondUser); //Entries which will be inserted via second member of the cluster so before the project is //built in order to deploy second member of the cluster, this code block should be opened //and above code block should be commented-out... //User firstUser = new User("Anna", "Kornikova"); //User secondUser = new User("Natalie", "Portman"); //TestCache.getInstance().addToCache("user3", firstUser); //TestCache.getInstance().addToCache("user4", secondUser); Iterator it = TestCache.getInstance().getCache().values().iterator(); log.debug("***************************************"); while(it.hasNext()){ User user = (User)it.next(); log.debug("1. Cache Content : "+user); } log.debug("***************************************"); }} |
ШАГ 10: СТРОИМ ПРОЕКТ
Когда создается проект OTV_Coherence , создается OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar .
Примечание. Процесс сборки должен применяться отдельно для каждого члена кластера.
ШАГ 11: ЗАПУСК ПРОЕКТА ПЕРВОГО ЧЛЕНА КЛАСТЕРА
После того, как созданный файл OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar запущен на элементах кластера, ниже выводятся журналы на консоли первого участника:
xxxx: IP-адрес первого члена
гггг: IP-адрес второго члена
|
01
02
03
04
05
06
07
08
09
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
68
69
70
71
72
73
74
75
76
77
78
79
80
|
root@wpbxdbt # java -jar OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar2011-10-09 21:24:42.112/2.947 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence.xml"2011-10-09 21:24:42.557/3.392 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence-override-dev.xml"2011-10-09 21:24:42.997/3.832 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence-override.xml"2011-10-09 21:24:43.029/3.864 Oracle Coherence n/a <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specifiedOracle Coherence Version n/a Build n/a Grid Edition: Development modeCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.2011-10-09 21:24:45.307/6.142 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/otv-coherence-cache-config.xml"2011-10-09 21:24:46.934/7.769 Oracle Coherence GE n/a <D4> (thread=main, member=n/a): TCMP bound to /x.x.x.x:8089 using SystemSocketProvider2011-10-09 21:24:50.629/11.464 Oracle Coherence GE n/a <Info> (thread=Cluster, member=n/a): Created a new cluster "OTV" with Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, Role=OTV1, Edition=Grid Edition, Mode=Development, CpuCount=64, SocketCount=64) UID=0x0AD2339700000132E9EE15572F401F992011-10-09 21:24:50.644/11.479 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Started cluster Name=OTVWellKnownAddressList(Size=2, WKA{Address=x.x.x.x, Port=8089} WKA{Address=y.y.y.y, Port=8089} )MasterMemberSet ( ThisMember=Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:wpbxdbt,process:13723, Role=OTV1) OldestMember=Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096,Location=machine:wpbxdbt,process:13723, Role=OTV1) ActualMemberSet=MemberSet(Size=1, BitSetCount=2 Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723,Role=OTV1)) RecycleMillis=1200000 RecycleSet=MemberSet(Size=0, BitSetCount=0 ) )TcpRing{Connections=[]}IpMonitor{AddressListSize=0}2011-10-09 21:24:50.773/11.608 Oracle Coherence GE n/a <D5> (thread=Invocation:Management, member=1): Service Management joined the cluster with senior service member 12011-10-09 21:24:52.099/12.934 Oracle Coherence GE n/a <D5> (thread=DistributedCache:MapDistCache, member=1): Service MapDistCache joined the cluster with senior service member 109.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user1, Value = name : Bruce, surname : Willis09.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user2, Value = name : Clint, surname : Eastwood09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:43) - ***************************************09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:48) - ***************************************2011-10-09 21:25:38.881/59.716 Oracle Coherence GE n/a <D5> (thread=Cluster, member=1): Member(Id=2, Timestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2) joined Cluster with senior member 12011-10-09 21:25:39.122/59.957 Oracle Coherence GE n/a <D5> (thread=Cluster, member=1): Member 2 joined Service Management with senior member 12011-10-09 21:25:40.767/61.602 Oracle Coherence GE n/a <D5> (thread=Cluster, member=1): Member 2 joined Service MapDistCache with senior member 12011-10-09 21:25:40.866/61.702 Oracle Coherence GE n/a <D5> (thread=DistributedCache:MapDistCache, member=1): 1> Transferring vulnerable PartitionSet{0, 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, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127} to member 2 requesting 1282011-10-09 21:25:41.147/61.982 Oracle Coherence GE n/a <D4> (thread=DistributedCache:MapDistCache, member=1): 1> Transferring 129 out of 129 partitions to a machine-safe backup 1 at member 2 (under 129)2011-10-09 21:25:41.233/62.068 Oracle Coherence GE n/a <D5> (thread=DistributedCache:MapDistCache, member=1): Transferring 0KB of backup[1] for PartitionSet{128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256} to member 209.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova09.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:43) - ***************************************09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:48) - *************************************** |
Консоль второго члена:
|
01
02
03
04
05
06
07
08
09
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
root@wpbxwebt # java -jar OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar2011-10-09 21:25:37.623/3.056 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence.xml"2011-10-09 21:25:38.085/3.517 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence-override-dev.xml"2011-10-09 21:25:38.522/3.954 Oracle Coherence n/a <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/tangosol-coherence-override.xml"2011-10-09 21:25:38.554/3.986 Oracle Coherence n/a <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specifiedOracle Coherence Version n/a Build n/a Grid Edition: Development modeCopyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.2011-10-09 21:25:40.946/6.378 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Loaded cache configuration from "jar:file:/root/OTV/New/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!/otv-coherence-cache-config.xml"2011-10-09 21:25:42.665/8.097 Oracle Coherence GE n/a <D4> (thread=main, member=n/a): TCMP bound to /y.y.y.y:8089 using SystemSocketProvider2011-10-09 21:25:43.266/8.698 Oracle Coherence GE n/a <Info> (thread=Cluster, member=n/a): Failed to satisfy the variance: allowed=16, actual=312011-10-09 21:25:43.266/8.698 Oracle Coherence GE n/a <Info> (thread=Cluster, member=n/a): Increasing allowable variance to 172011-10-09 21:25:43.599/9.031 Oracle Coherence GE n/a <Info> (thread=Cluster, member=n/a): This Member(Id=2, Timestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2, Edition=Grid Edition, Mode=Development, CpuCount=32, SocketCount=32) joined cluster "OTV" with senior Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, Role=OTV1, Edition=Grid Edition, Mode=Development, CpuCount=64, SocketCount=64)2011-10-09 21:25:43.649/9.081 Oracle Coherence GE n/a <D5> (thread=Cluster, member=n/a): Member 1 joined Service Cluster with senior member 12011-10-09 21:25:43.650/9.082 Oracle Coherence GE n/a <D5> (thread=Cluster, member=n/a): Member 1 joined Service Management with senior member 12011-10-09 21:25:43.650/9.082 Oracle Coherence GE n/a <D5> (thread=Cluster, member=n/a): Member 1 joined Service MapDistCache with senior member 12011-10-09 21:25:43.656/9.088 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Started cluster Name=OTVWellKnownAddressList(Size=2, WKA{Address=y.y.y.y, Port=8089} WKA{Address=x.x.x.x, Port=8089} )MasterMemberSet ( ThisMember=Member(Id=2, Timestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2) OldestMember=Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, Role=OTV1) ActualMemberSet=MemberSet(Size=2, BitSetCount=2 Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, Role=OTV1) Member(Id=2, Timestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2) ) RecycleMillis=1200000 RecycleSet=MemberSet(Size=0, BitSetCount=0 ) )TcpRing{Connections=[1]}IpMonitor{AddressListSize=1}2011-10-09 21:25:43.812/9.248 Oracle Coherence GE n/a <D5> (thread=Invocation:Management, member=2): Service Management joined the cluster with senior service member 12011-10-09 21:25:45.230/10.662 Oracle Coherence GE n/a <D5> (thread=DistributedCache:MapDistCache, member=2): Service MapDistCache joined the cluster with senior service member 12011-10-09 21:25:45.482/10.914 Oracle Coherence GE n/a <D4> (thread=DistributedCache:MapDistCache, member=2): Asking member 1 for 128 primary partitions2011-10-09 21:25:45.840/11.272 Oracle Coherence GE n/a <D5> (thread=DistributedCache:MapDistCache, member=2): Deferring the distribution due to 128 pending configuration updates09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:43) - ***************************************09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:48) - *************************************** |
ШАГ 12: СКАЧАТЬ
Ссылка: Распределенное управление данными в Oracle Coherence от нашего партнера по JCG Эрен Авсарогуллари в блоге Online Technology Vision .
