In any client/server application, one of your primary design concerns will be how to best share the data resources. When using either the Jet or remote engine query processor, your design must include code that deals with conflicts caused by instances of your database application and other applications trying to access the same database. Any design must include robust error handling to deal with a variety of contingencies caused by conflicts that arise as multiple applications vie for the same server resources.
If your design calls for a centrally shared Jet database that includes attached tables, each client system must also contain DSNs that are compatible with your database. Since the DSN is maintained on the client and only referenced by name in the shared database attachments, your setup routines must ensure the client DSN description is correct — and remains so — to eliminate any chance that the user might change one or more parameters.
Although the remote database engine is responsible for managing its own page locks and resources, any application, including those that use the Jet query processor, can lock pages on the server for indefinite periods of time.