Oracle Coherence 3.6版中解决了这个问题,此版本中引入了三种作用域:
- 应用服务器作用域
- EAR应用作用域
- WAR应用作用域
实验环境准备
- 介质版本分别为:WebLogic 10.3.3与Coherence 3.6
- 随WebLogic Server 10.3.3一同安装的Coherence版本为3.5,我们需要下载Coherence 3.6覆盖原来的Coherence或使用其它目录存放Coherence 3.6
- 此实验中所涉及的coherence.jar与coherence-web-spi.war都位于%COHERENCE_HOME%/lib目录下
- 由于此版本中WebLogic Server启动时默认关闭了本地存储(local store),所以在实验前,确保%COHERENCE_HOME%/bin/
cache-server.cmd选启动,然后再启动WebLogic Server实例。
配置应用服务器作用域集群节点
1. 将coherence.jar与%WL_HOME%/common/deployable-libraries/active-cache.jar加到WebLogic Server系统加路径中。
注:active-cache.jar一定要放在%WL_HOME%/common/deployable-libraries/目录下,并且加到类路径下。可以通过修改%DOMAIN_HOME%/bin/startWebLogic.cmd来更改类路径,此处不详述。
2. 将coherence-web-spi.war发布为共享库
3. 修改应用的weblogic.xml配置文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <WLS:WEBLOGIC-WEB-APP xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd" xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <WLS:WEBLOGIC-VERSION>10.3.2</WLS:WEBLOGIC-VERSION>
- <WLS:CONTEXT-ROOT>CoherenceWeb</WLS:CONTEXT-ROOT>
- <WLS:LIBRARY-REF>
- <WLS:LIBRARY-NAME>coherence-web-spi</WLS:LIBRARY-NAME>
- <WLS:SPECIFICATION-VERSION>1.0.0.0</WLS:SPECIFICATION-VERSION>
- <WLS:EXACT-MATCH>true</WLS:EXACT-MATCH>
- </WLS:LIBRARY-REF>
- </WLS:WEBLOGIC-WEB-APP>
4. 测试方法
分别创建两个domain_a与domain_b,按照步骤1,2分布在两个domain上配置,将应用CoherenceWeb.war分别部署在两个domain中。访问domain_a上的应用CoherenceWeb,更新会话变量值,通过domain_b上的应用CoherenceWeb查看会话变量值的变化情况。如果两个应用中会话变量同步变化就算是成功了
5. 下载测试用应用包:CoherenceWeb.war
配置EAR作用域集群节点
1. 以共享库的方式部署active-cache.jar及coherence-web-spi.war
2. 将coherence.jar放入应用的lib目录下
3. 修改META-INF/weblogic-application.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <WLS:WEBLOGIC-APPLICATION xsi:schemalocation="http://www.bea.com/ns/weblogic/weblogic-application http://www.bea.com/ns/weblogic/weblogic-application.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/j2ee_1_4.xsd" xmlns:wls="http://www.bea.com/ns/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <WLS:LIBRARY-REF>
- <WLS:LIBRARY-NAME>coherence-web-spi</WLS:LIBRARY-NAME>
- </WLS:LIBRARY-REF>
- <WLS:COHERENCE-CLUSTER-REF>
- <WLS:COHERENCE-CLUSTER-NAME>CoherenceCluster</WLS:COHERENCE-CLUSTER-NAME>
- </WLS:COHERENCE-CLUSTER-REF>
- </WLS:WEBLOGIC-APPLICATION>
4. 修改应用的META-INF/MANIFEST.MF
Extension-List: active-cache active-cache-Extension-Name: active-cache active-cache-Specification-Version: 1.0 active-cache-Implementation-Version: 1.0
6. 测试方法
分访问CoherenceTest.ear中的CoherenceWebA与CoherenceWebB,看是否访问正常。
5. 下载测试用应用包:CoherenceTest.ear
配置WAR-作用域集群节点
1. 以共享库的方式部署active-cache.jar及coherence-web-spi.war
2. 复制coherence.jar到应用的WEB-INF/lib目录下
3. 修改WEB-INF/weblogic.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <WLS:WEBLOGIC-WEB-APP xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd" xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <WLS:WEBLOGIC-VERSION>10.3.2</WLS:WEBLOGIC-VERSION>
- <WLS:CONTEXT-ROOT>CoherenceWeb</WLS:CONTEXT-ROOT>
- <WLS:LIBRARY-REF>
- <WLS:LIBRARY-NAME>coherence-web-spi</WLS:LIBRARY-NAME>
- </WLS:LIBRARY-REF>
- <WLS:COHERENCE-CLUSTER-REF>
- <WLS:COHERENCE-CLUSTER-NAME>CoherenceCluster</WLS:COHERENCE-CLUSTER-NAME>
- </WLS:COHERENCE-CLUSTER-REF>
- </WLS:WEBLOGIC-WEB-APP>
这里的<wls:coherence-cluster-ref>元素可选,如果有多个应用使用Coherence *Web,此项必须用以避免命名冲突
4. 修改应用的META-INF/MANIFEST.MF
Extension-List: active-cache active-cache-Extension-Name: active-cache active-cache-Specification-Version: 1.0 active-cache-Implementation-Version: 1.0
5. 发布应用
6. 测试方法
分别部署CoherenceWebC.war与NoCoherenceWeb.war,通过应用CoherenceWebC更改会话变量值,通过应用NoCoherenceWeb查看会话变量值的变化情况,如果NoCoherenceWeb的会话变量值不随NoCoherenceWeb会话值的变化而变化,则测试成功
7. 测试代码下载:CoherenceWebC.war、NoCoherenceWeb.war
浙公网安备 33010602011771号