欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【转】Distributed Data Management in Oracle Coherence

程序员文章站 2022-07-03 08:37:21
...

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).
【转】Distributed Data Management in Oracle Coherence
            
    
    博客分类: 企业中间件企业应用面临的问题java并发编程 coherenceDistributed Data Managementoracle 

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