MRP locking up

We have been getting “data reader” errors on ever run for a month. It appears a couple of select queries get locked up. This is the activity monitor when the “data reader error” starts popping up in the MRP logs. And below is the query that gets locked up. Does anyone know how to further troubleshoot what is going on? Looking at the hobt_id its the SugPoDtl table. Any help would be appreciated. Been working with a consultant for a month with no progress.

thanks

<?query -- SELECT [Extent1].[Company] AS [Company], [Extent1].[SugNum] AS [SugNum], [Extent1].[SugType] AS [SugType], [Extent1].[BuyerID] AS [BuyerID], [Extent1].[DueDate] AS [DueDate], [Extent1].[XRelQty] AS [XRelQty], [Extent1].[PurchasingFactor] AS [PurchasingFactor], [Extent1].[RelQty] AS [RelQty], [Extent1].[JobNum] AS [JobNum], [Extent1].[AssemblySeq] AS [AssemblySeq], [Extent1].[JobSeq] AS [JobSeq], [Extent1].[WarehouseCode] AS [WarehouseCode], [Extent1].[FOB] AS [FOB], [Extent1].[ShipViaCode] AS [ShipViaCode], [Extent1].[TermsCode] AS [TermsCode], [Extent1].[VendorNum] AS [VendorNum], [Extent1].[PurPoint] AS [PurPoint], [Extent1].[LineDesc] AS [LineDesc], [Extent1].[IUM] AS [IUM], [Extent1].[UnitPrice] AS [UnitPrice], [Extent1].[DocUnitPrice] AS [DocUnitPrice], [Extent1].[Taxable] AS [Taxable], [Extent1].[PUM] AS [PUM], [Extent1].[CostPerCode] AS [CostPerCode], [Extent1].[PartNum] AS [PartNum], [Extent1].[VenPartNum] AS [VenPartNum], [Extent1].[CommentText] AS [CommentText], [Extent1].[ClassID] AS [ClassID], [Extent1].[RevisionNum] AS [RevisionNum], [Extent1].[VendorID] AS [VendorID], [Extent1].[Name] AS [Name], [Extent1].[Buy] AS [Buy], [Extent1].[PONUM] AS [PONUM], [Extent1].[POLine] AS [POLine], [Extent1].[OpCode] AS [OpCode], [Extent1].[OrderByDate] AS [OrderByDate], [Extent1].[LeadTime] AS [LeadTime], [Extent1].[ReqNum] AS [ReqNum], [Extent1].[ReqLine] AS [ReqLine], [Extent1].[Plant] AS [Plant], [Extent1].[CreateRFQ] AS [CreateRFQ], [Extent1].[SourceRFQ] AS [SourceRFQ], [Extent1].[GlbCompany] AS [GlbCompany], [Extent1].[GlbSugNum] AS [GlbSugNum], [Extent1].[GlbSuggestion] AS [GlbSuggestion], [Extent1].[PurchasingFactorDirection] AS [PurchasingFactorDirection], [Extent1].[Rpt1UnitPrice] AS [Rpt1UnitPrice], [Extent1].[Rpt2UnitPrice] AS [Rpt2UnitPrice], [Extent1].[Rpt3UnitPrice] AS [Rpt3UnitPrice], [Extent1].[OrderNum] AS [OrderNum], [Extent1].[OrderLine] AS [OrderLine], [Extent1].[OrderRelNum] AS [OrderRelNum], [Extent1].[DropShip] AS [DropShip], [Extent1].[MfgNum] AS [MfgNum], [Extent1].[MfgPartNum] AS [MfgPartNum], [Extent1].[ShipToNum] AS [ShipToNum], [Extent1].[SoldToNum] AS [SoldToNum], [Extent1].[ShpConNum] AS [ShpConNum], [Extent1].[ShipToCustNum] AS [ShipToCustNum], [Extent1].[ComplianceMsg] AS [ComplianceMsg], [Extent1].[PORelOpen] AS [PORelOpen], [Extent1].[SugReason] AS [SugReason], [Extent1].[ABCCode] AS [ABCCode], [Extent1].[Direction] AS [Direction], [Extent1].[Per] AS [Per], [Extent1].[ManualFactor] AS [ManualFactor], [Extent1].[Factor] AS [Factor], [Extent1].[PricingQty] AS [PricingQty], [Extent1].[PricingUnitPrice] AS [PricingUnitPrice], [Extent1].[UOM] AS [UOM], [Extent1].[UrgentPlanning] AS [UrgentPlanning], [Extent1].[SysRevID] AS [SysRevID], [Extent1].[SysRowID] AS [SysRowID], [Extent1].[MaintainPricingUnits] AS [MaintainPricingUnits], [Extent1].[CurrencyCode] AS [CurrencyCode], [Extent1].[Review] AS [Review], [Extent1].[OverridePriceList] AS [OverridePriceList], [Extent1].[ContractID] AS [ContractID], [Extent1].[LinkToContract] AS [LinkToContract], [Extent1].[DemandContractNum] AS [DemandContractNum], [Extent1].[DemandHeadSeq] AS [DemandHeadSeq], [Extent1].[DemandDtlSeq] AS [DemandDtlSeq], [Extent1].[DemandScheduleSeq] AS [DemandScheduleSeq] FROM [Erp].[SugPoDtl] AS [Extent1] WITH (UPDLOCK) WHERE ([Extent1].[Company] = @p__linq__0) AND ([Extent1].[Plant] = @p__linq__1) AND ([Extent1].[SugType] = @p__linq__2) AND ([Extent1].[JobNum] = @p__linq__3) AND ([Extent1].[PartNum] = @p__linq__4) AND ([Extent1].[AssemblySeq] = @p__linq__5) AND ([Extent1].[JobSeq] = @p__linq__6) --?>

Do you find the answer? Same problem Here

Basically what is wrong is sql server does a poor job of managing the locks on tables when its running these queries during MRP. Our version (10.2.1.33) is not well written to handle apparently. This is from both Epicor and confirmed by outside consultants. The only real fix is to upgrade to a version that does a better job of handling. We are going to 11. Our workaround was initially to only run MRP at 1 or 2 processors which limits only a few queries running at the same time and less chance of the locks being mismanaged. but we still getting errors now so running mrp in “batches” by part number. MRP is just running all weekend. It takes 70 + hours to do it this way but only recourse until we upgrade.

Ohh. Thanks for the feedback.

Regards.