Мы используем Gemfire PCC в качестве одного из наших общих решений для кэширования. Где клиенты будут использовать gemfire в качестве службы кеширования. Для достижения этой цели у нас есть общая модель данных, определенная с полями имени и значения. Таким образом, для n регионов это будет один и тот же класс.
Проблема в том, что когда происходит первое размещение или размещение, тип PDXType для этого типа класса был зарегистрирован со вставленными полями. С этого момента каждый кеш использует один и тот же PDXType из-за того же типа класса.
Допустим, я вставил ниже запись Region1 - foo.GenericClass
- имя = Имя, значение = Abc
- name = LastName, value = Def
После этого PDXType будет зарегистрирован с
info 2018/07/06 12:22:24.213 EDT <http-nio-8080-exec-4> tid=0x45] Caching PdxType[dsid=0, typenum=14294267
name=foo.GenericClass
fields=[
_cacheName:String:0:idx0(relativeOffset)=0:idx1(vlfOffsetIndex)=-1
FirstName:String:identity:1:1:idx0(relativeOffset)=0:idx1(vlfOffsetIndex)=1
LastName:String:identity:2:1:idx0(relativeOffset)=-2:idx1(vlfOffsetIndex)=-1]]
С этого момента для всех операций с foo.GenericClass с использованием того же PDXType.
Когда я пытаюсь вставить ниже запись вместо AddressLine1, она сохраняется как FirstName как имя поля в Region2.
Region2 - foo.GenericClass
- имя = AddressLine1, значение = 123 Main St
- имя = Город, значение = Атлата
Есть ли способ вставить данные в разные регионы, используя один и тот же объект домена, и зарегистрировать свои собственные типы PDXTypes во время сериализации? Я упустил здесь какую-то простую вещь?