Здравствуйте, Ventalf, Вы писали:
AVK>>Попробуй r1062
V>Осталось.
Осталось, да дне то. Стек трейс уже другой. И вот теперья не знаю, что делать — все выполняется в одной транзакции. Почему сообщения пишутся, потом читаются оценки, и только потом, при вставке новой оценки оно падает — сие тайна великая есть.
Здравствуйте, AndrewVK, Вы писали:
AVK>Осталось, да дне то. Стек трейс уже другой. И вот теперья не знаю, что делать — все выполняется в одной транзакции. Почему сообщения пишутся, потом читаются оценки, и только потом, при вставке новой оценки оно падает — сие тайна великая есть.
По мне — так тот же стек трейс:
Запрос новых сообщений в форумах - CriticalError
BLToolkit.Data.DataException: The database file is locked
database is locked ---> System.Data.SQLite.SQLiteException: The database file is locked
database is locked
в System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
в System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
в System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
в BLToolkit.Data.DbManager.ExecuteNonQuery()
в Rsdn.Janus.BLToolkitExtension.ForumDataAccessor.InsertRate(Int32 messageId, Int32 topicId, Int32 userId, Int32 rateType, Int32 rateBy, DateTime rateDate)
в Rsdn.Janus.ForumDataAccessor.AddNewRates(IEnumerable`1 rates)
в Rsdn.Janus.MessagesSyncHelper.AddNewMessages(ISyncContext context, JanusMessageInfo[] messages, JanusRatingInfo[] rates, JanusModerateInfo[] moderatorials, Action`1 afterProcessInTxHandler)
в Rsdn.Janus.MessagesSyncTask.ProcessResponse(ISyncContext context, ChangeRequest request, ChangeResponse response)
в Rsdn.Janus.SimpleSyncTask`3.Sync(ISyncContext context, TSvc svc, Int32 retries, ITaskIndicator indicator)
... << RSDN@Home 1.2.0 alpha 4 rev. 1063>>
Could not load file or assembly 'System.Data.Linq', Version=
System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Не удается найти указанный файл.
File name: 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at BLToolkit.Reflection.MetadataProvider.LinqMetadataProvider.GetNullable(ObjectMapper mapper, MemberAccessor member, Boolean& isSet)
at BLToolkit.Reflection.MetadataProvider.MetadataProviderList.GetNullable(ObjectMapper mapper, MemberAccessor member, Boolean& isSet)
at BLToolkit.Mapping.ObjectMapper.GetNullable(MemberAccessor memberAccessor)
at BLToolkit.Mapping.ObjectMapper.Init(MappingSchema mappingSchema, Type type)
at BLToolkit.Mapping.MappingSchema.GetObjectMapper(Type type)
at BLToolkit.Data.DbManager.ExecuteListInternal(IList list, Type type, Object[] parameters)
at BLToolkit.Data.DbManager.ExecuteList(IList list, Type type)
at Rsdn.Janus.BLToolkitExtension.ForumDataAccessor.GetSubscribedForumListInternal(String orderBy)
at Rsdn.Janus.ForumDataAccessor.GetSubscribedForumList()
at Rsdn.Janus.ObjectModel.Forums.LoadData()
at Rsdn.Janus.ObjectModel.Forums..ctor(IServiceProvider provider)
at Rsdn.Janus.ObjectModel.Forums.get_Instance()
at Rsdn.Janus.ApplicationManager.Run(IServiceProvider serviceProvider)
at Rsdn.Janus.Janus.Main()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
... << RSDN@Home 1.2.0 alpha rev. 780>>
"Мы будем уничтожать свое ядерное оружие вместе с Америкой" (c) Б. Ельцин
Здравствуйте, Ventalf, Вы писали:
V>По мне — так тот же стек трейс:
Вобщем, по какой то причине BLToolkit, несмотря на открытую транзакцию, на новом акцессоре все равно открывает отдельное соединение с БД, от этого даже джету в определенных осбтоятельствах криышу сносит. Знакомые спецы по BLToolkit не отзываются. Так что пока не знаю что да как, работать будут только FB и MSSQL нормально.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1058 on Windows Vista 6.0.6001.65536>>
Здравствуйте, 6lackbird, Вы писали:
6>[c#] 6>System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Не удается найти указанный файл. 6>File name: 'System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
Мдя, я боялся этого. Теберь либо на BLToolkit.2 переходить, либо переводить янус на 3.5.
... <<RSDN@Home 1.2.0 alpha 4 rev. 1058 on Windows Vista 6.0.6001.65536>>
rev. 1062
Началось в последних обновлениях. Закачка 1.7 МБ прошла успешно. Обработаны 999 сообщений и вот:
BLToolkit.Data.DataException: Истекло время ожидания. Время ожидания истекло раньше, чем удалось получить подключение из пула. Возможно, все подключения в пуле уже используются и достигнут максимальный размер пула. ---> System.InvalidOperationException: Истекло время ожидания. Время ожидания истекло раньше, чем удалось получить подключение из пула. Возможно, все подключения в пуле уже используются и достигнут максимальный размер пула.
в System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
в System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
в System.Data.SqlClient.SqlConnection.Open()
в BLToolkit.Data.DbManager.OpenConnection()
--- Конец трассировки внутреннего стека исключений ---
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.OpenConnection()
в BLToolkit.Data.DbManager.get_Connection()
в BLToolkit.Data.DbManager.OnInitCommand(IDbCommand command)
в BLToolkit.Data.DbManager.get_SelectCommand()
в BLToolkit.Data.DbManager.get_Command()
в BLToolkit.Data.DbManager.Parameter(ParameterDirection parameterDirection, String parameterName, Object value)
в BLToolkit.Data.DbManager.Parameter(String parameterName, Object value)
в Rsdn.Janus.BLToolkitExtension.ForumDataAccessor.UpdateRate(Int32 messageId, Int32 topicId, Int32 userId, Int32 rateType, Int32 rateBy, DateTime rateDate, Int32 filterMessageId, Int32 filterUserId, Int32 oldRateType)
в Rsdn.Janus.ForumDataAccessor.AddNewRates(IEnumerable`1 rates) в D:\work\Janus\Janus\rsdn.ru\Database\Forum\ForumDataAccessor.cs:строка 108
в Rsdn.Janus.MessagesSyncHelper.AddNewMessages(ISyncContext context, JanusMessageInfo[] messages, JanusRatingInfo[] rates, JanusModerateInfo[] moderatorials, Action`1 afterProcessInTxHandler) в D:\work\Janus\Janus\rsdn.ru\Synchronization\Tasks\MessagesSyncHelper.cs:строка 90
в Rsdn.Janus.MessagesSyncHelper.AddNewMessages(ISyncContext context, JanusMessageInfo[] messages, JanusRatingInfo[] rates, JanusModerateInfo[] moderatorials) в D:\work\Janus\Janus\rsdn.ru\Synchronization\Tasks\MessagesSyncHelper.cs:строка 22
в Rsdn.Janus.MessagesSyncTask.ProcessResponse(ISyncContext context, ChangeRequest request, ChangeResponse response) в D:\work\Janus\Janus\rsdn.ru\Synchronization\Tasks\MessagesSyncTask.cs:строка 49
в Rsdn.Janus.SimpleSyncTask`3.Sync(ISyncContext context, TSvc svc, Int32 retries, ITaskIndicator indicator) в D:\work\Janus\Janus-Common\Synchronization\WebSvcSync\SimpleSyncTask.cs:строка 92
Последующая загрузка и обработка новых пользователей успешна.
Отписка от форумов с отменой удаления на запросы завершилась (даже не до конца закончившись) исключением:
BLToolkit.Data.DataException was unhandled
Message="The DELETE statement conflicted with the REFERENCE constraint \"FK_topic_info_mid\". The conflict occurred in database \"JanusDb\", table \"dbo.topic_info\", column 'mid'.\r\nThe statement has been terminated."
Source="BLToolkit.3"
StackTrace:
в BLToolkit.Data.DbManager.OnOperationException(OperationType op, Exception ex)
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
в BLToolkit.Data.DbManager.ExecuteNonQuery()
в Rsdn.Janus.JanusDB.Execute(String sql, Object[] parameters) в D:\work\Janus\Janus\Core\DataManagement\JanusDB.cs:строка 82
в Rsdn.Janus.DatabaseManager.Unsubscribe(Int32 fid, Boolean deleteMessages) в D:\work\Janus\Janus\Core\DataManagement\DatabaseManager\DatabaseManager.Forums.cs:строка 258
в Rsdn.Janus.ForumsManager.<>c__DisplayClass1.<UnsubscribeForum>b__0(ProgressInfo pi) в D:\work\Janus\Janus\Features\ForumsManagement\ForumsManager.cs:строка 43
в Rsdn.Janus.Framework.ProgressWorker.<>c__DisplayClass3.<Run>b__0(AsyncOperation asyncOp) в D:\work\Janus\Janus\Framework\ProgressWorker\ProgressWorker.cs:строка 58
в Rsdn.Janus.AsyncHelper.<>c__DisplayClassd.<RunAsync>b__c(Object state) в D:\work\Janus\Janus\Framework\Utils\AsyncHelper.cs:строка 77
в System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack)
в System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state)
InnerException: System.Data.SqlClient.SqlException
Message="The DELETE statement conflicted with the REFERENCE constraint \"FK_topic_info_mid\". The conflict occurred in database \"JanusDb\", table \"dbo.topic_info\", column 'mid'.\r\nThe statement has been terminated."
Source=".Net SqlClient Data Provider"
ErrorCode=-2146232060
Class=16
LineNumber=2
Number=547
Procedure=""
Server="VISTAQUAD64\\SQLEXPRESS"
State=0
StackTrace:
в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
в BLToolkit.Data.DbManager.ExecuteNonQueryInternal()
InnerException:
AVK>Вобщем, по какой то причине BLToolkit, несмотря на открытую транзакцию, на новом акцессоре все равно открывает отдельное соединение с БД, от этого даже джету в определенных осбтоятельствах криышу сносит. Знакомые спецы по BLToolkit не отзываются. Так что пока не знаю что да как, работать будут только FB и MSSQL нормально.
(грустно вздыхая) Будем сидеть на 1052 пока.
... << RSDN@Home 1.2.0 alpha 4 rev. 1052>>
Re[3]: Запрос новых сообщений в форумах - CriticalError
Ещё несколько наблюдений:
Исключение возникает при синхронизации длительностью более 15-18 сек.
Т.е. загрузка темы в 1к+ будет гарантировано срывать синхронизацию, т.к. срыв синхронизации проходил на 150 сообщениях, а сама она прошла только "на удачу".