本章提供了一步一步的建立和运行一个基本的连贯性的例子说明,并演示了许多基本的连贯性概念。示例应用程序是一个简单的Hello World应用程序,并作为一个独立的Java应用程序和JSP应用程序执行。最后,一个JDeveloper部分已被列入设立JDeveloper中开发的连贯性时,提供一些基本指令。

注意事项:
在本章的例子是基本的,仅用于教的一般概念。对于更高级的例子,下载的文档库中包含相干的例子。

本章包含以下各节:

任务1:定义缓存示例
    任务2:配置和启动示例集群
    任务3:创建和运行一个基本的coherence 独立应用程序
    任务4:创建和运行一个基本的coherence JavaEE的Web应用程序
    使用JDeveloper连贯性发展

4.1 任务1:定义实例缓存

缓存缓存配置部署描述符中定义,被称为在一个应用程序名称。允许缓存配置更改,而无需改变应用程序代码。以下缓存配置映射到缓存的名字打招呼,例如定义了一个基本的分布式缓存。

要定义的例子缓存:

创建一个XML文件名为example-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-config

coherence-cache-config.xsd">

<caching-scheme-mapping>

<cache-mapping>

<cache-name>hello-example</cache-name>

<scheme-name>distributed</scheme-name>

</cache-mapping>

</caching-scheme-mapping>

<caching-schemes>

<distributed-scheme>

<scheme-name>distributed</scheme-name>

<service-name>DistributedCache</service-name>

<backing-map-scheme>

<local-scheme/>

</backing-map-scheme>

<autostart>true</autostart>

</distributed-scheme>

</caching-schemes>

</cache-config>

保存并关闭该文件。

4.2 任务2:配置和启动示例集群

缓存托管Coherence 集群。在运行时,任何JVM上运行的进程的Coherence 自动加入集群,并可以访问高速缓存和其它集群提供服务。当JVM加入集群时,它被称为群集节点,或者,一个群集成员。本章中的示例应用程序,两个独立的Java进程形成集群:一个缓存服务器进程和Hello World应用程序的过程。为简单起见,这两个过程是在单个计算机上并置。默认情况下,配置的缓存服务器来存储缓存数据。

示例集群使用一个业务覆盖文件修改的默认群集配置。特别是,默认配置被修改,以确保这两个过程,不要试图加入一个现有的连贯性可能会在网络上运行的群集创建一个私有集群。默认的配置也被修改, example-config.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>cluster_name</cluster-name>

</member-identity>

<multicast-listener>

<address>224.3.6.0</address>

<port>port</port>

<time-to-live>0</time-to-live>

</multicast-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">

example-config.xml</param-value>

</init-param>

</init-params>

</configurable-cache-factory-config>

</coherence>

将文件保存到保存的 example-config.xml文件的同一目录下。

在命令提示符下,启动缓存服务器实例使用DefaultCacheServer类,包括位置的coherence.jar库和配置文件作为一个Java-cp选项。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar com.tangosol.net.DefaultCacheServer

4.3 任务3:创建和运行一个基本的COHERENCE独立应用程序

步骤3是一个多部分的步骤,包括一个示例Hello World应用程序和用于运行和验证的示例的说明。该应用程序运行在命令行中,并开始与一个缓存服务器,加入一个缓存节点。该应用程序将键名为K1值的Hello World!进入招呼例如缓存,然后获取并打印出价值的关键在退出之前。最后,其他群集节点开始验证,关键是在缓存中。

4.3.1创建独立的应用程序示例

应用程序使用的Coherence API来访问和互动的高速缓存。 CacheFactory类是用来获取一个缓存的实例和NamedCache接口用于检索和存储在缓存中的对象。 Hello World应用程序是非常基本的,但它确实证明使用的CacheFactory类NamedCache的接口。

例4-1样品的HelloWorld独立的应用程序

package com.examples;

import com.tangosol.net.CacheFactory;

import com.tangosol.net.NamedCache;

public class HelloWorld {

public static void main(String[] args) {

String key = "k1";

String value = "Hello World!";

CacheFactory.ensureCluster();

NamedCache cache = CacheFactory.getCache("hello-example");

cache.put(key, value);

System.out.println((String)cache.get(key));

CacheFactory.shutdown();

}

}

4.3.2运行独立的应用程序示例

要运行独立的应用实例:

在命令提示符下,编译Hello World应用程序。例如:

javac -cp COHERENCE_HOME\lib\coherence.jar com\examples\HelloWorld.java

运行Hello World应用程序,包括一个Java-cp选项的coherence.jar库和配置文件的位置。 此外,限制客户端从本地存储分区数据。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar -Dtangosol.coherence.distributed.localstorage=false com.example.HelloWorld

Hello World应用程序启动。缓存工厂实例被创建并成为群集成员。 K1键的Hello World!值被装入打招呼例如缓存。键,然后从缓存中检索的值作为输出的一部分射出。最后,缓存工厂关闭之前离开集群Hello World应用程序退出。

4.3.3验证实例缓存

在这个例子中的缓存服务器的配置,在默认情况下,高速缓存的数据存储。数据是提供给所有的集群成员后仍成员离开集群。例如,Hello World应用程序退出后,它在缓存中加载和显示的关键。但是,高速缓存和关键仍然可用于所有群集成员。

此步骤使用缓存factory命令行工具来连接的Hello例如缓存,在缓存中列出的所有项目。它演示相干缓存的持久性和分散性。

要验证缓存:

从命令提示符下,启动一个独立的缓存厂用CacheFactory类的实例,包括一个Java-cp选项的coherence.jar库和配置文件的位置。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar -Dtangosol.coherence.distributed.localstorage=false com.tangosol.net.CacheFactory

缓存工厂实例启动集群并成为会员,并返回命令提示符下的命令行工具。
    在命令行工具命令提示符,你好例如缓存使用缓存的命令:
    缓存HELLO例
    在命令行工具命令提示符下,使用list命令的缓存中检索内容。
    list
    该命令返回并显示:
    K1 =的Hello World!

4.4任务4:创建和运行一个基本的coherence JavaEE的Web应用程序

第4步是多部分的步骤,其中包括Hello World应用程序重新实现一个JSP页面。说明包括作为Web应用程序部署到JavaEE服务器的包装样品。该应用程序运行在应用服务器上,并开始加入与缓存服务器的高速缓存节点。该应用程序将键名为K2的值的Hello World!进入招呼例如缓存,然后获取并打印出价值的关键在退出之前。最后,其他群集节点开始验证,关键是在缓存中。

4.4.1创建示例Web应用程序

要创建示例Web应用程序:

创建一个基本的Web应用的目录结构如下:

/

/WEB-INF

/WEB-INF/classes

/WEB-INF/lib

复制下面的JSP到一个文本文件,将文件保存为hello.jsp中的Web应用程序的根目录。

例4-2 Hello World示例JSP

<html>

<head>

<title>My First Coherence Cache</title>

</head>

<body>

<h1>

<%@ page language="java"

import="com.tangosol.net.CacheFactory,

com.tangosol.net.NamedCache"

%>

<%

String key = "k2";

String value = "Hello World!";

CacheFactory.ensureCluster();

NamedCache cache = CacheFactory.getCache("hello-example");

cache.put(key, value);

out.println((String)cache.get(key));

CacheFactory.shutdown();

%>

</h1>

</body>

</html>

以下空Web应用程序部署描述符复制到一个文本文件,将文件保存为/ WEB-INF目录下的web.xml。

<?xml version = '1.0' ?>

<web-app/>

到WEB-INF/lib目录复制coherence.jar的文件。

复制的 example-config.xml 文件 tangosol-coherence-override.xml的文件WEB-INF/classes目录。

使用jar实用工具创建一个Web归档文件(WAR),并保存该文件作为部署hello.war。例如,发出以下命令从命令提示符在Web应用程序的根目录:

jar -cvf hello.war *

归档文件应包含以下文件

/hello.jsp

/WEB-INF/web.xml

/WEB-INF/classes/example-config.xml

/WEB-INF/classes/tangosol-coherence-override.xml

/WEB-INF/lib/coherence.jar

4.4.2部署和运行Web应用程序示例

要部署和运行Web应用程序的例子:

部署hello.war文件在JavaEE服务器。

从一个浏览器,运行“Hello World应用程序访问hello.jsp,在文件中使用以下URL。替换主机和端口部署特定的值。

http://host:port/hello/hello.jsp

Hello World应用程序启动。缓存工厂实例被创建并成为群集成员。 K2键的Hello World!值被装入打招呼例如缓存。关键是从缓存中检索,并在浏览器中显示该值。最后,缓存工厂关闭和离开集群。

4.4.3验证实例缓存

在这个例子中的缓存服务器的配置,在默认情况下,高速缓存的数据存储。数据是提供给所有的集群成员后仍成员离开集群。例如,Hello World应用程序退出后,它在缓存中加载和显示的关键。但是,高速缓存和关键仍然可用于所有群集成员。

此步骤使用缓存factory命令行工具来连接的Hello例如缓存,在缓存中列出的所有项目。它演示相干缓存的持久性和分散性。

要验证缓存:

从命令提示符下,启动一个独立的缓存厂用CacheFactory类的实例,包括一个Java-cp选项的coherence.jar库和配置文件的位置。例如:

java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar -Dtangosol.coherence.distributed.localstorage=false com.tangosol.net.CacheFactory

缓存工厂实例启动集群并成为会员,并返回命令提示符下的命令行工具。

在命令行工具命令提示符,你好例如缓存使用缓存的命令:

缓存HELLO例
    在命令行工具命令提示符下,使用list命令的缓存中检索内容。

list

该命令返回并显示:
    K2 =的Hello World!

4.5使用JDeveloper的Coherence发展

本节上如何设置JDeveloper中的连贯性发展提供了基本的指令。说明是在IDE中运行的连贯性,这是一个在开发过程中常用的方法。同时指示具体到JDeveloper,同样的方法应该可以与任何IDE。请参阅IDE的文档的具体说明。

在JDeveloper中运行的Coherence

在JDeveloper中查看线程转储
    在JDeveloper创建配置文件

4.5.1运行在JDeveloper中的Coherence

JDeveloper可以运行的缓存服务器(DefaultCacheServer)和缓存(递给CacheFactory)实例。每个实例开始作为一个单独的Java进程,并发出标准进程的日志输出。输入(如缓存命令)可以直接输入在这个过程中,如果在命令行启动。这种配置有利于开发和测试的连贯性解决方案。

要运行在JDeveloper中的Coherence :

1在JDeveloper中,创建一个新的通用应用程序,其中包括一个单一的项目。如果你是新 JDeveloper的详细说明,请咨询在线帮助。

2在Application Navigator中,双击新项目。项目属性对话框。

3.选择图书馆和CLASSPATH节点。图书馆和CLASSPATH页面显示

4.在的图书馆和CLASSPATH页面中,单击“添加JAR/目录。添加归档文件或目录对话框显 示。

5.从目录树,选择COHERENCE_HOME\ LIB\ coherence.jar并点击选择。 coherence.jar库显示在类路径条目列表,如下所示:

6从项目属性“对话框中,选择”运行/调试/配置文件节点。运行/调试/个人资料页显示。

7从运行/调试/个人资料“页面,单击”新建“。创建运行配置对话框名称文本框中displays.In, 进入新的运行配置的名称。在复印设置下拉框,选择“默认”。点击“确定”。运行配置列 表中显示新的运行配置。

8从运行配置“列表中,选择新的运行配置,并单击”编辑“。编辑运行配置对话框显示,选 择“启动设置”节点。

9从“启动设置”页上,单击“浏览”选择一个默认的运行目标。选择默认的运行目标对话框显 示。

10从目录树中,选择COHERENCE_HOME\ LIB\ coherence.jar\ COM\
Tangosol的\ NET \ DefaultCacheServer.class,然后单击“打开”。输入为默认的运行目标 DefaultCacheServer类,如下所示:

提示:
使用Java选项文本框中设置相干系统的性能。

11选择工具设置节点。工具设置页面显示。

12从的附加亚军选项“部分中,单击”允许程序输入复选框。包装盒中的复选标记表明该选 项被选中。

13点击“确定”。

14重复步骤6到14和选择COHERENCE_HOME的\ LIB\ coherence.jar中\
COM\ Tangosol的\ NET \ CacheFactory.class默认的运行目标,如下所示:

15单击“确定”以关闭Project Properties对话框。

16使用“运行”按钮的下拉列表中选择并开始运行配置为缓存服务器。缓存服务器实例启动 并输出显示在进程的日志“选项卡,如下图所示:

17使用“运行”按钮的下拉列表中选择并开始运行配置为缓存。一个缓存的实例启动并输出 显示在进程的日志“选项卡,如下图所示。

18从缓存厂的运行日志“选项卡中,使用输入文本框位于底部的标签与缓存实例。例如,键 入help,然后按Enter键看到一个有效的命令列表。

4.5.2在JDeveloper中查看线程转储

Java可以转储到标准输出线程和他们所有的持有锁的列表。这是实现Linux环境下使用kill命令,在Windows环境下使用CTRL + BREAK。线程转储是非常有用的故障排除在开发过程中(例如,查找死锁)。

在JDeveloper发展连贯性的解决方案时,您可以直接查看线程转储一个进程的日志“选项卡。为达到此目标的Java进程运行在JDeveloper中发出上述信号。

要查看在JDeveloper中的线程转储:

从shell或命令提示符,使用JDK_HOME/ BIN /太平绅士Java进程的进程ID(PID),您要查看的线程转储。

在Linux中,使用kill-3 PID发送QUIT信号给进程。在Windows上,你必须使用一个第三方的工具(如SendSignal)发送CTRL+ BREAK信号远程Java进程。

线程转储进程的日志在JDeveloper中查看。

4.5.3在JDeveloper中创建配置文件

JDeveloper可以创建连贯性配置文件。 JDeveloper中加载相应的XSD文件,并在组件面板中列出的所有元素。此外,JDeveloper中验证的XSD的配置文件,并提供了XML的代码完成。以下过程将创建一个缓存配置文件和运营覆盖文件。相同的程序,可以使用任何的连贯配置文件。

在JDeveloper中创建一个缓存配置和操作覆盖文件:

1 提取的一致性缓存config.xsd的,缓存相干配置base.xsd,相干运营config.xsd,连贯性操作配置base.xsd的,和连贯性配置base.xsd,从COHERENCE_HOME\ LIB \coherence.jar库到您的计算机上的一个目录。

2 在JDeveloper中Application Navigator中,双击您的连贯性项目。项目属性对话框。

3展开的项目源路径“节点,然后单击”资源“。的资源页面显示。

4 在参考资料部分中,单击“添加”查找和选择提取XSD文件所在的目录。

5 包括选项卡,单击“添加”,选择XSD文件。或者,您可以允许JDeveloper中包括这个目录中的所有文件,并没有明确添加的每个文件。

6 点击“确定”。包括选项卡中列出的XSD,如下图所示。

7单击“确定”以关闭Project Properties对话框。在Application Navigator中列出的XSD资源 为您的项目文件夹下。

8从“文件”菜单上,单击“新建”。新画廊对话框显示。

9分类部分,展开“常规”节点,并单击XML。

10选择XML文件,并点击“确定”。创建XML文件对话框。

11输入的一致性缓存-config.xml中作为文件名,并把它保存到XSD位于同一目录下。在运 行时,此文件必须在classpath中找到,并且必须被加载前coherence.jar文件。

12点击“确定”。缓存配置文件被创建,打开进行编辑,并在Application Navigator中为您的项目的资源文件夹下上市。

13开头的文件中添加下面的架构参考:

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

刷新组件面板中列出的所有元素从的coherence-cache-config.xsd的文件。

14保存缓存的coherence-cache-config.xml 文件。

15重复步骤8至12,创建一个名为Tangosol的相干override.xml的的的业务覆盖文件。在 运行时,这个文件必须在classpath中找到。

16在文件开头添加下面的架构引用:

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

刷新组件面板中列出了所有可用从coherence-operational-config.xsd的元素。

17Save the tangosol-coherence-override.xml file.

Oracle Coherence中文教程四:构建一个Coherence 应用相关推荐

  1. Oracle Coherence中文教程七:设置群集

    设置群集 本章说明了为完成共同任务,都与建立一个集群. 本章包含以下各节: 设置群集概述     指定群集名称     指定群集成员的身份     配置组播通信     指定一个集群成员的单播地址   ...

  2. PyTorch学习系列教程:构建一个深度学习模型需要哪几步?

    导读 继续PyTorch学习系列.前篇介绍了PyTorch中最为基础也最为核心的数据结构--Tensor,有了这些基本概念即可开始深度学习实践了.本篇围绕这一话题,本着提纲挈领删繁就简的原则,从宏观上 ...

  3. js自动触发onclick_Vue.js教程:构建一个特斯拉汽车余电计算器

    作者丨Peter Eijgermans 译者丨王强 策划丨小智 那么,特斯拉上哪去领呢? 本文最初发布于 DEV 网站,经原作者授权由 InfoQ 中文站翻译并分享. 这篇教程关注的是全新的汽车驾驶体 ...

  4. Android入门教程四十之构建一个可复用的自定义BaseAdapter

    如题,本节给大家带来的是构建一个可复用的自定义BaseAdapter,我们每每涉及到ListView GridView等其他的Adapter控件,都需要自己另外写一个BaseAdapter类,这样显得 ...

  5. Docker教程(四) Docker镜像构建

    Docker教程(四) Docker镜像构建 本文链接:https://blog.csdn.net/yuan_xw/article/details/77744272 Docker教程(四) Docke ...

  6. LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库

    LittleVGL (LVGL)干货入门教程四之制作和使用中文汉字字库 前言: 阅读前,请确保你至少拥有以下条件: 已实现显示API(教程一已实现, 链接:LittleVGL (LVGL)入门教程一之 ...

  7. 全网首发 | 第一个opencv_contrib扩展模块中文教程限时领取

    点击上方"小白学视觉",选择"星标"公众号 重磅干货,第一时间送达 OpenCV是学习计算机视觉的重要工具之一,然而多年以来,在深度学习的deBuff下,Ope ...

  8. 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)

    构建一个基本的前端自动化开发环境 -- 基于 Gulp 的前端集成解决方案(四) 参考文章: (1)构建一个基本的前端自动化开发环境 -- 基于 Gulp 的前端集成解决方案(四) (2)https: ...

  9. flutter 如何判断在哪个页面_Agora 教程:构建你的第一个 Flutter 视频通话应用

    作者:张乾泽,声网Agora 工程师 我们基于 Agora SDK 封装了 Agora Flutter SDK ,开发者可以在 Flutter 应用中快速实现稳定.可靠的实时音视频通话.互动直播应用. ...

  10. 使用MPICH构建一个四节点的集群系统

    http://selboo.com.cn/post/202/ 1.什么是服务器集群 随着Internet的爆炸性增长,Internet与人的生活越来越息息相关,通过Internet上进行交易也就越来越 ...

最新文章

  1. 工业机器人运动规划方法简述
  2. 与大疆并称双雄、估值近百亿的极飞科技,现在是一家什么公司?
  3. putty利用密钥ssh服务登录ubuntu server 10.4
  4. 2021已去,2022未来
  5. php : Warning: strftime(): It is not safe to rely on the system's timezone settings.
  6. 触发效果当容器的可见性改变时
  7. 5.Git使用详细教程
  8. Chatbot ⾖瓣电影爬⾍简析
  9. C++11 chrono库
  10. 测试语音识别+麦克风效果
  11. c# 将dwg文件转化为pdf
  12. Zynga旗下魔法三消手机游戏《Harry Potter: Puzzles Spells》邀请玩家一起参加最新推出的游戏内系列活动——俱乐部挑战赛
  13. 百度后端二面有哪些内容,万字总结(一)
  14. VP9编码(3)-- 符号
  15. AltiumDesigner PCB案牍(2)——自定义原理图模板
  16. word endnote插入仅出现大括号问题解决
  17. 使用Android拨打电话功能
  18. 笔记本cpu天梯图2022
  19. SLCP验厂辅导,企业在认证之后便可以将经验证过后的数据信息分享给其它各托管平台
  20. 英特尔微软强强联手开发智能广告技术

热门文章

  1. 大学计算机课挂科补考,【挂科的同学请注意!】关于本学期补考、缓考的通知(转)...
  2. 非阻塞connect用法
  3. 正弦波和方波驱动的优缺点
  4. c语言中各个符号的意义及作用是什么,C语言各类符号意义以及用法是什么?
  5. 位移的单位符号_位移传感器符号
  6. Go的研习笔记-day11(以Java的视角学习Go)
  7. 物联网控制APP入门专题(一)---做物联网APP的几个模式简介
  8. 2020apple教育优惠购买策略
  9. celery异步发送邮箱
  10. 史上最详细蝉道开源安装步骤。