We have an Access Automation Software where we are opening up an instance of MS Access 2016 using COM and fetching some data of tables/reports etc from the Access Database.
Once done, we close the MS Access Database by -
1. Calling Database.Close()
2. Assigning null value to the referenced variables
3. Calling CloseCurrentDatabase() of the Access Application Object
4. Finally Calling Quit() method of the Access Application Object
5. Assigning null value to the Access Application referenced variables
6. Calling GC.Collect() & GC.WaitForPendingFinalizers() in a separate thread.
Doing all of the above kills MS Access 2013 instances but fails to do so for MS Access 2016.
The processes linger on for some time and keep consuming ~50 MB RAM and ~10% CPU even though our automation is completed and our code has quit. We find that these processes get killed some time later.
This lingering on of processes is causing High CPU / RAM usage issues as we sometimes find more than 50 instances open.
Is there any known issue in MS Access 2016 while closing or does it connect to post activity (like connect to some server and send data) when its Application.Quit is called.
Would appreciate some advice in this regards.