生产中的随机Nhibernate错误:无法执行查询

时间:2014-05-27 16:55:52

标签: nhibernate sql-server-2008-r2 database-deadlocks

我们使用NHibernate 3.1.0.4000版和FluentNHibernate 1.2.0.712版。

我们有4台服务器提供负载均衡器后面的核心服务。 然后,这些服务会在不同时间查询单个数据库(运行Microsoft SQL Server 2008 R2 Service Pack 2版本10.50.4000.0)。 在过去一年左右的时间里,负荷没有显着变化。

以下错误过去每月大约发生10次,我将其归结为网络问题。由于它没有给客户带来任何问题,所以我并不太关心。

然而,在上个月我每天都会收到数以千计的错误。

WCF异常无法执行查询[选择TOP(@ p0)driverstat0_.Id为Id14_,driverstat0_.CreateReceivedAt为CreateRe2_14_,driverstat0_.RemoveReceivedAt为RemoveRe3_14_,driverstat0_.Status为Status14_,driverstat0_.DriverLogEntryID为DriverLo5_14_,driverstat0_.CreatedByUser为CreatedB6_14_,driverstat0_.CreatedByUserType为CreatedB7_14_,driverstat0_.CreatedAt为CreatedAt14_,driverstat0_.RemovedByUser为RemovedB9_14_,driverstat0_.RemovedByUserType为Removed10_14_,driverstat

堆栈跟踪: 在NHibernate.Loader.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor session)的d:\ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Loader \ Loader.cs:第1703行的NHibernate.Loader.Loader.DoList(ISessionImplementor session,QueryParameters queryParameters) ,QueryParameters queryParameters)在d:\ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Loader \ Loader.cs:第1601行NHibernate.Loader.Loader.List(ISessionImplementor session,QueryParameters queryParameters,ISet 1 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](IQueryable 1来源)在d:\ WF \ MDT \ 6.1.40.patch1中的IG.MDT.Data.MsSql.MobileI.Repositories.DriverLogRepository.GetLastDriverStatus(Int32 driverId,DateTime rangeStart) - 服务 - Web \ Sources \ IG.MDT.Data .MsSql.MobileI \ Repositories \ DriverLogRepository.cs:d:\ WF \ MDT \ 6.1.40.patch1中IG.MDT.Data.MsSql.MobileI.DriverLogService.SynchronizeLogs(String mdtNumber,DriverSynchronizationRequest [] drivers)的第261行 - 服务 - Web \ Sources \ IG.MDT.Data.MsSql.MobileI \ DriverLogService.cs:SyncInvokeSynchronizeLogs(对象,对象)中的第1019行System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke中的[],Object [])(对象实例,对象[]输入,对象[]& System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)位于System的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)。 System.ServiceModel.Desspatcher.Message上的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)中的ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)位于System.ServiceModel.Dispatcher.Message上的System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) .Process(Boolean isOperationContextSet)

我无法使用我构建的负载测试器在DEV环境中重现此问题。我通过活动监视器注意到的唯一事情是与此驱动程序表相关的锁,可能导致它。

任何提示拖曳 我们非常感谢这个问题。我现在没有线索。

0 个答案:

没有答案