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