2014-03-26 38 views
1

嗨,我正在使用YCSB進行Pivotal Gemfire的基準測試我的Gemfire服務器運行正常,並使用以下命令運行基準測試。在Gemfire中使用YCSB時出錯

倉/ YCSB負載的GemFire -P工作負載/ workloada -p gemfire.serverhost = XXXX -P的GemFire結合/ CONF/cache.xml -p gemfire.serverport = 40404 -s> load.txt

加載工作量... 開始測試。 0秒:0次操作; 線程「Thread-1」中的異常java.lang.IllegalStateException:使用ClientCacheFactory時,必須在cache.xml中使用client-cache。 在com.gemstone.gemfire.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:316) 在com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:274) 在com.gemstone.gemfire.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:3495) at com.gemstone.gemfire.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:926) at com.gemstone.gemfire。在com.gemstone.gemfire.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:533) 處com.gemstone.gemfire.cache.client.ClientCacheFactory處的internal.cache.GemFireCacheImpl.init(GemFireCacheImpl.java:708) 。 basicCreate(ClientCacheFactory.java:207) at com.gemstone.gemfire.cache.client.ClientCacheFactory.create(Cli entCacheFactory.java:161) at com.yahoo.ycsb.db.GemFireClient.init(GemFireClient.java:125) at com.yahoo.ycsb.DBWrapper.init(DBWrapper.java:63) at com.yahoo。 ycsb.ClientThread.run(Client.java:189) 0秒:0次操作;

請告訴任何人能告訴我在哪裏,我走錯了

在此先感謝

+0

你可以顯示你的cache.xml文件嗎? – Tom

+0

<?xml version =「1.0」encoding =「UTF-8」?> <!DOCTYPE cache PUBLIC「 - // GemStone Systems,Inc. //GemFire Declarative Cache 7.0 // EN」「http:// www。 gemstone.com/dtd/cache7_0.dtd「> <! - 添加片段元素在這裏 - > <區域名稱=」用戶表」 REFID =‘分區’/> user1802481

+0

這是當前使用的cacheserver – user1802481

回答

0

在你GemFireClient.java要設置客戶端緩存與ClientCacheFactory類,但你是給了cache.xml它的配置是指定一個cache元素而不是client-cache元素。嘗試更改您的cache.xml以使用類似於以下示例的client-cache。請注意,在cache.xml中配置客戶端緩存時,您將需要使用與上面所使用的DTD不同的DTD。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE client-cache PUBLIC 
    "-//GemStone Systems, Inc.//GemFire Declarative Caching 7.0//EN" 
    "http://www.gemstone.com/dtd/cache7_0.dtd"> 
<client-cache copy-on-read="false" > 
    <region name="usertable" refid="PARTITION"/> 
</client-cache> 
+0

@ tom我在xml中進行了上述更改之後嘗試過,但它在啓動服務器時顯示錯誤: 線程「main」中的異常java.lang.IllegalStateException:當cache.xml使用客戶端時必須使用ClientCacheFactory -cache。 \t在com.gemstone.gemfire.internal.cache.xmlcache.ClientCacheCreation.create(ClientCacheCreation.java:189) \t在com.gemstone.gemfire.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:293) \t at'code' – user1802481

+0

您可以顯示GemFireClient.java和客戶端的cache.xml(您在ycbs啓動線中提到的那個)的代碼嗎? – Tom

+0

正在使用的Gemfire客戶端位於此鏈接[link] https://github.com/brianfrankcooper/YCSB/blob/master/gemfire/src/main/java/com/yahoo/ycsb/db/GemFireClient.java 和使用相同的client.xml,你在上面提到的ananswer上面提到了 – user1802481

0

運行YCSB客戶端時不需要指定cache.xml。 gemfire-binding/conf文件夾中的cache.xml旨在提供給GemFire服務器。