currently I'm working on a project with the following setting:
- There is a proprietary application which performs transactions on a Microsoft Access database (which is actually stored as an .mdb file)
- The API of the application doesn't have enough functionality for the requirements we're facing
- Our application has direct access to the database
We're designing a C# application which has to react to events which are not triggered through the API, so the only way I can think of is to somehow observe the database directly and react accordingly to custom events.
One approach would probably be to query the DB time triggered and react, but this possibly leads to performance issues when the DB is large. I would rather appreciate an approach, where the DB itself notifies our application if specified events occur.
EDIT: The proprietary application is Enterprise Architect modeling tool, so the expected number of concurrent users will definitely not exceed 10 users and the database size will not be larger than 50 MB. Would it probably be an acceptable solution to outsource the polling activity in a separate thread and notify the rest of the application by events?
Concerning the number of users and database size, which load can the MS Access database approximately handle?
Is there any well-known pattern/approach for this kind of problem available and if you don't know any, how would you face this problem?