Business Connectivity Services Client Cache
Published: May 2010
Microsoft Business Connectivity Services (BCS) uses a cache to store a copy of the external data that is required by the Business Connectivity Services solutions that are deployed on Microsoft Office 2010 client applications. The cache enables external data to be automatically copied on the client and managed for real-time access, with automatic data synchronization between the cache and the external application. Following are the significant benefits of using a cache on the client to store data locally from the external application:
Increased application throughput: After the data is stored in the cache, it can be used by accessing the cached copy instead of re-fetching the original data from the external business application where the data is expensive to fetch.
Support for disconnected scenarios: Users can continue to work with Office 2010 business applications to manipulate external data seamlessly and efficiently, even when connectivity to the external system is slow, intermittent, or unavailable.
The client cache is implemented as a per-user Microsoft SQL Server 2005 Compact Edition database.
Do not edit the database directly in any way. It is not supported by Microsoft. Instead, use the cache object model to get access to the cache.
The unit of storage in the cache is an entity instance. A process known as BCSSync.exe runs on the client and provides automatic cache refresh and data synchronization of the entity instances. Whenever an operation such as Read, Create, Update, or Delete is performed on an entity instance in the client application, calls are not routed directly to the external application (LobSystemInstance). Instead, the operations are stacked in the operation queue, which is a location in the cache, and then executed one by one depending on the availability of the external application. For more information about how the cache handles each operation, see the topics under Understanding Business Connectivity Services Client Cache to Optimize Your Solutions. The sync process also tries to refresh the cache from the external application at certain intervals. However, the exact time at which the cache is refreshed cannot be predicted and depends on several factors such as the cache refresh interval (ExpireAfter) set by the user and the availability of the external application.