Случайные ошибки Nhibernate в производстве: не удалось выполнить запрос

Мы используем NHibernate версии 3.1.0.4000 и FluentNHibernate версии 1.2.0.712.

У нас есть 4 сервера, которые предоставляют основные сервисы, которые находятся за балансировщиком нагрузки. Затем эти службы в разное время запрашивают одну и ту же базу данных (работает под управлением Microsoft SQL Server 2008 R2 с пакетом обновления 2 версии 10.50.4000.0). Нагрузка существенно не изменилась за последний год или около того.

Следующая ошибка возникала примерно 10 раз в месяц, и я объяснил это проблемами с сетью. Так как это не вызывало никаких проблем для клиентов, я не был слишком обеспокоен.

Однако в прошлом месяце я получаю тысячи таких ошибок каждый день.

Исключение WCF не удалось выполнить запрос.CreatedByUserType as CreatedB7_14_, driverstat0_.CreatedAt как CreatedAt14_, driverstat0_.RemovedByUser as RemovedB9_14_, driverstat0_.RemovedByUserType как Removed10_14_, driverstat

Трассировка стека: в NHibernate.Loader.Loader.DoList(сеанс ISessionImplementor, QueryParameters queryParameters) в d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Loader.cs: строка 1703 в NHibernate.Loader.Loader.ListIgnore (Сеанс ISessionImplementor, QueryParameters queryParameters) в d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Loader.cs: строка 1601 в NHibernate.Loader.Loader.List(сеанс ISessionImplementor, QueryParameters queryParameters, ISet1 querySpaces, IType[] resultTypes) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Loader\Loader.cs:line 1591 at NHibernate.Hql.Ast.ANTLR.Loader.QueryLoader.List(ISessionImplementor session, QueryParameters queryParameters) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Hql\Ast\ANTLR\Loader\QueryLoader.cs:line 299 at NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor session, QueryParameters queryParameters) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Hql\Ast\ANTLR\QueryTranslatorImpl.cs:line 108 at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters queryParameters, ISessionImplementor session, IList results) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Engine\Query\HQLQueryPlan.cs:line 78 at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression, QueryParameters queryParameters, IList results) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\SessionImpl.cs:line 645 at NHibernate.Impl.AbstractSessionImpl.List(IQueryExpression queryExpression, QueryParameters parameters) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\AbstractSessionImpl.cs:line 92 at NHibernate.Impl.ExpressionQueryImpl.List() in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Impl\ExpressionQueryImpl.cs:line 60 at NHibernate.Linq.NhQueryProvider.ExecuteQuery(NhLinqExpression nhLinqExpression, IQuery query, NhLinqExpression nhQuery) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Linq\NhQueryProvider.cs:line 79 at NHibernate.Linq.NhQueryProvider.Execute(Expression expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Linq\NhQueryProvider.cs:line 28 at NHibernate.Linq.NhQueryProvider.Execute[TResult](Expression expression) in d:\CSharp\NH\NH\nhibernate\src\NHibernate\Linq\NhQueryProvider.cs:line 103 at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable1 источник) по адресу IG.MDT.Data.MsSql.MobileI.Repositories.DriverLogRepository.GetLastDriverStatus(Int32 driverId, DateTime rangeStart) в каталоге d:\WF\MDT\6.1.40.patch1 - Услуги - Web\Sources\IG.MDT.Data.MsSql.MobileI\Repositories\DriverLogRepository.cs: строка 261 в IG.MDT.Data.MsSql.MobileI.DriverLogService.SynchronizeLogs(драйверы String mdtNumber, DriverSynchronizationRequest[]) в d: \ WF \ MDT \ 6.1.40. - Службы - Web\Sources\IG.MDT.Data.MsSql.MobileI\DriverLogService.cs: строка 1019 в SyncInvokeSynchronizeLogs(Object, Object[], Object[]) в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(экземпляр объекта, Object [] входные данные, Object [] и выходные данные) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpcessMasePatchIpRisisTimeSatchMatchService.Service) MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& resser.Pervice.Pervice).

Я не могу воспроизвести эту проблему в нашей среде DEV с помощью встроенного тестера нагрузки. Единственное, что я заметил через монитор активности, - это блокировки, связанные с этой таблицей драйверов, которые могут быть причиной этого.

Любые советы по выяснению этого вопроса очень ценятся. У меня сейчас нет никаких отведений.

0 ответов

Другие вопросы по тегам