2013-02-07 17 views
1

我在Eclipse中使用Hazelcast v2.5和Maven插件。我试着在Eclipse中运行一个示例程序,在ABCD命名空间中创建3个映射条目。当我在Eclipse中运行我的代码时,它显示此警告消息无法在Hazelcast中创建地图条目

Feb 07, 2013 12:08:23 PM com.hazelcast.impl.ConcurrentMapManager 
WARNING: [192.168.1.36]:5702 [dev] Caller -> RedoLog{name=c:ABCD, redoType=REDO_TARGET_UNKNOWN, operation=CONCURRENT_MAP_MERGE, target=null/connected=false, redoCount=53, migrating=null 
partition=Partition [227]{ 
} 
} 

这会一直持续到重做阈值超过。

Feb 07, 2013 12:08:42 PM com.hazelcast.impl.LifecycleServiceImpl 
WARNING: [192.168.1.36]:5702 [dev] [CONCURRENT_MAP_MERGE] Redo threshold[90] exceeded! Last redo cause: REDO_TARGET_UNKNOWN, Name: c:ABCD 
com.hazelcast.core.OperationTimeoutException: [CONCURRENT_MAP_MERGE] Redo threshold[90] exceeded! Last redo cause: REDO_TARGET_UNKNOWN, Name: c:ABCD 
    at com.hazelcast.impl.BaseManager$ResponseQueueCall.getRedoAwareResult(BaseManager.java:640) 
    at com.hazelcast.impl.BaseManager$ResponseQueueCall.getResult(BaseManager.java:627) 
    at com.hazelcast.impl.BaseManager$RequestBasedCall.getResultAsBoolean(BaseManager.java:437) 
    at com.hazelcast.impl.BaseManager$ResponseQueueCall.getResultAsBoolean(BaseManager.java:544) 
    at com.hazelcast.impl.ConcurrentMapManager$MPut.mergeOne(ConcurrentMapManager.java:1758) 
    at com.hazelcast.impl.ConcurrentMapManager$MPut.merge(ConcurrentMapManager.java:1747) 
    at com.hazelcast.impl.LifecycleServiceImpl$1.run(LifecycleServiceImpl.java:143) 
    at com.hazelcast.impl.executor.ParallelExecutorService$ParallelExecutorImpl$ExecutionSegment.run(ParallelExecutorService.java:212) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
    at com.hazelcast.impl.ExecutorThreadFactory$1.run(ExecutorThreadFactory.java:38) 

为什么会发生这种情况?

请帮忙。

+0

你只是试图加入hazelcast-2.5.jar文件(客户端JAR文件),并试图例子?我并不是建议你不要试试Maven。 –

+0

我导入了所有的jar文件,包括Hazelcast-2.5.jar。它在我的“Maven日食”上运行正常,但在命令提示符终端中没有获得所需的输出。我应该做其他事情来显示我的命令提示符中的映射条目。为什么我这样做呢?我正在尝试为Hazelcast创建一个Java API。建议我一个替代如果任何请。 –

回答

2

你可以做到这上手准系统Java类(我建议你去通过更详细的教程,因为它可能会更有用 - 我还没有过访问Hazelcast服务)以下内容:

  1. 指定在hazelcast.xml文件中的图如下:

    <map name="testMap">  
        <backup-count>1</backup-count> 
        <eviction-policy>NONE</eviction-policy> 
        <max-size policy="cluster_wide_map_size">0</max-size> 
        <eviction-percentage>25</eviction-percentage> 
        <merge-policy>hz.ADD_NEW_ENTRY</merge-policy> 
        <map-store enabled="true"> 
        <class-name>models.test.StoreLoadTestMap</class-name> 
        <write-delay-seconds>5</write-delay-seconds> 
        </map-store> 
        <entry-listeners> 
        <entry-listener include value="true"local="false">models.test.ListenerTestMap</entry-listener> 
        </entry-listeners> 
        </map> 
    

一旦这样做,你可以简单地调用您的Java应用程序如下:

IMap<String, testObject> testMap = Hazelcast.getMap("testMap"); 

现在,您应该能够根据需要在地图上放置/获取值。根据您的使用情况,您可以使用tcp或多播进行复制(如果可能,请使用tcp),并从第二张映射中检索信息以确认数据复制。还请了解数据如何在地图上复制。

希望它可以帮助