Support Article
Exposed column DateSent Not Populating
SA-1489
Summary
You have exposed several properties in a class. Not all of the new columns are being populated all of the time.
Error Messages
No error message pop-up
Steps to Reproduce
Commit an instance of that class to the database.
Root Cause
You have multiple Java Virtual Machines (JVMs) on your cluster. You use the System Management Application (SMA) tool "Advanced | Reports | Database Class Report" on each JVM, and discover that one or more of the JVMs has the wrong mapping to that colum.
The root cause of this problem is a poor choice of property/column management. You have 2 PRPC properties, one called PropertyName and the other called NameProperty. You have one exposed column called NameProperty (column names written in red for clarity), and you have mapped it to column PropertyName.
By default, no explicit mapping is required to map a property to an exposed column if both have the same name. For your use case, even though you have a property of the same name as the column, you have chosen not to map that property to the column.
When the JVM starts, whichever property is accessed first establishes the mapping for the life of that cycle of the JVM.
- If NameProperty is accessed first, PRPC detects the class mapping and maps it to column PropertyName. Thereafter on that node (until the node recylces) NameProperty is mapped to PropertyName.
- If PropertyName is accessed first, the system looks and does not find any explicit class mapping for PropertyName. However, it does find exposed column PropertyName and so thereafter maps PropertyName into PropertyName. For the rest of that cycle of that JVM, NameProperty is not written to PropertyName (you can only have one property map to an exposed column), but NameProperty is only written into the blob.
Resolution
Either you change the name of exposed column PropertyName to something for which there is no PRPC property of the same name (like "PropName") and then map NameProperty to PropName, or you change the name of the property PropertyName to something which does not match the name of any exposed column, so that there is no chance it will ever get mapped to a column.
Perhaps more correctly, you change your naming scheme so that property NameProperty maps into column NameProperty and there is no need to specify an explicit mapping!
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.