Hi.
I'm diving in at the deep end with TC 3.7.0 and ehcache trying to set up a redundant cluster across 3 nodes. I seem to bring up the cluster nodes OK, but when running the client I receive errors like this:
Code:
*******************************************************************************
The configuration data in the base configuration from server at 'w2-gst-m3k-02:9510' does not obey the Terracotta schema:
[0]: Line 10, column 5: Attribute not allowed (no wildcards allowed): secure in element servers
*******************************************************************************
Looks like a XML validation error.
Part of my tc-config.xml looks like this:
Code:
<?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-6.xsd">
<servers>
<server host="w2-gst-m3k-02" name="server2a">
<data>/tmp/terracotta/server2a-data</data>
<logs>/tmp/terracotta/server2a-logs</logs>
<statistics>/tmp/terracotta/server2a-stats</statistics>
<dso-port>9510</dso-port>
</server>
...
Snooping the network to see the config being retrieved I see (in part):
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<con:tc-config xmlns:con="http://www.terracotta.org/config">
<system xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<configuration-model>development</configuration-model>
</system>
<clients xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<logs>/tmp/terracotta/client-logs</logs>
</clients>
<servers secure="false" xmlns:tc="http://www.terracotta.org/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<server host="w2-gst-m3k-02" name="server2a" bind="0.0.0.0">
<data>/tmp/terracotta/server2a-data</data>
<logs>/tmp/terracotta/server2a-logs</logs>
<statistics>/tmp/terracotta/server2a-stats</statistics>
<dso-port bind="0.0.0.0">9510</dso-port>
<jmx-port bind="0.0.0.0">9520</jmx-port>
<l2-group-port bind="0.0.0.0">9530</l2-group-port>
...
Sure enough, the 'secure' attribute isn't defined in terracotta-6.xsd.
So, I imagine, that somehow the client isn't using terracotta-7.xsd to validate the returned schema.
Here's my ehcache.xml FWIW
Code:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="YCSB">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
<cache name="terraCache"
maxElementsInMemory="10"
maxElementsOnDisk="0"
eternal="true"
memoryStoreEvictionPolicy="LFU">
<terracotta/>
</cache>
<terracottaConfig url="w2-gst-m3k-02:9510,w2-gst-m3k-03:9510,w2-gst-m3k-04:9510"/>
</ehcache>
I tried referencing http://www.terracotta.org/schema/terracotta-7.xsd in my tc-config.xml as the schemaLocation, but that file doesn't seem to exist.
Thanks for any insights.
--Jens