Replicatieproblemen in slaapstand - moet de sessie echt worden gerepliceerd?

Ik heb een vreemd geval ontdekt bij het proberen om een ​​cachesleutel voor het 2e niveau te dupliceren na het bijwerken van het object.

De cachesleutelstructuur is als volgt:

cacheKey = {org.hibernate.cache.CacheKey}
|- key = {my.own.serializable.class}
|- type = {org.hibernate.type.ComponentType}
| |- typeScope = {org.hibernate.type.TypeFactory$TypeScopeImpl}
| | |- factory = {org.hibernate.impl.SessionFactoryImpl}
| |- propertyNames = {...}
| |- propertyTypes = {...}
| |- propertyNullability = {...}
| |- propertySpan = 2
| |- cascade = {...}
| |- joinedFetch = {...}
| |- isKey = true
| |- tuplizerMapping = {...}
|- entityOrRoleName = {java.lang.String} "my.Entity"
|- entityMode = {org.hibernate.EntityMode}
|- hashCode = 588688

Het probleem dat ik hier kan zien is dat cacheKey.type.typeScope verwijst naar de lokale o.h.i.SessionFactoryImpl die wordt gerepliceerd. Moet typeScope (of een van zijn voorouders) niet als tijdelijk worden aangemerkt?

Als ik naar de klasse o.h.t.ComponentType kijk, zie ik dat het kenmerk typeScope helemaal niet in deze klasse wordt gebruikt, maar alleen in de constructor wordt geplaatst en bewaard. Is dit een bug in Hibernate?

OPMERKING: o.h.t.ComponentType wordt gebruikt wanneer de entiteit een samengestelde sleutel heeft en daarvoor een speciaal ID-object gebruikt.

We use Hibernate v3.6.7 and Ehcache v2.4.4. This has also been posted on the Hibernate Users forum.

BEWERK: Ik heb HHH-6880 zonder veel succes tot nu toe geopend.

Ik heb ook een vergelijkbaar bericht geplaatst op de ehcache-gebruikersmailinglijst en Alex @ Terracotta stelde voor dat dit een echt probleem was, waarschijnlijk geïntroduceerd door HHH-5182 in versie 3.6 en ook van invloed op zaken als Ehcache serialisatie op schijf. Hier is een link naar hibernate-dev thread .

5

1 antwoord

Lijkt erop dat het Hibernate-team denkt dat dit is opgelost in 4.0.1, door HHH-6822 .

0
toegevoegd