Периодически в нашем приложении мы сталкиваемся с исключениями LockTimeoutException, возникающими из SQL CE. Недавно мы обновили до 3.5 SP 1, и некоторые из них, похоже, исчезли, но мы все еще время от времени видим их. Я уверен, что это ошибка в нашем коде (которая является многопоточной), но я не смог точно ее определить. У кого-нибудь есть хорошие методы для устранения этой проблемы? Журнал исключений выглядит так (для этих исключений никогда не может быть трассировка стека):
Тайм-аут SQL Server Compact в ожидании блокировки. Время блокировки по умолчанию составляет 2000 мс для устройств и 5000 мс для настольных компьютеров. Время ожидания блокировки по умолчанию можно увеличить в строке подключения с помощью свойства ssce: default timeout. [Идентификатор сеанса = 6, Идентификатор потока = 7856, Идентификатор процесса = 10116, Имя таблицы = Продукт, Тип конфликта = блокировка (х блоков), Ресурс = DDL]
Наша база данных тяжелая для чтения, но редко пишет, и я думаю У меня все защищено там, где и должно быть.
РЕДАКТИРОВАТЬ: SQL CE уже автоматически использует NOLOCK http://msdn.microsoft.com/en-us/library/ms172398(sql.90).aspx