Используемые технологии:
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.jar 2011-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 specified Oracle Coherence Version n /a Build n /a Grid Edition: Development mode Copyright (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 SystemSocketProvider 2011-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=0x0AD2339700000132E9EE15572F401F99 2011-10-09 21:24:50.644 /11 .479 Oracle Coherence GE n /a <Info> (thread=main, member=n /a ): Started cluster Name=OTV WellKnownAddressList(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 1 2011-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 1 09.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user1, Value = name : Bruce, surname : Willis 09.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user2, Value = name : Clint, surname : Eastwood 09.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 : Willis 09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood 09.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 1 2011-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 1 2011-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 1 2011-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 128 2011-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 2 09.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova 09.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman 09.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 : Portman 09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis 09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood 09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova 09.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.jar 2011-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 specified Oracle Coherence Version n /a Build n /a Grid Edition: Development mode Copyright (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 SystemSocketProvider 2011-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=31 2011-10-09 21:25:43.266 /8 .698 Oracle Coherence GE n /a <Info> (thread=Cluster, member=n /a ): Increasing allowable variance to 17 2011-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 1 2011-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 1 2011-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 1 2011-10-09 21:25:43.656 /9 .088 Oracle Coherence GE n /a <Info> (thread=main, member=n /a ): Started cluster Name=OTV WellKnownAddressList(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 1 2011-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 1 2011-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 partitions 2011-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 updates 09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova 09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman 09.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 : Kornikova 09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis 09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman 09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood 09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:48) - *************************************** |
ШАГ 12: СКАЧАТЬ
Ссылка: Распределенное управление данными в Oracle Coherence от нашего партнера по JCG Эрен Авсарогуллари в блоге Online Technology Vision .