我正在使用Bigmemory Max 4.0.5由于terracotta为我的应用程序分配缓存作为hibernate二级缓存,但我在服务器启动时遇到以下异常。
引起:com.tc.config.schema.setup.ConfigurationSetupException:
来自“localhost:9510”服务器的基本配置中的配置数据不遵守Terracotta架构: [0]:第7行,第5列:不允许属性(不允许使用通配符):在元素服务器中安全 [1]:第9行,第9列:元素服务器中的预期元素“服务器”而不是“镜像组” [2]:第28行,第9列:元素服务器中的预期元素'server'而不是'update-check' [3]:第32行,第9列:元素服务器中的预期元素“服务器”而不是“垃圾收集” [4]:第37行,第9列:元素服务器中的预期元素'server'而不是'restartable' [5]:第38行,第9列:元素服务器中的预期元素“服务器”而不是“客户端重新连接窗口”
我的 tc-config.xml 如下: -
<?xml version="1.0" encoding="UTF-8" ?>
<tc:tc-config xmlns:tc="http://www.terracotta.org/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-8.xsd">
<servers>
<server host="localhost" name="MyServerName">
<!-- Specify the path where the server should store its data. -->
<data>E:\Bratton\Pocs\bigmemory-max-4.0.5\data-test</data>
<!-- Specify the port where the server should listen for client
traffic. -->
<tsa-port>9510</tsa-port>
<jmx-port>9520</jmx-port>
<tsa-group-port>9530</tsa-group-port>
<!-- Enable BigMemory on the server. -->
<offheap>
<enabled>true</enabled>
<maxDataSize>512m</maxDataSize>
</offheap>
</server>
<!-- Add the restartable element for Fast Restartability (optional). -->
<restartable enabled="true"/>
</servers>
<clients>
<logs>logs-%i</logs>
</clients>
</tc:tc-config>
以下是 ehcache.xml : -
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">
<terracottaConfig url="localhost:9510"/>
<defaultCache
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120">
<terracotta/>
</defaultCache>
</ehcache>
以下是依赖关系我正在使用
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.4.Final</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.terracotta</groupId>
<artifactId>terracotta-toolkit-runtime-ee</artifactId>
<version>4.0.5</version>
</dependency>
我尝试了各种依赖版本的组合,但都没有帮助。请让我知道这有什么问题。
提前致谢。
答案 0 :(得分:0)
您是否尝试使用镜像组标记? 有效配置如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<tc:tc-config xmlns:tc="http://www.terracotta.org/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.terracotta.org/schema/terracotta-8.xsd">
<servers>
<mirror-group group-name="tsa01">
<server host="localhost" name="MyServerName">
<!-- Specify the path where the server should store its data. -->
<data>E:\Bratton\Pocs\bigmemory-max-4.0.5\data-test</data>
<!-- Specify the port where the server should listen for client
traffic. -->
<tsa-port>9510</tsa-port>
<jmx-port>9520</jmx-port>
<tsa-group-port>9530</tsa-group-port>
<!-- Enable BigMemory on the server. -->
<offheap>
<enabled>true</enabled>
<maxDataSize>512m</maxDataSize>
</offheap>
</server>
</mirror-group>
<!-- Add the restartable element for Fast Restartability (optional). -->
<restartable enabled="true"/>
</servers>
<clients>
<logs>logs-%i</logs>
</clients>
</tc:tc-config>
答案 1 :(得分:0)
hibernate-ehcache
取决于ehcache-core
版本早于您指定的版本。尝试按如下方式禁用此依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.4.Final</version>
<exclusions>
<exclusion>
<artifactId>ehcache-core</artifactId>
<groupId>net.sf.ehcache</groupId>
</exclusion>
</exclusions>
</dependency>