-
Type: Feature Request
-
Status: Closed (View Workflow)
-
Priority: Blocker
-
Resolution: Completed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Core
-
HLE (1 man day = 8 hrs):20
This comes up specifically after wasting a lot of time on CFAMX-2023. Basically, the way that ServerManager is using NHibernate is flawed since data is being modified by the Mobile Service Layer which makes the ServerManager's NHibernate cache mostly invalid.
Poking around in the CFACustom solution we appear to be trying to work around all of this through various means of manual Refresh, Evict and Clear calls which all have their own issues and negative side-effects. We should look into better NHibernate usage or possibly new data layer options that will be easier to use and maintain.
Note: it may also we worth looking into also replacing the Mobile Service Layer data model Our current one jumps through a lot of hoops to pull data as one model and transform it a couple of times before it gets to the Angular code.
Potential Fix:
After a couple hours of reading solutions, our best approach may be to apply the fix for CFAMX-2023 to all the places outside of MxConnect that we use nHibernate with entity mapping. Simply make all those calls transactional and evict the session before making the call. There aren't many places that we'd have to update, and we're moving away from using nHibernate's entity mapping as we try to put more db access into stored procedures.
- is implemented by
-
CFAMX-8515 Research Spike - Identify all places nHibernate is used outside of Mobile
- Closed
-
CFAMX-8520 Make all nHibernate calls transactional
- Closed