3.
Cache客户端配置:Hibernate配置
3.1)
hibernate.cfg.xml
-
<property name="hibernate.cache.provider_class">
-
com.tangosol.coherence.hibernate.CoherenceCacheProvider</property>
-
<property name="hibernate.cache.use_minimal_puts">true</property>
- <property name="hibernate.cache.use_query_cache">true</property>
3.2)
启用查询缓存的代码
要确保代码中使用查询,即在创建 query 后,打开开关,并设置cacheRegion,本例中使用统一的
cacheRegion “HIBERNATE_QUERY_CACHE”
-
query.setCacheable(true);
- query.setCacheRegion(HIBERNATE_QUERY_CACHE);
3.3)
启用实体L2缓存
在 hbm.xml 中配置 节点,为VO类启用实体缓存。
-
-
<class name="com.xxx.system.perm.persistent.PermVO" table="SYS_PERM">
- <cache usage="nonstrict-read-write"/>
3.4)
客户端缓存配置
客户端要使用与服务端同样的缓存配置 hibernate-cache-config.xml,
否则可能无法进行存储。 本例将其复制过来,放到classpath 下的
config目录中,因此,客户端启动命令(如果是tomcat,weblogic,websphere,修改相应cmd或bat文件)中也要加java参数:
引用
-Dtangosol.coherence.cacheconfig=config/hibernate-cache-config.xml
4.
启动客户端Hibernate应用程序
执行数据查询操作,观察日志,以确定数据存储到了M2的三个节点中。
4.1)
Coherence客户端启动日志
引用
2008-10-14
17:56:13.609 Oracle Coherence 3.3.1/389 (thread=main, member=n/a): Loaded
...
2008-10-14 17:56:13.625 Oracle Coherence 3.3.1/389
(thread=main, member=n/a): Loaded ...
2008-10-14 17:56:13.625
Oracle Coherence 3.3.1/389 (thread=main, member=n/a): Optional
...
Oracle Coherence Version
3.3.1/389
Grid Edition: Development
mode
Copyright (c) 2000-2007 Oracle. All rights
reserved.
2008-10-14 17:56:15.296 Oracle Coherence GE
3.3.1/389 (thread=Cluster, member=n/a): Service Cluster
...
2008-10-14 17:56:15.515 Oracle Coherence GE 3.3.1/389
(thread=Cluster, member=n/a): This Member(Id=5,...
2008-10-14
17:56:15.609 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a):
Member(Id=2, Ti...
2008-10-14 17:56:15.609 Oracle Coherence GE
3.3.1/389 (thread=Cluster, member=n/a): Member(Id=3,
....
2008-10-14 17:56:15.703 Oracle Coherence GE 3.3.1/389
(thread=main, member=5):
4.2) 观察Hibernate
SQL输出
记得在log4j.xml 中打开相应的日志开关:
-
<category name="org.hibernate.SQL">
-
<priority value="DEBUG" />
-
<appender-ref ref="CONSOLE" /> <!-- ASYNC_Hibernate_SQL -->
- </category>
观察日志输出
引用
Execute
No. 1 ********************
2008-10-14 18:00:44,687
[DEBUG](AbstractBatcher.java,346) - select this.PERMCODE as PERM1_15_0_,
....
(No.1)result size:1
Execute No. 2
********************
(No.2)result
size:1
Execute No. 3
********************
(No.3)result
size:1
Execute No. 4
********************
(No.4)result
size:1
Execute No. 5
********************
(No.5)result
size:1
第一次执行了sql,
后面sql都未执行,并且查询结果数为1,和第一次执行sql的结果相同。表明之后从Coherence中获取了数据,
缓存生效。
4.3) 查看M2
上的cache数据:
在M2上的节点控制台切换到 HIBERNATE_QUERY_CACHE
cache下面,执行:
引用
cache
HIBERNATE_QUERY_CACHE
并执行Coherence命令
引用
list
命令查看所有已在Cache中存储的数据。
下面的日志每个 sql:开头的就是一个对Query的缓存项。
引用
Map
(HIBERNATE_QUERY_CACHE): list
sql: select managelogv0_.LOGID as
LOGID5_, managelogv0_.OPRTIME as
TE5_, managelogv0_.OPRACTION
as OPRACTION5_, managelogv0_.OPRTYPE a
OG managelogv0_;
parameters: ; named parameters: {}; first row: 0;
, 285, 286,
287, 288, 321]
key1 = value1
sql: select
this.PERMCODE as PERM1_15_0_, this.MODULECODE as
MO
RM5_15_0_, this.PORTNO as PORT6_15_0_ from (select
t.perm_code a
t.module_code as
moduleCode,
t.perm_name as
permName,
t.perm_desc as
permDesc,
t.port_no as portNo,
t.perm_type_code as permTypeCode
from sys_perm
t join sys_role_perm o
on t.perm_code =
o.perm_code
where o.role_code = ? ) this ; parameters: ;
named parameters:
sql: select count(*) as col_0_0_ from
SYS_MANAGELOG managelogv0_; p….
OK,
大功告成,成功将Coherence与Hibernate集成,Hibernate通过Coherence进行实体数据,查询数据的缓存。
相关推荐
6.Coherence企业级缓存(五)与Hibernate集成(2) .pdf
5.Coherence企业级缓存(五)与Hibernate集成(1).pdf
Coherence企业级缓存的系列 (一) 特点 (二) QuickStart和编程 (三) 四种缓存类型 (四) 数据管理模式 (五)与Hibernate集成 (六) JMX 管理和监控
3.Coherence企业级缓存(三) 四种缓存类型.pdf
Coherence企业级缓存(二) QuickStart和编程.pdf
7.Coherence企业级缓存(六) JMX 管理和监控.pdf
8.Coherence企业级缓存(七) 性能调优.pdf
1.Coherence企业级缓存(一) 特点.pdf
4.Coherence企业级缓存(四) 数据管理模式.pdf
Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。 压缩包里面有最新版Oracle Coherence 3.7.1,加上中文资料。
Oracle Coherence是一个企业级的分布式集群缓存框架。具有自管理,自恢复,高可用性,高扩展性等优良特点,在电信BOSS等项目中有很大的应用价值。本文对它的特点,架构,基本使用方法,JMX管理,调优等进行简要但...
coherence安装配置,coherence缓存集群搭建
coherence.jar和coherence-work.jar下载。
coherence.jar,coherence-work.jar,tangosol.jar
openfire 二次开发缺少包coherence-work.jar,coherence.jar,tangosol.jar
Oracle Coherence中文开发文档
Mandel L., Wolf E. Optical Coherence and Quantum Optics (CUP, 1995)(ISBN 0521417112)(400dpi)(KA)(T)(1190s)_PEo_.djvu
openfire开发配置需要的3个jar包coherence.jar、coherence-work.jar、tangosol.jar
coherence.jar,coherence-work.jar,tangosol.jar