本章提供了一步一步的建立和运行一个基本的连贯性的例子说明,并演示了许多基本的连贯性概念。示例应用程序是一个简单的Hello World应用程序,并作为一个独立的Java应用程序和JSP应用程序执行。最后,一个JDeveloper部分已被列入设立JDeveloper中开发的连贯性时,提供一些基本指令。
注意事项:
在本章的例子是基本的,仅用于教的一般概念。对于更高级的例子,下载的文档库中包含相干的例子。
本章包含以下各节:
任务1:定义缓存示例
任务2:配置和启动示例集群
任务3:创建和运行一个基本的coherence 独立应用程序
任务4:创建和运行一个基本的coherence JavaEE的Web应用程序
使用JDeveloper连贯性发展
缓存缓存配置部署描述符中定义,被称为在一个应用程序名称。允许缓存配置更改,而无需改变应用程序代码。以下缓存配置映射到缓存的名字打招呼,例如定义了一个基本的分布式缓存。
要定义的例子缓存:
创建一个XML文件名为example-config.xml中。
复制下面的分布式缓存定义文件:
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
保存并关闭该文件。
缓存托管Coherence 集群。在运行时,任何JVM上运行的进程的Coherence 自动加入集群,并可以访问高速缓存和其它集群提供服务。当JVM加入集群时,它被称为群集节点,或者,一个群集成员。本章中的示例应用程序,两个独立的Java进程形成集群:一个缓存服务器进程和Hello World应用程序的过程。为简单起见,这两个过程是在单个计算机上并置。默认情况下,配置的缓存服务器来存储缓存数据。
示例集群使用一个业务覆盖文件修改的默认群集配置。特别是,默认配置被修改,以确保这两个过程,不要试图加入一个现有的连贯性可能会在网络上运行的群集创建一个私有集群。默认的配置也被修改, example-config.xml的缓存配置文件而不是默认的缓存配置文件加载。
要配置和启动集群示例:
创建一个文件名为tangosol-coherence-override.xml.
添加下面的的覆盖配置和更换群集名和端口值是唯一的,这个星团。例如,使用你的名字群集名称和您的电话号码为端口的最后四位数字。
xmlns="http://xmlns.oracle.com/coherence/coherence-operational-config" xsi:schemaLocation="http://xmlns.oracle.com/coherence/ coherence-operational-config coherence-operational-config.xsd">
example-config.xml
将文件保存到保存的 example-config.xml文件的同一目录下。
在命令提示符下,启动缓存服务器实例使用DefaultCacheServer类,包括位置的coherence.jar库和配置文件作为一个Java-cp选项。例如:
java -cp COHERENCE_HOME\config;COHERENCE_HOME\lib\coherence.jar com.tangosol.net.DefaultCacheServer
步骤3是一个多部分的步骤,包括一个示例Hello World应用程序和用于运行和验证的示例的说明。该应用程序运行在命令行中,并开始与一个缓存服务器,加入一个缓存节点。该应用程序将键名为K1值的Hello World!进入招呼例如缓存,然后获取并打印出价值的关键在退出之前。最后,其他群集节点开始验证,关键是在缓存中。
应用程序使用的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();
}
}
要运行独立的应用实例:
在命令提示符下,编译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应用程序退出。
在这个例子中的缓存服务器的配置,在默认情况下,高速缓存的数据存储。数据是提供给所有的集群成员后仍成员离开集群。例如,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步是多部分的步骤,其中包括Hello World应用程序重新实现一个JSP页面。说明包括作为Web应用程序部署到JavaEE服务器的包装样品。该应用程序运行在应用服务器上,并开始加入与缓存服务器的高速缓存节点。该应用程序将键名为K2的值的Hello World!进入招呼例如缓存,然后获取并打印出价值的关键在退出之前。最后,其他群集节点开始验证,关键是在缓存中。
要创建示例Web应用程序:
创建一个基本的Web应用的目录结构如下:
/
/WEB-INF
/WEB-INF/classes
/WEB-INF/lib
复制下面的JSP到一个文本文件,将文件保存为hello.jsp中的Web应用程序的根目录。
例4-2 Hello World示例JSP
<%@ 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();
%>
以下空Web应用程序部署描述符复制到一个文本文件,将文件保存为/ WEB-INF目录下的web.xml。
到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
要部署和运行Web应用程序的例子:
部署hello.war文件在JavaEE服务器。
从一个浏览器,运行“Hello World应用程序访问hello.jsp,在文件中使用以下URL。替换主机和端口部署特定的值。
http://host:port/hello/hello.jsp
Hello World应用程序启动。缓存工厂实例被创建并成为群集成员。 K2键的Hello World!值被装入打招呼例如缓存。关键是从缓存中检索,并在浏览器中显示该值。最后,缓存工厂关闭和离开集群。
在这个例子中的缓存服务器的配置,在默认情况下,高速缓存的数据存储。数据是提供给所有的集群成员后仍成员离开集群。例如,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!
本节上如何设置JDeveloper中的连贯性发展提供了基本的指令。说明是在IDE中运行的连贯性,这是一个在开发过程中常用的方法。同时指示具体到JDeveloper,同样的方法应该可以与任何IDE。请参阅IDE的文档的具体说明。
在JDeveloper中运行的Coherence
在JDeveloper中查看线程转储
在JDeveloper创建配置文件
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键看到一个有效的命令列表。
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中查看。
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开头的文件中添加下面的架构参考:
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的文件。 15重复步骤8至12,创建一个名为Tangosol的相干override.xml的的的业务覆盖文件。在 运行时,这个文件必须在classpath中找到。 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.
14保存缓存的coherence-cache-config.xml 文件。
16在文件开头添加下面的架构引用: