当服务器无法处理查询时,Hazelcast会挂起

时间:2014-11-07 12:34:56

标签: hazelcast

我想用IMap.executeOnKey方法执行超类型AbstractEntryProcessor(让我们说SomeEntryProcessor)的实例。 服务器端ClassLoader没有此类(SomeEntryProcessor)。 所以它预计将失败:

java.lang.ClassNotFoundException: com.package.SomeEntryProcessor
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.package.SomeEntryProcessor
    at com.hazelcast.nio.serialization.DefaultSerializers$ObjectSerializer.read(DefaultSerializers.java:190) ~[hazelcast-3.2.3.jar:3.2.3]
    at com.hazelcast.nio.serialization.StreamSerializerAdapter.read(StreamSerializerAdapter.java:40) ~[hazelcast-3.2.3.jar:3.2.3]
    at com.hazelcast.nio.serialization.SerializationServiceImpl.readObject(SerializationServiceImpl.java:279) ~[hazelcast-3.2.3.jar:3.2.3]
    at com.hazelcast.nio.serialization.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:433) ~[hazelcast-3.2.3.jar:3.2.3]
    at com.hazelcast.map.client.MapExecuteOnKeyRequest.read(MapExecuteOnKeyRequest.java:88) ~[hazelcast-3.2.3.jar:3.2.3]

但是在此executeOnKey永远挂起之后。 我相信这是因为方法

中的无限等待
ClientCallFuture.get(long timeout, TimeUnit unit) {
  ...
  this.wait(waitMillis); // line 103 in hazelcast 3.2.3
}

有没有人见过同样的人? 创建了问题https://github.com/hazelcast/hazelcast/issues/3842,但未收到回复

1 个答案:

答案 0 :(得分:0)

抱歉不知怎的错过了这个问题。你能试试3.3.x版本吗?我想这个版本的问题已得到修复。