Servoy 7.4.6
Smart Client
A couple of weeks ago, one of our customers encountered a table failure that we are unable to explain.
Our solution manipulates a table of research Protocols with each record having a unique Protocol Number (the Protocol Numbers are not PKs). While the customer was editing a Protocol record (but, not the Protocol Number), the solution locked up, thus forcing the customer to restart the solution. After restarting, the customer noticed that all Protocol records now had the same Protocol Number as the record that was being edited (verified using MS SQL SMS). No other column data was changed in the table...just the Protocol Number column. There were no errors in the log file.
The customer's Servoy application server connects to the customer's remote MS SQL cluster (i.e. Servoy and the SQL cluster are on different computers) via the MS JDBC driver, version 4. The customer's IT staff ran tests (ping, latency, load, etc.) between the server on which Servoy resides and the SQL cluster and found no anomalies. Fortunately, the SQL cluster is backed up every 15 minutes, so getting things 'fixed' was simply a matter of restoring to the latest back up.
We have repeatedly tested the solution code in our office and are unable to reproduce the problem. We also searched for code that would change the Protocol Number in bulk but found none. We use databaseManager.getFoundSetUpdater() function in other modules of the solution but not in the Protocol module nor do those existing function calls access the Protocol data.
What could possibly cause something like this to happen? Any ideas? Looking for answers...