[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Virtual Metlhods | questions

Also, I cannot use the session customzier, as that time, Gird Cache/CoherenceReadCustomizer (TLG/Coherence) is not fully initialized. As a result, I cannot retrieve the setup metadata which drives the mappings creations for the dynamic fields.
NOTE > For CoherenceReaderCustomizer we need cache warming to query non primary key.
On 25-07-2012 12:10 AM, gaurav malhotra wrote:
I am using Eclipselink 2.3 patch. The metadata source repository I think is not available in this release. If yes, please point to some examples.
I can use the session customization approach. To my best of knowledge, the session customizer will not be triggered after successful login. So in live application, if new dynamic fields are added, how can I trigger the session customizer. Or are you pointing to some other type of customizer???
On 25-07-2012 12:04 AM, Christopher Delahunt wrote:
Through a metadata source repository, or the customizer approach. Your app must record the changes that are needed somehow and then signal that the session needs to pick them up using refreshMetadata. The app should not directly change the running session.

On 2012-07-24, at 5:47 PM, gaurav malhotra <gaurav.malhotra@xxxxxxxxxx> wrote:

Hi Chris,
It's the requirement of my product - Dynamic Fields can be configured at the runtime and should be picked up in live application with zero down time. Its for the dynamic fields I am creating the mappings.
How to accomplish above reqirement?


~Gaurav
On 24-07-2012 11:29 PM, Christopher Delahunt wrote:
This would occur if the mapping has not been initialized; initialization occurs during session login. Earlier posts showed mappings being added through a session customizer which get called prior to login. How and when is this mapping added?

Calling refreshMetadata as Tom mentions creates a new session from the metadata, and would call customizers on it before logging in. If your customizer picks up the new mapping changes, then that might explain why it works for you, since they get initialized with the new session login.

It is not a good idea to make mapping/descriptor changes to active sessions after login has occurred.

On 24/07/2012 5:05 PM, gaurav malhotra wrote:
ava.lang.NullPointerException
at
org.eclipse.persistence.mappings.ForeignReferenceMapping.valueFromRowInternal(ForeignReferenceMapping.java:2019)



at
org.eclipse.persistence.mappings.ForeignReferenceMapping.valueFromRow(ForeignReferenceMapping.java:1987)



at
org.eclipse.persistence.mappings.ForeignReferenceMapping.buildCloneFromRow(ForeignReferenceMapping.java:276)



at
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildAttributesIntoWorkingCopyClone(ObjectBuilder.java:1548)



at
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildWorkingCopyCloneFromRow(ObjectBuilder.java:1694)



at
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObjectInUnitOfWork(ObjectBuilder.java:664)



at
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:601)



at
org.eclipse.persistence.internal.descriptors.ObjectBuilder.buildObject(ObjectBuilder.java:560)



at
org.eclipse.persistence.queries.ObjectLevelReadQuery.buildObject(ObjectLevelReadQuery.java:717)



at
org.eclipse.persistence.queries.ReadAllQuery.registerResultInUnitOfWork(ReadAllQuery.java:769)



_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users