Answered by:
Error code 25101 using ReplicaMetadata

Question
-
Hi all,
I'm using Microsoft Sync Framework 2.0 to sync data between a file and the Outlook. After sync with a lot of data (about 700 contacts) the metadata saved has around 596kb. If I change one item and try to sync again I'll get an Exception with the following message: "A storage engine operation failed with error code 25101".
If I close the application and wait about 1 hour (if I wait minus time I 'll get the error 25101 again), the app will sync again with success. I'm trying to investigate if I need to release some objects, but the code seems to be fine.
Trying to investigate the error 25101 I discovered that it is: SSCE_M_OUTOFBUFFERPOOLSPACE: SQL Server Compact has exceeded the buffer size. The default size can be increased on initialization by modifying the ssce: max buffer size property.
But, I didn't find any way to change the max buffer size of my MetadataStore or my SqlMetadataStore, or in my ReplicaMetadata
This problem happens if I'm working on Windows XP. But using Windows Vista the application works fine.
Do you have any idea to help me to solve this problem?
Tuesday, March 2, 2010 3:49 PM
Answers
-
Hi -
JuneT is correct about the way to increase the buffer size but since you have no access to the connection string( we are not exposing it ), you cannot fix your problem like this. However, it makes no sense that you are closing the application and still cannot immediately sync. The metadata store is loaded in-proc and the moment the process exits - the store is unloaded. Can you confirm that when you close the application - it has definitely died?
Specifically hitting the buffer pool size can be reduced - by reducing the number of rows you are committing in a single transaction. Commit more frequently and this should fix the problem.
Thanks
Deepa
Deepa ( Microsoft Sync Framework)- Marked as answer by Sid Singh [MSFT]Microsoft employee Monday, March 15, 2010 7:00 PM
Tuesday, March 2, 2010 7:01 PMAnswerer
All replies
-
i think you can pass the max buffer size property in the connection string: e.g., Source=C:\Temp\mySQLCEDB.sdf; SSCE:Max Buffer Size=2048
- Proposed as answer by Patrick S. Lee Tuesday, March 2, 2010 6:24 PM
- Unproposed as answer by Deepa ChoundappanEditor Tuesday, March 2, 2010 6:55 PM
Tuesday, March 2, 2010 3:53 PM -
Hi -
JuneT is correct about the way to increase the buffer size but since you have no access to the connection string( we are not exposing it ), you cannot fix your problem like this. However, it makes no sense that you are closing the application and still cannot immediately sync. The metadata store is loaded in-proc and the moment the process exits - the store is unloaded. Can you confirm that when you close the application - it has definitely died?
Specifically hitting the buffer pool size can be reduced - by reducing the number of rows you are committing in a single transaction. Commit more frequently and this should fix the problem.
Thanks
Deepa
Deepa ( Microsoft Sync Framework)- Marked as answer by Sid Singh [MSFT]Microsoft employee Monday, March 15, 2010 7:00 PM
Tuesday, March 2, 2010 7:01 PMAnswerer