Hazelcast:便携式序列化:具有相同class-id

时间:2018-01-11 13:18:59

标签: java hazelcast

我最近将群集从3.7.2升级到3.9.2;关掉所有的盒子。

我使用的是Portable Serialization,配置文件中的当前版本号是6.但是,冷启动后,群集会指示不兼容的类定义。

我已经多次重启群集,但仍然存在相同的错误。

对于某些类中的某些字段,系统如何保持不同步,但该类的版本已升级?

日志:

Caused by: 
com.hazelcast.nio.serialization.HazelcastSerializationException: 
Incompatible class-definitions with same class-id: 
ClassDefinition{factoryId=1, classId=8, version=6, fieldDefinitions=[
  FieldDefinitionImpl{index=0, fieldName='feature', type=UTF, classId=0, factoryId=0, version=6}, 
  FieldDefinitionImpl{index=1, fieldName='value', type=BOOLEAN, classId=0, factoryId=0, version=6}]}
VS 
ClassDefinition{factoryId=1, classId=8, version=6, fieldDefinitions=[
  FieldDefinitionImpl{index=0, fieldName='feature', type=UTF, classId=0, factoryId=0, version=0}, 
  FieldDefinitionImpl{index=1, fieldName='value', type=BOOLEAN, classId=0, factoryId=0, version=0}]}

配置:

<serialization>
    <portable-version>6</portable-version>
    <portable-factories>
        <portable-factory factory-id="1">
            com.MyPortableFactory
        </portable-factory>
    </portable-factories>
</serialization>

1 个答案:

答案 0 :(得分:0)

这是Hazelcast库中的错误,已在3.9.4和3.10+中修复。

问题:
https://github.com/hazelcast/hazelcast/issues/12733

修复3.10:
https://github.com/hazelcast/hazelcast/pull/12734

修复3.9.4:
https://github.com/hazelcast/hazelcast/pull/12735