我最近将群集从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>
答案 0 :(得分:0)
这是Hazelcast库中的错误,已在3.9.4和3.10+中修复。
问题:
https://github.com/hazelcast/hazelcast/issues/12733