This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV has been created and a cache object nameduser-map has been distributed between two members of the cluster.
Used Technologies :
JDK 1.6.0_21
Maven 3.0.2
Coherence 3.7.0
SolarisOS 5.10
STEP 1 : CREATE MAVEN PROJECT
A maven project is created as below. (It can be created by using Maven or IDE Plug-in).
STEP 2 : DOWNLOAD COHERENCE PACKAGE
Coherence package is downloaded viahttp://www.oracle.com/technetwork/middleware/coherence/downloads/index.html
STEP 3 : LIBRARIES
Firstly, Coherence library is installed to Local Maven Repository and its description is added to pom.xml as below. Also, if maven is not used, coherence.jar file can be added to 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 >
|
Below plugin can be used to create runnable-jar.
1
2
3
4
5
6
7
8
9
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 >
|
STEP 4 : CREATE otv-coherence-cache-config.xml
otv-coherence-cache-config.xml contains caching-schemes(distributed or replicated) and caching-scheme-mapping configuration. Created all cache mappings should be added to coherence-cache-config.xml.
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
|
<? xml version = "1.0" ?>
< cache-config xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://xmlns.oracle.com/coherence/coherence-cache-config"
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 >
|
STEP 5 : CREATE tangosol-coherence-override.xml
tangosol-coherence-override.xml contains cluster, member-identity and configurable-cache-factoryconfiguration. Also below configuration xml file show first member of the cluster.
tangosol-coherence-override.xml for first member of the cluster :
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
|
<? xml version = '1.0' ?>
< coherence xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://xmlns.oracle.com/coherence/coherence-operational-config"
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 for second member of the cluster :
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
|
<? xml version = '1.0' ?>
< coherence xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://xmlns.oracle.com/coherence/coherence-operational-config"
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 >
|
STEP 6 : CREATE USER BEAN
A new User bean is created. This bean will be distributed between two node in OTV cluster. For serializing,java.io.Serializable interface has been implemented but PortableObject can be implemented for better performance.
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
|
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();
}
} |
STEP 7 : CREATE CACHE CLASS
A new TestCache Class is created. This class initializes distributed(patitioned) data management and creates a cache object named user-map.
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
|
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);
}
}
} |
STEP 8 : CREATE UserMapListener IMPL CLASS
A new UserMapListener class is created. This listener receives distributed user-map events.
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
|
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()); }
} |
STEP 9 : CREATE TestCacheExecutor CLASS
TestCacheExecutor class is created to run the application.
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
|
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( "***************************************" );
}
} |
STEP 10 : BUILD PROJECT
When OTV_Coherence Project is build, OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar is created.
Note : Build process should be applied separately for each member of the cluster.
STEP 11 : RUN PROJECT ON FIRST MEMBER OF THE CLUSTER
After created OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar file is run at the members of the cluster, below output logs will be shown on first member’ s console:
x.x.x.x : ip address of first member
y.y.y.y : ip address of second member
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
|
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) - *************************************** |
Second member’ s console :
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
|
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) - *************************************** |
STEP 12 : DOWNLOAD
相关推荐
It describes a perspective beyond SQL and relational database management systems and thus covers the theoretical background of modern data management. It also helps to take informed decisions about ...
之前项目上需要深入了解DB2数据库通信协议,找到了DRDA官方文档,尤其是volume3里DDM的各种定义非常完善,需要了解DRDA协议的朋友们参考这套文档非常有用处,分享给大家。
Learning Apache Drill Queryand Analyze Distributed Data Sources with SQL
Handbook of Data Center Management: Second ...4Future Directions in Data Base Management 5Trends in Terminal Technology 6 Information Security and New Technology 7 Trends in Data Communications Services
VMware分布式电源管理(Distributed Power Management,DPM)是VMware vSphere平台下的一个可选功能,旨在通过动态地合并工作负载进一步减少在资源使用率低的时期所消耗的电力。DPM是VMware分布式资源调度器...
Oracle Coherence社区版内容介绍是一个可扩展的,容错的,云就绪的分布式平台,用于构建基于网格的应用程序并可靠地存储数据。 该产品已在关键金融交易系统,高性能电信产品和电子商务应用等众多行业中大规模用于...
Provide a data store with a graph abstraction (vertexes and edges), not keys/values Explicitly favor efficiency and availability over consistency
Oracle NoSQL Database: Real-Time Big Data Management for the Enterprise Maqsood Alam , Aalok Muley , Chaitanya Kadaru , Ashok Joshi Book Description Publication Date: December 4, 2013 | ISBN-10: ...
分布式数据库管理系统(DDMS,Distributed Database Management System)是现代数据存储和管理的重要技术,它在多台物理设备上分散存储数据,通过网络进行通信和协调,实现了数据的透明分布和高可用性。本课程主要...
Learn about data management, mining, and warehousing in a distributed context using Apache Hive and HBase Use Sqoop and Apache Flume to ingest data from relational databases Program complex Hadoop and...
Power management is an important concern in sensor networks, because a tethered energy infrastructure is usually not available and an obvious concern is to use the available battery energy efficiently...
互联网医疗健康数据管理是一个快速发展的领域,随着物联网(IoT)技术的普及,医疗健康设备和传感器能够通过互联网连接和收集数据。然而,由于医疗数据的高价值以及健康物联网(Health IoT)的开放特性,数据的隐私...
outliers is a very important concept in Knowledge data discovery. Outlier detection has been studied in the context of a large number of research areas like large distributed systems, data mining, ...
"Distributed Consensus in Multi-vehicle Cooperative Control.rar"这个压缩包包含了深入探讨这一主题的专业资料,主要关注的是分布式一致性理论。 分布式一致性理论是网络控制和分布式计算的核心概念,它涉及到...