coherence安装_Oracle Coherence:分布式数据管理

coherence安装

本文介绍如何使用Oracle Coherence提供分布式(分区)数据管理。 在下面的示例应用程序中,创建了一个名为OTV的新集群,并且在该集群的两个成员之间分配了一个名为user-map的缓存对象。

二手技术:

JDK 1.6.0_21
Maven的3.0.2
连贯性3.7.0 SolarisOS 5.10

步骤1:建立已完成的专案

创建一个Maven项目,如下所示。 (可以使用Maven或IDE插件创建)。

步骤2:下载相干套餐

可通过http://www.oracle.com/technetwork/middleware/coherence/downloads/index.html下载Coherence软件包

步骤3:图书馆

首先,将Coherence库安装到Local Maven Repository,并将其描述添加到pom.xml中,如下所示。 另外,如果不使用maven,则可以将coherence.jar文件添加到classpath中。

<!-- Coherence library(from local repository) --><dependency><groupId>com.tangosol</groupId><artifactId>coherence</artifactId><version>3.7.0</version></dependency>

下面的插件可用于创建runnable-jar

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><configuration><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs><archive><manifest><mainClass>com.otv.exe.TestCacheExecutor</mainClass></manifest></archive></configuration><executions><execution><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin>

步骤4:建立otv-coherence-cache-config.xml

otv-coherence-cache-config.xml包含(分布式或复制的)缓存方案和缓存方案映射配置。 创建后,所有缓存映射都应添加到coherence-cache-config.xml中

<?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-configcoherence-cache-config.xsd"><caching-scheme-mapping><cache-mapping><cache-name>user-map</cache-name><scheme-name>MapDistCache</scheme-name></cache-mapping></caching-scheme-mapping><caching-schemes><distributed-scheme><scheme-name>MapDistCache</scheme-name><service-name>MapDistCache</service-name><backing-map-scheme><local-scheme><unit-calculator>BINARY</unit-calculator></local-scheme></backing-map-scheme><autostart>true</autostart></distributed-scheme></caching-schemes>
</cache-config>

步骤5:创建tangosol-coherence-override.xml

tangosol-coherence-override.xml包含集群, 成员身份和可配置缓存工厂配置。 同样在配置xml文件下面显示了集群的第一个成员。

集群的第一个成员的tangosol-coherence-override.xml:

<?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:

<?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>

第6步:创建用户头像

创建一个新的User bean。 该bean将分布在OTV集群中的两个节点之间。 对于序列化,已经实现了java.io.Serializable接口,但是可以实现PortableObject以获得更好的性能。

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;}@Overridepublic String toString() {StringBuffer strBuff = new StringBuffer();strBuff.append("name : ").append(name);strBuff.append(", surname : ").append(surname);return strBuff.toString();}
}

第7步:创建缓存类

创建一个新的TestCache类。 此类初始化分布式(已分类)数据管理并创建一个名为user-map的缓存对象。

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 lockedgetCache().lock(key, LOCK_TIMEOUT);try {// application logicgetCache().put(key, value);} finally {// key is unlockedgetCache().unlock(key);}}public void deleteFromCache(Object key) {// key is lockedgetCache().lock(key, LOCK_TIMEOUT);try {// application logicgetCache().remove(key);} finally {// key is unlockedgetCache().unlock(key);}}
}

步骤8:建立UserMapListener IMPL类别

创建一个新的UserMapListener类。 该侦听器接收分布式的用户映射事件。

package com.otv.listener;import org.apache.log4j.Logger;import com.tangosol.util.MapEvent;
import com.tangosol.util.MapListener;/*** @author onlinetechvision.com* @since 9 Oct 2011* @version 1.0.0**/
public class UserMapListener implements MapListener {private static Logger logger = Logger.getLogger(UserMapListener.class);public void entryDeleted(MapEvent me) {logger.debug("Deleted Key = " + me.getKey() + ", Value = " + me.getOldValue());}public void entryInserted(MapEvent me) {logger.debug("Inserted Key = " + me.getKey() + ", Value = " + me.getNewValue());}public void entryUpdated(MapEvent me) {
//  logger.debug("Updated Key = " + me.getKey() + ", New_Value = " + 
//              me.getNewValue() + ", Old Value = " + me.getOldValue());}
}

步骤9:建立TestCacheExecutor类别

创建TestCacheExecutor类以运行该应用程序。

package com.otv.exe;import java.util.Iterator;import org.apache.log4j.Logger;import com.otv.TestCache;
import com.otv.user.User;/*** @author onlinetechvision.com* @since 9 Oct 2011* @version 1.0.0**/
public class TestCacheExecutor implements Runnable {private static Logger log = Logger.getLogger(TestCacheExecutor.class);public static void main(String[] args) {try {TestCacheExecutor testCacheExecutor = new TestCacheExecutor();while (true) {testCacheExecutor.run();Thread.sleep(10000);}} catch (InterruptedException e) {e.printStackTrace();}}public void run() {execute();}public void execute() {//Entries which will be inserted via first member of the cluster so before the project is built// in order to deploy first member of the cluster, this code block should be opened and below //code block should be commented-out...User firstUser = new User("Bruce", "Willis");User secondUser = new User("Clint", "Eastwood");TestCache.getInstance().addToCache("user1", firstUser);TestCache.getInstance().addToCache("user2", secondUser);  //Entries which will be inserted via second member of the cluster so before the project is //built in order to deploy second member of the cluster, this code block should be opened //and above code block should be commented-out...//User firstUser = new User("Anna", "Kornikova");//User secondUser = new User("Natalie", "Portman");//TestCache.getInstance().addToCache("user3", firstUser);//TestCache.getInstance().addToCache("user4", secondUser);  Iterator it = TestCache.getInstance().getCache().values().iterator();log.debug("***************************************");while(it.hasNext()){User user = (User)it.next();log.debug("1. Cache Content : "+user);}log.debug("***************************************");}}

步骤10:建立专案

生成OTV_Coherence项目时,将创建OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar
注意:构建过程应分别应用于集群的每个成员。

步骤11:在集群的第一个成员上运行项目

在集群成员上运行OTV_Coherence-0.0.1-SNAPSHOT-jar-with-dependencies.jar文件后,将在第一个成员的控制台上显示以下输出日志:

xxxx:第一个成员的IP地址
yyyy:第二个成员的IP地址

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 specifiedOracle Coherence Version n/a Build n/aGrid 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 SystemSocketProvider2011-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=0x0AD2339700000132E9EE15572F401F992011-10-09 21:24:50.644/11.479 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Started cluster Name=OTVWellKnownAddressList(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=1200000RecycleSet=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 12011-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 109.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 12011-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 12011-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 12011-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 209.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) - ***************************************

第二成员的控制台:

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 specifiedOracle Coherence Version n/a Build n/aGrid 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 
SystemSocketProvider2011-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=312011-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 12011-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 12011-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 12011-10-09 21:25:43.656/9.088 Oracle Coherence GE n/a <Info> (thread=main, member=n/a): Started cluster Name=OTVWellKnownAddressList(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=2Member(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=1200000RecycleSet=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 12011-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 12011-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 partitions2011-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 updates09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user3, Value = name : Anna, surname : Kornikova
09.10.2011 21:25:46 DEBUG (UserMapListener.java:23) - Inserted Key = user4, Value = name : Natalie, surname : Portman
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:43) - ***************************************
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Anna, surname : Kornikova
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Bruce, surname : Willis
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Natalie, surname : Portman
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:46) - Distributed Cache Content : name : Clint, surname : Eastwood
09.10.2011 21:25:46 DEBUG (TestCacheExecutor.java:48) - ***************************************

步骤12:下载

OTV_Coherence

参考: Online Technology Vision博客上的JCG合作伙伴 Eren Avsarogullari提供的Oracle Coherence中的分布式数据管理 。


翻译自: https://www.javacodegeeks.com/2012/06/oracle-coherence-distributed-data.html

coherence安装

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX技巧来节省内存! 属性和可观察物的阴影场

在 JavaFX的世界中&#xff0c; Properties API允许UI开发人员将值绑定到UI控件。 这种功能非常容易&#xff0c;但是当对象模型经常使用属性时&#xff0c;应用程序可能会很快耗尽内存。 我通常会编写两个单独的对象&#xff0c;例如pojo类和表示模型对象。 此技术通常在基于S…

如何在Hibernate Search 5.5.2 / Apache Lucene 5.4.x中处理停用词?

停用词&#xff0c;例如[“ a”&#xff0c;“ an”&#xff0c;“ and”&#xff0c;“ are”&#xff0c;“ as”&#xff0c;“ at”&#xff0c;“ be”&#xff0c;“ but”&#xff0c;“ by”&#xff0c;“ for”&#xff0c;“ if”&#xff0c;“在”&#xff0c;“成…

Java----前端验证之验证码额实现

验证码是常用的登录验证方式之一,最大的作用就是保证安全,验证码的生成在java中实现的方式有很多种,比如后台生成传输到前端页面,在前台直接生成进行验证,下面写一个最简单实现验证码验证登录的例子. 生成验证码: 验证码验证逻辑: From表单登录: 没错,就这么的简单.在scripts生…

使用Spring Boot隔离集成测试和模拟依赖项

集成测试可能很慢且不可靠&#xff0c;因为它们依赖于系统中过多的组件。 在某种程度上&#xff0c;这是不可避免的&#xff1a;这里的集成测试是为了验证系统的每个部分如何与其他内部或外部组件一起玩。 但是&#xff0c;我们可以通过仅分解所需的依赖关系而不是整个系统来改…

Ubuntu 16.04下使用Wine安装Xshell 4和Xftp 4

说明&#xff1a; 1、使用的Wine版本是深度出品&#xff08;Deepin&#xff09;&#xff0c;已经精简了很多没用的配置&#xff0c;使启动能非常快&#xff0c;占用资源小。 2、由于Xshell 5的C库无法在这个Wine版本运行&#xff0c;即使升级官方原版的2版本也无法解决&#xf…

电脑缺失MSVCP110.dll文件

安装某软件显示如下错误。 错误&#xff1a; 原因&#xff1a;电脑缺少MSVCP110.dll系统文件。C:\Windows\System32目录下没有此文件。 解决&#xff1a; 下载vcredist_x64直接双击安装&#xff0c;安装完成后就可以继续安装之前安装不了的软件了。。 这里是我下载的&#…

在WildFly的REST Web服务中与Jackson的双向关系

这是使用Jackson的REST Web服务中Java实体之间的双向关系的示例。 假设我们在两个实体Parent和Child之间存在双向关系。 使用MySQL工作台为这两个表生成SQL模式文件。 DROP SCHEMA IF EXISTS bidirectional_schema ; CREATE SCHEMA IF NOT EXISTS bidirectional_schema DEFA…

Postman安装与使用(网络请求神器)--post、get请求

安装 1、Postman最早是作用chrome浏览器插件存在的&#xff0c;所以&#xff0c;你可以到chrome商店搜索下载安装&#xff0c;因为重所周知的原因&#xff0c;所以&#xff0c;大家都会找别人共享的postman插件文件来安装。由于2018年初Chrome停止对Chrome应用程序的支持。 官…

openshift用户管理_OpenShift Express Web管理控制台:入门

openshift用户管理本周&#xff0c; 最新版本的OpenShift为已经很棒的PaaS Cloud提供商带来了两个非常好的功能。 首先&#xff0c;JBoss AS已从7.0升级到7.1&#xff0c;并且所有新的Express Web Management Console已作为预览发布。 在本文中&#xff0c;我们将研究如何使用此…

linux系统搭建ftp服务器--只给某个用户访问其默认目录下的文件

1、环境: window操作系统中安装FlashFXP 软件或xftp&#xff1b; 服务器端的操作系统为centos8&#xff1b; 2、检查安装vsftpd软件 查看所有的安装的软件包 并在结果中查找包含vsftp 的文件 rpm -qa | grep vsftpd如果没有装则使用yum命令安装 yum -y install vsftpd3、创…

Openshift源中的高可用性Drools无状态服务

嗨&#xff0c;大家好&#xff01; 在这篇博客文章中&#xff0c;我想举一个简单的例子&#xff0c;展示使用Openshift 3&#xff08;Docker和Kubernetes&#xff09;扩展Drools Stateless服务有多么容易。 我将展示如何通过按需提供新实例来扩展我们的服务&#xff0c;以及如何…

jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

jpa jsf我们创建了这篇文章&#xff0c;将展示如何使用以下工具创建完整的Web应用程序&#xff1a;Tomcat7&#xff0c;带有Primefaces的JSF2&#xff08;Facelets和Libraries&#xff09;&#xff08;具有AutoComplete&#xff09;&#xff0c;JPA / Hibernate&#xff08;具有…

错题

1. 本题考查String对象的声明和赋值方式。C#中没有new String() 这种方式来构造字符串。故选 AC 2. 在CSS中&#xff0c;控制列表样式的属性有&#xff1a;list-style-type&#xff0c;list-style-position&#xff0c;list-style-image&#xff0c;list-style equals比较的是像…

javascript-发布订阅模式

说明&#xff1a;本篇文章转载自小火柴的蓝色理想的一篇博文。原文地址&#xff1a;http://www.cnblogs.com/xiaohuochai/p/8031564.html 发布—订阅模式又叫观察者模式&#xff0c;它定义对象间的一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖…

python-列表list和元组tuple

list Python内置的一种数据类型是列表&#xff1a;list。list是一种有序的集合&#xff0c;可以随时添加和删除其中的元素。 比如&#xff0c;列出班里所有同学的名字&#xff0c;就可以用一个list表示&#xff1a; >>> classmates [Michael, Bob, Tracy] >>&g…

jsf表单验证_动态表单,JSF世界期待已久

jsf表单验证新的PrimeFaces扩展版本0.5.0带来了新的DynaForm组件。 通常&#xff0c;如果知道行/列的数量&#xff0c;元素的位置等&#xff0c;则可以通过h&#xff1a;panelGrid或p&#xff1a;panelGrid构建非常简单的表单。 静态表单是正确的。 但是&#xff0c;如果在运行…

转载黑客是如何黑到你手机的?绝对涨姿势,一位黑客的Wi-Fi入侵实录!

声明&#xff1a;这是一虚构的故事&#xff0c;因此对图片均进行了模糊化处理。内容整理自网络&#xff01; 故事的主人公小黑是一名从事IT相关工作的技术宅男。五一长假来临&#xff0c;宅在家中的他相当无聊&#xff0c;打开手机上的Wi-Fi模块&#xff0c;发现附近有将近10个…

html5——DOM扩展

元素获取 1、document.getElementsByClassName (class) 通过类名获取元素&#xff0c;以类数组形式存在。 2、document.querySelector(‘div’) 通过CSS选择器获取元素&#xff0c;符合匹配条件的第1个元素。 3、document.querySelectorAll(selector) 通过CSS选择器获取元素&am…

JAVA递归实现全排列

全排列&#xff08;permutation&#xff09; 排列组合概念 排列&#xff0c;就是指从给定n个数的元素中取出指定m个数的元素&#xff0c;进行排序 组合&#xff0c;则是指从给定n个数的元素中仅仅取出指定m个数的元素&#xff0c;不考虑排序 全排列 以数字为例&#xff0c;全排…

java云端部署_Jelastic Java云端平台

java云端部署谁在Jelastic背后&#xff1f; 那是我的第一个问题&#xff0c;因此我浏览了Jelastic网站。 回答此问题的最佳方法是查看“ Jelastic团队”部分。 创始人&#xff0c;顾问&#xff0c;特殊合作伙伴构成了一支真正的专业团队。 作为特殊的合作伙伴&#xff0c;您会…