Issue
Some clients using SynMobile have identified intermittent errors being surfaced.
Cause
Dev Team have conducted some internal testing and found that the failure point was the SqlLite database under load. The SqlLite database sits on the web server in a folder such as D:\SynMobile\SqlLite and is used for caching the credentials on the web server for Speed.
When a few client mobile apps connect to the Webservice at the same time the API performs as expected.
The tests found that when there are multiple concurrent connections the Web service would intermittently get this error "Exception occurred ReviveSqlLiteSession"
Resolution (30/10/2018)
A mini refactor project was done as part of this ticket: DSY-12454
The improvements are listed below:
- Remove SqlLite database
- Store all Mobile Session activity in the table: MobileSession
- Store all Mobile API Activity in MobileSessionHistory so there is an audit log of what the SynMobile App users are doing
- Store the PINs in MobilePin
- Split the Session Expiry and PIN Expiry in to separate logic
- Shift these ExpiryMinutes values out of the XML file and in to the Config Table
- SynMobile|Session|KeepAliveMinutes (Default 20160 - 2 Weeks)
- SynMobile|PIN|KeepAliveMinutes (Default 262080 - 26 Weeks)
- Handle session expiry and Pin expiry situations clearer : tell the user the Session or PIN has expired and they need to log in again
Fix Available
Initially available in a Patch Form (rolled out to some test clients):
- WebService V69.13.00
- SynMobile WebService Improvement DBPatch
Compatible with any V68 and V69 version
Clients on earlier versions can have a hot fix applied- please contact support for more information.