生态系统:Terracotta BigMemory Max

来自 PostgreSQL wiki
跳转到导航跳转到搜索

测试流程

BigMemory Max 本身不与数据库交互,因此我们将它作为 Hibernate ORM 的二级缓存进行测试,以 PostgreSQL 作为后端数据库。Hibernate 支持 Ehcache 作为二级缓存,而 BigMemory Max 提供 Ehcache 接口。因此,Hibernate 可以使用 BigMemory Max 作为二级缓存。

Hibernate 拥有一个回归测试套件,用于测试与 Ehcache 的集成。它位于 hibernate-ehcache 目录中。您可以像其他 Hibernate 测试套件一样运行它。参见这里了解流程。

在运行回归测试之前,您需要执行一些预备步骤,使测试套件使用 BigMemory Max。首先,按照安装指南安装 BigMemory Max 并启动 Terracotta 服务器数组。此后,${HibernateSrcDir} 指的是 Hibernate 源代码发行版的顶层目录。

将 BigMemory Max 许可证文件 (terracotta-license.key) 复制到 ${HibernateSrcDir}/project/hibernate-ehcache/src/test/resources/。

为了将您的 BigMemory Max 库添加为回归测试的依赖项,请编辑 ${HibernateSrcDir}/project/hibernate-ehcache/hibernate-ehcache.gradle,如下所示。注释掉对 libraries.ehcache 的现有依赖项,并添加一行文件依赖项。

dependencies { ... // compile( libraries.ehcache ) compile files('${BigMemoryInstDir}/apis/ehcache/lib/ehcache-ee-2.10.2.1.7.jar', '/tuna/bigmem/apis/ehcache/lib/slf4j-api-1.7.7.jar', '${BigMemoryInstDir}/apis/toolkit/lib/terracotta-toolkit-runtime-ee-4.3.2.1.7.jar') ... 

修改 Ehcache 配置文件 ${HibernateSrcDir}/project/hibernate-ehcache/src/test/resources/ehcache.xml,以便使用 BigMemory Max 和 Terracotta 服务器数组。具体来说,将 defaultCache 和缓存元素的 overflowToDisk 属性设置为 false,在 defaultCache 元素下添加 terracotta 元素,并在 ehcache 元素下添加 terracottaConfig 元素。例如

 <defaultCache ... overflowToDisk="false"> <terracotta orphanEviction="false" orphanEvictionPeriod="-1"/> </defaultCache> <cache name="sampleCache1" ... overflowToDisk="false"/> <cache name="sampleCache2" ... overflowToDisk="false"/> ... <terracottaConfig url="localhost:9510"/> </ehcache>