{"id":1423,"date":"2012-06-07T22:00:00","date_gmt":"2012-06-07T22:00:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/oracle-coherence-distributed-data-management.html"},"modified":"2012-10-22T05:41:40","modified_gmt":"2012-10-22T05:41:40","slug":"oracle-coherence-distributed-data","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html","title":{"rendered":"Oracle Coherence: Distributed Data Management"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left\">\n<div style=\"text-align: justify\">This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named <strong>OTV<\/strong> has been created and a cache object named <strong>user-map<\/strong> has been distributed between two members of the cluster.   <\/div>\n<p><strong>Used Technologies :<\/strong>          <\/p>\n<p>JDK 1.6.0_21<br \/>\nMaven 3.0.2<br \/>\nCoherence 3.7.0<br \/>\nSolarisOS 5.10<\/p>\n<p><strong>STEP 1 : CREATE MAVEN PROJECT<\/strong>          <\/p>\n<p>A maven project is created as below. (It can be created by using Maven or IDE Plug-in).<\/p>\n<div class=\"separator\" style=\"clear: both;text-align: center\"><a href=\"http:\/\/3.bp.blogspot.com\/-fdUPtgSR608\/T9DU_jos4lI\/AAAAAAAAAWg\/VDDLDeAKejA\/s1600\/Coherence_HelloWorld.png\"><img decoding=\"async\" border=\"0\" height=\"400\" src=\"http:\/\/3.bp.blogspot.com\/-fdUPtgSR608\/T9DU_jos4lI\/AAAAAAAAAWg\/VDDLDeAKejA\/s400\/Coherence_HelloWorld.png\" width=\"273\" \/><\/a><\/div>\n<p><strong>STEP 2 : DOWNLOAD COHERENCE PACKAGE<\/strong>          <\/p>\n<p>Coherence package is downloaded via <a href=\"http:\/\/www.oracle.com\/technetwork\/middleware\/coherence\/downloads\/index.html\" target=\"_blank\" title=\"Oracle Coherence\">http:\/\/www.oracle.com\/technetwork\/middleware\/coherence\/downloads\/index.html<\/a>          <\/p>\n<p><strong>STEP 3 : LIBRARIES<\/strong>          <\/p>\n<p>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, <strong>coherence.jar<\/strong> file can be added to classpath.           <\/p>\n<pre class=\"brush:xml\"> &lt;!-- Coherence library(from local repository) --&gt;\r\n &lt;dependency&gt;\r\n  &lt;groupId&gt;com.tangosol&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;coherence&lt;\/artifactId&gt;\r\n  &lt;version&gt;3.7.0&lt;\/version&gt;\r\n &lt;\/dependency&gt;\r\n<\/pre>\n<p>Below plugin can be used to create <strong>runnable-jar<\/strong>.            <\/p>\n<pre class=\"brush:xml\"> &lt;plugin&gt;\r\n  &lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;\r\n  &lt;artifactId&gt;maven-assembly-plugin&lt;\/artifactId&gt;\r\n  &lt;configuration&gt;\r\n   &lt;descriptorRefs&gt;\r\n    &lt;descriptorRef&gt;jar-with-dependencies&lt;\/descriptorRef&gt;\r\n   &lt;\/descriptorRefs&gt;\r\n   &lt;archive&gt;\r\n    &lt;manifest&gt;\r\n     &lt;mainClass&gt;com.otv.exe.TestCacheExecutor&lt;\/mainClass&gt;\r\n    &lt;\/manifest&gt;\r\n   &lt;\/archive&gt;\r\n  &lt;\/configuration&gt;\r\n  &lt;executions&gt;\r\n   &lt;execution&gt;\r\n    &lt;phase&gt;package&lt;\/phase&gt;\r\n    &lt;goals&gt;\r\n     &lt;goal&gt;single&lt;\/goal&gt;\r\n    &lt;\/goals&gt;\r\n   &lt;\/execution&gt;\r\n  &lt;\/executions&gt;\r\n &lt;\/plugin&gt;\r\n<\/pre>\n<p><strong>STEP 4 : CREATE otv-coherence-cache-config.xml<\/strong>          <\/p>\n<p><strong>otv-coherence-cache-config.xml<\/strong> contains caching-schemes(distributed or replicated) and caching-scheme-mapping configuration. Created all cache mappings should be added to <strong>coherence-cache-config.xml<\/strong>.           <\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\"?&gt;\r\n\r\n&lt;cache-config xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n xmlns=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-cache-config\"\r\n xsi:schemaLocation=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-cache-config\r\n   coherence-cache-config.xsd\"&gt;\r\n\r\n &lt;caching-scheme-mapping&gt;\r\n  &lt;cache-mapping&gt;\r\n   &lt;cache-name&gt;user-map&lt;\/cache-name&gt;\r\n   &lt;scheme-name&gt;MapDistCache&lt;\/scheme-name&gt;\r\n  &lt;\/cache-mapping&gt;\r\n &lt;\/caching-scheme-mapping&gt;\r\n\r\n    &lt;caching-schemes&gt;\r\n  &lt;distributed-scheme&gt;\r\n   &lt;scheme-name&gt;MapDistCache&lt;\/scheme-name&gt;\r\n   &lt;service-name&gt;MapDistCache&lt;\/service-name&gt;\r\n   &lt;backing-map-scheme&gt;\r\n    &lt;local-scheme&gt;\r\n     &lt;unit-calculator&gt;BINARY&lt;\/unit-calculator&gt;\r\n    &lt;\/local-scheme&gt;\r\n   &lt;\/backing-map-scheme&gt;\r\n   &lt;autostart&gt;true&lt;\/autostart&gt;\r\n  &lt;\/distributed-scheme&gt;\r\n &lt;\/caching-schemes&gt;\r\n&lt;\/cache-config&gt;\r\n<\/pre>\n<p><strong>STEP 5 : CREATE tangosol-coherence-override.xml<\/strong>          <\/p>\n<p><strong>tangosol-coherence-override.xml<\/strong> contains cluster, <strong>member-identity<\/strong> and <strong>configurable-cache-factory<\/strong> configuration. Also below configuration xml file show first member of the cluster.           <\/p>\n<p><strong>tangosol-coherence-override.xml for first member of the cluster :<\/strong>          <\/p>\n<pre class=\"brush:xml\">&lt;?xml version='1.0'?&gt;\r\n\r\n&lt;coherence xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n   xmlns=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-operational-config\"\r\n   xsi:schemaLocation=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-operational-config \r\n   coherence-operational-config.xsd\"&gt;\r\n\r\n   &lt;cluster-config&gt;\r\n\r\n      &lt;member-identity&gt;\r\n         &lt;cluster-name&gt;OTV&lt;\/cluster-name&gt;\r\n   &lt;!-- Name of the first member of the cluster --&gt;\r\n         &lt;role-name&gt;OTV1&lt;\/role-name&gt;\r\n      &lt;\/member-identity&gt;\r\n\r\n      &lt;unicast-listener&gt;\r\n       &lt;well-known-addresses&gt;\r\n         &lt;socket-address id=\"1\"&gt;\r\n     &lt;!-- IP Address of the first member of the cluster --&gt;\r\n           &lt;address&gt;x.x.x.x&lt;\/address&gt;\r\n           &lt;port&gt;8089&lt;\/port&gt;\r\n         &lt;\/socket-address&gt;\r\n         &lt;socket-address id=\"2\"&gt;\r\n     &lt;!-- IP Address of the second member of the cluster --&gt;\r\n           &lt;address&gt;y.y.y.y&lt;\/address&gt;\r\n           &lt;port&gt;8089&lt;\/port&gt;\r\n         &lt;\/socket-address&gt;\r\n       &lt;\/well-known-addresses&gt;\r\n\r\n    &lt;!-- Name of the first member of the cluster --&gt;\r\n       &lt;machine-id&gt;OTV1&lt;\/machine-id&gt;\r\n    &lt;!-- IP Address of the first member of the cluster --&gt;\r\n        &lt;address&gt;x.x.x.x&lt;\/address&gt;\r\n        &lt;port&gt;8089&lt;\/port&gt;\r\n        &lt;port-auto-adjust&gt;true&lt;\/port-auto-adjust&gt;\r\n      &lt;\/unicast-listener&gt;\r\n\r\n   &lt;\/cluster-config&gt;\r\n\r\n   &lt;configurable-cache-factory-config&gt;\r\n      &lt;init-params&gt;\r\n         &lt;init-param&gt;\r\n            &lt;param-type&gt;java.lang.String&lt;\/param-type&gt;\r\n            &lt;param-value system-property=\"tangosol.coherence.cacheconfig\"&gt;\r\n              otv-coherence-cache-config.xml\r\n   &lt;\/param-value&gt;\r\n         &lt;\/init-param&gt;\r\n      &lt;\/init-params&gt;\r\n   &lt;\/configurable-cache-factory-config&gt;\r\n&lt;\/coherence&gt;\r\n<\/pre>\n<p><strong>tangosol-coherence-override.xml for second member of the cluster :<\/strong>          <\/p>\n<pre class=\"brush:xml\">&lt;?xml version='1.0'?&gt;\r\n\r\n&lt;coherence xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\r\n   xmlns=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-operational-config\"\r\n   xsi:schemaLocation=\"http:\/\/xmlns.oracle.com\/coherence\/coherence-operational-config \r\n   coherence-operational-config.xsd\"&gt;\r\n\r\n   &lt;cluster-config&gt;\r\n\r\n      &lt;member-identity&gt;\r\n         &lt;cluster-name&gt;OTV&lt;\/cluster-name&gt;\r\n   &lt;!-- Name of the second member of the cluster --&gt;\r\n         &lt;role-name&gt;OTV2&lt;\/role-name&gt;\r\n      &lt;\/member-identity&gt;\r\n\r\n      &lt;unicast-listener&gt;      \r\n\r\n       &lt;well-known-addresses&gt;\r\n         &lt;socket-address id=\"1\"&gt;\r\n     &lt;!-- IP Address of the first member of the cluster --&gt;\r\n           &lt;address&gt;x.x.x.x&lt;\/address&gt;\r\n           &lt;port&gt;8089&lt;\/port&gt;\r\n         &lt;\/socket-address&gt;\r\n         &lt;socket-address id=\"2\"&gt;\r\n     &lt;!-- IP Address of the second member of the cluster --&gt;\r\n           &lt;address&gt;y.y.y.y&lt;\/address&gt;\r\n           &lt;port&gt;8089&lt;\/port&gt;\r\n         &lt;\/socket-address&gt;\r\n       &lt;\/well-known-addresses&gt;\r\n\r\n    &lt;!-- Name of the second member of the cluster --&gt;\r\n       &lt;machine-id&gt;OTV2&lt;\/machine-id&gt;\r\n    &lt;!-- IP Address of the second member of the cluster --&gt;\r\n        &lt;address&gt;y.y.y.y&lt;\/address&gt;\r\n        &lt;port&gt;8089&lt;\/port&gt;\r\n        &lt;port-auto-adjust&gt;true&lt;\/port-auto-adjust&gt;\r\n\r\n      &lt;\/unicast-listener&gt;\r\n\r\n   &lt;\/cluster-config&gt;\r\n\r\n   &lt;configurable-cache-factory-config&gt;\r\n      &lt;init-params&gt;\r\n         &lt;init-param&gt;\r\n            &lt;param-type&gt;java.lang.String&lt;\/param-type&gt;\r\n            &lt;param-value system-property=\"tangosol.coherence.cacheconfig\"&gt;\r\n              otv-coherence-cache-config.xml&lt;\/param-value&gt;\r\n         &lt;\/init-param&gt;\r\n      &lt;\/init-params&gt;\r\n   &lt;\/configurable-cache-factory-config&gt;\r\n\r\n&lt;\/coherence&gt;\r\n<\/pre>\n<p><strong>STEP 6 : CREATE USER BEAN<\/strong>          <div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>A new <strong>User <\/strong>bean is created. This bean will be distributed between two node in <strong>OTV<\/strong> cluster. For serializing, <strong>java.io.Serializable<\/strong> interface has been implemented but <strong>PortableObject <\/strong>can be implemented for better performance.           <\/p>\n<pre class=\"brush:java\">package com.otv.user;\r\n\r\nimport java.io.Serializable;\r\n\r\n\/**\r\n * @author onlinetechvision.com\r\n * @since 9 Oct 2011\r\n * @version 1.0.0\r\n *\r\n *\/\r\npublic class User implements Serializable {\r\n\r\n private static final long serialVersionUID = 1L;\r\n private String name;\r\n private String surname;\r\n\r\n public User(String name, String surname) {\r\n  this.name = name;\r\n  this.surname = surname;\r\n }\r\n\r\n public String getName() {\r\n  return name;\r\n }\r\n\r\n public void setName(String name) {\r\n  this.name = name;\r\n }\r\n\r\n public String getSurname() {\r\n  return surname;\r\n }\r\n\r\n public void setSurname(String surname) {\r\n  this.surname = surname;\r\n }\r\n\r\n @Override\r\n public String toString() {\r\n  StringBuffer strBuff = new StringBuffer();\r\n  strBuff.append(\"name : \").append(name);\r\n  strBuff.append(\", surname : \").append(surname);\r\n  return strBuff.toString();\r\n }\r\n}\r\n<\/pre>\n<p><strong>STEP 7 : CREATE CACHE CLASS<\/strong>          <\/p>\n<p>A new <strong>TestCache<\/strong> Class is created. This class initializes distributed(patitioned) data management and creates a cache object named <strong>user-map<\/strong>.           <\/p>\n<pre class=\"brush:java\">package com.otv;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\nimport com.otv.listener.UserMapListener;\r\nimport com.tangosol.net.CacheFactory;\r\nimport com.tangosol.net.NamedCache;\r\n\r\n\/**\r\n * @author onlinetechvision.com\r\n * @since 9 Oct 2011\r\n * @version 1.0.0\r\n *\r\n *\/\r\npublic class TestCache {\r\n\r\n private static Logger log = Logger.getLogger(TestCache.class);\r\n private static TestCache instance = null;\r\n private NamedCache cache = null;\r\n private static final String USER_MAP = \"user-map\";\r\n private static final long LOCK_TIMEOUT = -1;\r\n\r\n public TestCache() {\r\n  setCache(CacheFactory.getCache(USER_MAP));\r\n  getCache().addMapListener(new UserMapListener());\r\n }\r\n\r\n public static TestCache getInstance() {\r\n  if(instance == null) {\r\n   instance = new TestCache();\r\n  }\r\n  return instance;\r\n }\r\n\r\n public static void setInstance(TestCache instance) {\r\n  TestCache.instance = instance;\r\n }\r\n\r\n public NamedCache getCache() {\r\n  return cache;\r\n }\r\n\r\n public void setCache(NamedCache cache) {\r\n  this.cache = cache;\r\n }\r\n\r\n public void addToCache(Object key, Object value) {\r\n  \/\/ key is locked\r\n  getCache().lock(key, LOCK_TIMEOUT);\r\n  try {\r\n   \/\/ application logic\r\n   getCache().put(key, value);\r\n  } finally {\r\n   \/\/ key is unlocked\r\n   getCache().unlock(key);\r\n  }\r\n }\r\n\r\n public void deleteFromCache(Object key) {\r\n  \/\/ key is locked\r\n  getCache().lock(key, LOCK_TIMEOUT);\r\n  try {\r\n   \/\/ application logic\r\n   getCache().remove(key);\r\n  } finally {\r\n   \/\/ key is unlocked\r\n   getCache().unlock(key);\r\n  }\r\n }\r\n}\r\n<\/pre>\n<p><strong>STEP 8 : CREATE UserMapListener IMPL CLASS<\/strong>          <\/p>\n<p>A new <strong>UserMapListener<\/strong> class is created. This listener receives distributed <strong>user-map<\/strong> events.           <\/p>\n<pre class=\"brush:java\">package com.otv.listener;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\nimport com.tangosol.util.MapEvent;\r\nimport com.tangosol.util.MapListener;\r\n\r\n\/**\r\n * @author onlinetechvision.com\r\n * @since 9 Oct 2011\r\n * @version 1.0.0\r\n *\r\n *\/\r\npublic class UserMapListener implements MapListener {\r\n\r\n private static Logger logger = Logger.getLogger(UserMapListener.class);\r\n\r\n public void entryDeleted(MapEvent me) {\r\n   logger.debug(\"Deleted Key = \" + me.getKey() + \", Value = \" + me.getOldValue());\r\n }\r\n\r\n public void entryInserted(MapEvent me) {\r\n  logger.debug(\"Inserted Key = \" + me.getKey() + \", Value = \" + me.getNewValue());\r\n }\r\n\r\n public void entryUpdated(MapEvent me) {\r\n\/\/  logger.debug(\"Updated Key = \" + me.getKey() + \", New_Value = \" + \r\n\/\/              me.getNewValue() + \", Old Value = \" + me.getOldValue());\r\n }\r\n}\r\n<\/pre>\n<p><strong>STEP 9 : CREATE TestCacheExecutor CLASS<\/strong>          <\/p>\n<p><strong>TestCacheExecutor<\/strong> class is created to run the application.            <\/p>\n<pre class=\"brush:java\">package com.otv.exe;\r\n\r\nimport java.util.Iterator;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\nimport com.otv.TestCache;\r\nimport com.otv.user.User;\r\n\r\n\/**\r\n * @author onlinetechvision.com\r\n * @since 9 Oct 2011\r\n * @version 1.0.0\r\n *\r\n *\/\r\npublic class TestCacheExecutor implements Runnable {\r\n\r\n private static Logger log = Logger.getLogger(TestCacheExecutor.class);\r\n\r\n public static void main(String[] args) {\r\n  try {\r\n   TestCacheExecutor testCacheExecutor = new TestCacheExecutor();\r\n   while (true) {\r\n    testCacheExecutor.run();\r\n    Thread.sleep(10000);\r\n   }\r\n  } catch (InterruptedException e) {\r\n   e.printStackTrace();\r\n  }\r\n }\r\n\r\n public void run() {\r\n  execute();\r\n }\r\n\r\n public void execute() {\r\n        \/\/Entries which will be inserted via first member of the cluster so before the project is built\r\n        \/\/ in order to deploy first member of the cluster, this code block should be opened and below \r\n        \/\/code block should be commented-out...\r\n  User firstUser = new User(\"Bruce\", \"Willis\");\r\n  User secondUser = new User(\"Clint\", \"Eastwood\");\r\n  TestCache.getInstance().addToCache(\"user1\", firstUser);\r\n  TestCache.getInstance().addToCache(\"user2\", secondUser);  \r\n\r\n  \/\/Entries which will be inserted via second member of the cluster so before the project is \r\n                \/\/built in order to deploy second member of the cluster, this code block should be opened \r\n                \/\/and above code block should be commented-out...\r\n  \/\/User firstUser = new User(\"Anna\", \"Kornikova\");\r\n  \/\/User secondUser = new User(\"Natalie\", \"Portman\");\r\n  \/\/TestCache.getInstance().addToCache(\"user3\", firstUser);\r\n  \/\/TestCache.getInstance().addToCache(\"user4\", secondUser);  \r\n\r\n  Iterator it = TestCache.getInstance().getCache().values().iterator();\r\n  log.debug(\"***************************************\");\r\n  while(it.hasNext()){\r\n   User user = (User)it.next();\r\n   log.debug(\"1. Cache Content : \"+user);\r\n  }\r\n  log.debug(\"***************************************\");\r\n }\r\n\r\n}\r\n<\/pre>\n<p><strong>STEP 10 : BUILD PROJECT<\/strong>          <\/p>\n<p>When <strong>OTV_Coherence<\/strong> Project is build, <strong>OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar<\/strong> is created.<br \/>\nNote : Build process should be applied separately for each member of the cluster.           <\/p>\n<p><strong>STEP 11 : RUN PROJECT ON FIRST MEMBER OF THE CLUSTER<\/strong>          <\/p>\n<p>After created <strong>OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar<\/strong> file is run at the members of the cluster, below output logs will be shown on first member\u2019 s console:           <\/p>\n<p><strong>x.x.x.x :<\/strong> ip address of first member<br \/>\n<strong>y.y.y.y :<\/strong> ip address of second member           <\/p>\n<pre class=\"brush:bash\">root@wpbxdbt # java -jar OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar\r\n2011-10-09 21:24:42.112\/2.947 Oracle Coherence n\/a &lt;Info&gt; (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\"\r\n\r\n2011-10-09 21:24:42.557\/3.392 Oracle Coherence n\/a &lt;Info&gt; (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\"\r\n\r\n2011-10-09 21:24:42.997\/3.832 Oracle Coherence n\/a &lt;Info&gt; (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\"\r\n\r\n2011-10-09 21:24:43.029\/3.864 Oracle Coherence n\/a &lt;D5&gt; (thread=main, member=n\/a): Optional configuration override \"\/custom-mbeans.xml\" is not specified\r\n\r\nOracle Coherence Version n\/a Build n\/a\r\n Grid Edition: Development mode\r\nCopyright (c) 2000, 2011, Oracle and\/or its affiliates. All rights reserved.\r\n\r\n2011-10-09 21:24:45.307\/6.142 Oracle Coherence GE n\/a &lt;Info&gt; (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\"\r\n\r\n2011-10-09 21:24:46.934\/7.769 Oracle Coherence GE n\/a &lt;D4&gt; (thread=main, member=n\/a): TCMP bound to \/x.x.x.x:8089 using SystemSocketProvider\r\n\r\n2011-10-09 21:24:50.629\/11.464 Oracle Coherence GE n\/a &lt;Info&gt; (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\r\n\r\n2011-10-09 21:24:50.644\/11.479 Oracle Coherence GE n\/a &lt;Info&gt; (thread=main, member=n\/a): Started cluster Name=OTV\r\n\r\nWellKnownAddressList(Size=2,\r\n  WKA{Address=x.x.x.x, Port=8089}\r\n  WKA{Address=y.y.y.y, Port=8089}\r\n  )\r\n\r\nMasterMemberSet\r\n  (\r\n  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)\r\n\r\n  OldestMember=Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096,\r\nLocation=machine:wpbxdbt,process:13723, Role=OTV1)\r\n\r\n  ActualMemberSet=MemberSet(Size=1, BitSetCount=2    \r\nMember(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))\r\n  RecycleMillis=1200000\r\n  RecycleSet=MemberSet(Size=0, BitSetCount=0\r\n    )\r\n  )\r\n\r\nTcpRing{Connections=[]}\r\nIpMonitor{AddressListSize=0}\r\n\r\n2011-10-09 21:24:50.773\/11.608 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Invocation:Management, member=1): Service Management \r\njoined the cluster with senior service member 1\r\n\r\n2011-10-09 21:24:52.099\/12.934 Oracle Coherence GE n\/a &lt;D5&gt; (thread=DistributedCache:MapDistCache, member=1): Service \r\nMapDistCache joined the cluster with senior service member 1\r\n\r\n09.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user1, Value = name : Bruce, surname : Willis\r\n09.10.2011 21:24:52 DEBUG (UserMapListener.java:23) - Inserted Key = user2, Value = name : Clint, surname : Eastwood\r\n09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:43) - ***************************************\r\n09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis\r\n09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood\r\n09.10.2011 21:24:52 DEBUG (TestCacheExecutor.java:48) - ***************************************\r\n2011-10-09 21:25:38.881\/59.716 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=1): Member(Id=2, Timestamp=2011-10-09 \r\n21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2) joined Cluster with senior \r\nmember 1\r\n\r\n2011-10-09 21:25:39.122\/59.957 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=1): Member 2 joined Service Management \r\nwith senior member 1\r\n\r\n2011-10-09 21:25:40.767\/61.602 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=1): Member 2 joined Service MapDistCache \r\nwith senior member 1\r\n\r\n2011-10-09 21:25:40.866\/61.702 Oracle Coherence GE n\/a &lt;D5&gt; (thread=DistributedCache:MapDistCache, member=1): 1&gt; \r\nTransferring 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\r\n2011-10-09 21:25:41.147\/61.982 Oracle Coherence GE n\/a &lt;D4&gt; (thread=DistributedCache:MapDistCache, member=1): 1&gt; \r\nTransferring 129 out of 129 partitions to a machine-safe backup 1 at member 2 (under 129)\r\n2011-10-09 21:25:41.233\/62.068 Oracle Coherence GE n\/a &lt;D5&gt; (thread=DistributedCache:MapDistCache, member=1): Transferring \r\n0KB 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\r\n\r\n09.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova\r\n09.10.2011 21:25:41 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:43) - ***************************************\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova\r\n09.10.2011 21:25:42 DEBUG (TestCacheExecutor.java:48) - ***************************************\r\n<\/pre>\n<p><strong>Second member\u2019 s console :<\/strong>          <\/p>\n<pre class=\"brush:bash\">root@wpbxwebt # java -jar OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar\r\n2011-10-09 21:25:37.623\/3.056 Oracle Coherence n\/a &lt;Info&gt; (thread=main, member=n\/a): Loaded operational configuration from \r\n\"jar:file:\/root\/OTV\/New\/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!\/tangosol-coherence.xml\"\r\n\r\n2011-10-09 21:25:38.085\/3.517 Oracle Coherence n\/a &lt;Info&gt; (thread=main, member=n\/a): Loaded operational overrides from \r\n\"jar:file:\/root\/OTV\/New\/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!\/tangosol-coherence-override-dev.xml\"\r\n\r\n2011-10-09 21:25:38.522\/3.954 Oracle Coherence n\/a &lt;Info&gt; (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\"\r\n\r\n2011-10-09 21:25:38.554\/3.986 Oracle Coherence n\/a &lt;D5&gt; (thread=main, member=n\/a): Optional configuration override \"\/custom-\r\nmbeans.xml\" is not specified\r\n\r\nOracle Coherence Version n\/a Build n\/a\r\n Grid Edition: Development mode\r\nCopyright (c) 2000, 2011, Oracle and\/or its affiliates. All rights reserved.\r\n\r\n2011-10-09 21:25:40.946\/6.378 Oracle Coherence GE n\/a &lt;Info&gt; (thread=main, member=n\/a): Loaded cache configuration from \r\n\"jar:file:\/root\/OTV\/New\/OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar!\/otv-coherence-cache-config.xml\"\r\n\r\n2011-10-09 21:25:42.665\/8.097 Oracle Coherence GE n\/a &lt;D4&gt; (thread=main, member=n\/a): TCMP bound to \/y.y.y.y:8089 using \r\nSystemSocketProvider\r\n\r\n2011-10-09 21:25:43.266\/8.698 Oracle Coherence GE n\/a &lt;Info&gt; (thread=Cluster, member=n\/a): Failed to satisfy the variance: \r\nallowed=16, actual=31\r\n\r\n2011-10-09 21:25:43.266\/8.698 Oracle Coherence GE n\/a &lt;Info&gt; (thread=Cluster, member=n\/a): Increasing allowable variance to 17\r\n2011-10-09 21:25:43.599\/9.031 Oracle Coherence GE n\/a &lt;Info&gt; (thread=Cluster, member=n\/a): This Member(Id=2, \r\nTimestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, Role=OTV2, \r\nEdition=Grid Edition, Mode=Development, CpuCount=32, SocketCount=32) joined cluster \"OTV\" with senior Member(Id=1, \r\nTimestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, Role=OTV1, \r\nEdition=Grid Edition, Mode=Development, CpuCount=64, SocketCount=64)\r\n\r\n2011-10-09 21:25:43.649\/9.081 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=n\/a): Member 1 joined Service Cluster with \r\nsenior member 1\r\n\r\n2011-10-09 21:25:43.650\/9.082 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=n\/a): Member 1 joined Service Management \r\nwith senior member 1\r\n\r\n2011-10-09 21:25:43.650\/9.082 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Cluster, member=n\/a): Member 1 joined Service MapDistCache \r\nwith senior member 1\r\n\r\n2011-10-09 21:25:43.656\/9.088 Oracle Coherence GE n\/a &lt;Info&gt; (thread=main, member=n\/a): Started cluster Name=OTV\r\n\r\nWellKnownAddressList(Size=2,\r\n  WKA{Address=y.y.y.y, Port=8089}\r\n  WKA{Address=x.x.x.x, Port=8089}\r\n  )\r\n\r\nMasterMemberSet\r\n  (\r\n  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) \r\nOldestMember=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)\r\n  ActualMemberSet=MemberSet(Size=2, BitSetCount=2\r\n    Member(Id=1, Timestamp=2011-10-09 21:24:46.935, Address=x.x.x.x:8089, MachineId=12096, Location=machine:dbt,process:13723, \r\nRole=OTV1)\r\n\r\n    Member(Id=2, Timestamp=2011-10-09 21:25:38.68, Address=y.y.y.y:8089, MachineId=12097, Location=machine:ebt,process:29580, \r\nRole=OTV2)\r\n    )\r\n  RecycleMillis=1200000\r\n  RecycleSet=MemberSet(Size=0, BitSetCount=0\r\n    )\r\n  )\r\n\r\nTcpRing{Connections=[1]}\r\nIpMonitor{AddressListSize=1}\r\n\r\n2011-10-09 21:25:43.812\/9.248 Oracle Coherence GE n\/a &lt;D5&gt; (thread=Invocation:Management, member=2): Service Management \r\njoined the cluster with senior service member 1\r\n\r\n2011-10-09 21:25:45.230\/10.662 Oracle Coherence GE n\/a &lt;D5&gt; (thread=DistributedCache:MapDistCache, member=2): Service \r\nMapDistCache joined the cluster with senior service member 1\r\n\r\n2011-10-09 21:25:45.482\/10.914 Oracle Coherence GE n\/a &lt;D4&gt; (thread=DistributedCache:MapDistCache, member=2): Asking member 1 \r\nfor 128 primary partitions\r\n\r\n2011-10-09 21:25:45.840\/11.272 Oracle Coherence GE n\/a &lt;D5&gt; (thread=DistributedCache:MapDistCache, member=2): Deferring the \r\ndistribution due to 128 pending configuration updates\r\n\r\n09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova\r\n09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:43) - ***************************************\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood\r\n09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:48) - ***************************************\r\n<\/pre>\n<p><strong>STEP 12 : DOWNLOAD<\/strong>          <\/p>\n<p><a href=\"http:\/\/www.onlinetechvision.com\/wp-content\/uploads\/2011\/10\/OTV_Coherence.zip\">OTV_Coherence<\/a><\/p>\n<p><strong><i>Reference: <\/i><\/strong><a href=\"http:\/\/www.onlinetechvision.com\/?p=405\">Distributed Data Management in Oracle Coherence <\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/p\/jcg.html\">JCG partner<\/a> Eren Avsarogullari at the <a href=\"http:\/\/www.onlinetechvision.com\/\">Online Technology Vision<\/a> blog.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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 named user-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 &hellip;<\/p>\n","protected":false},"author":158,"featured_media":204,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[317],"class_list":["post-1423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-coherence"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Oracle Coherence: Distributed Data Management - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Coherence: Distributed Data Management - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2012-06-07T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-22T05:41:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Eren Avsarogullari\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eren Avsarogullari\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html\"},\"author\":{\"name\":\"Eren Avsarogullari\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/65e6e57c730ae5ade3adbadd483553bd\"},\"headline\":\"Oracle Coherence: Distributed Data Management\",\"datePublished\":\"2012-06-07T22:00:00+00:00\",\"dateModified\":\"2012-10-22T05:41:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html\"},\"wordCount\":397,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/oracle-coherence-logo.jpg\",\"keywords\":[\"Coherence\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html\",\"name\":\"Oracle Coherence: Distributed Data Management - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/oracle-coherence-logo.jpg\",\"datePublished\":\"2012-06-07T22:00:00+00:00\",\"dateModified\":\"2012-10-22T05:41:40+00:00\",\"description\":\"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/oracle-coherence-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/oracle-coherence-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2012\\\/06\\\/oracle-coherence-distributed-data.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Oracle Coherence: Distributed Data Management\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/65e6e57c730ae5ade3adbadd483553bd\",\"name\":\"Eren Avsarogullari\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g\",\"caption\":\"Eren Avsarogullari\"},\"sameAs\":[\"http:\\\/\\\/www.onlinetechvision.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Eren-Avsarogullari\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle Coherence: Distributed Data Management - Java Code Geeks","description":"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html","og_locale":"en_US","og_type":"article","og_title":"Oracle Coherence: Distributed Data Management - Java Code Geeks","og_description":"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV","og_url":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2012-06-07T22:00:00+00:00","article_modified_time":"2012-10-22T05:41:40+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg","type":"image\/jpeg"}],"author":"Eren Avsarogullari","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Eren Avsarogullari","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html"},"author":{"name":"Eren Avsarogullari","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/65e6e57c730ae5ade3adbadd483553bd"},"headline":"Oracle Coherence: Distributed Data Management","datePublished":"2012-06-07T22:00:00+00:00","dateModified":"2012-10-22T05:41:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html"},"wordCount":397,"commentCount":3,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg","keywords":["Coherence"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html","url":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html","name":"Oracle Coherence: Distributed Data Management - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg","datePublished":"2012-06-07T22:00:00+00:00","dateModified":"2012-10-22T05:41:40+00:00","description":"This article shows how to provide distributed(partitioned) data management by using Oracle Coherence. In below sample application, a new cluster named OTV","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/oracle-coherence-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2012\/06\/oracle-coherence-distributed-data.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Oracle Coherence: Distributed Data Management"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/65e6e57c730ae5ade3adbadd483553bd","name":"Eren Avsarogullari","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d90f2a1d9c2144dd49935d6c84d5c3aa0832793a522148f397bda79bd8e04c16?s=96&d=mm&r=g","caption":"Eren Avsarogullari"},"sameAs":["http:\/\/www.onlinetechvision.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Eren-Avsarogullari"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/1423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/158"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=1423"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/1423\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/204"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=1423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=1423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=1423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}