Hi,
Anyone got any ideas on how to handle the following.
A user updates customer X on System A and system A is synchronised with System B.
At the same time another user updates customer X on System B which is synchronised with System A.
Who wins? How does the middleware hand this? I know there is the issue of who is right but only the middleware will know there is a problem.
Anyone solved this or got any thoughts. They would be greatly appreciated.
Thanks
Geoff
I have worked on a number of mobile devices with synchronization. You have to set up some rules to apply against the sync.
- A overwrites B always.
- B overwrites A always.
- Develop custom interface for manual intervention.
Or, you could come up with a rule that examines both pieces of data, extracts net changes and then applys the rule:
- Static data is always changed: phone number, contact etc. I would use a time-stamp field to determine which data is newest. Or, if data is changed for a column or set of joins, design some kind of switch (y/n column or numeric column) that determines that an update against the biz rules is necessary.
or with dynamic data…
- Let’s say credit limit is $50,000.00. System A shows liability of $10,000 of orders and credit available of $40,000.00. System B receives another order input for $15,000.00. The net credit for the customer “x” is now $25,000.00. Total orders are 2, and balance on books is $25,000.00. The orders are separate, but the credit limit has changed.
Hope this helps a little. But, in the end, usually there is a MASTER that contains all of the relevant data.
r.