Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
Сообщения об ошибках: Message: Транзакция (идентификатор процесса 310) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. Command Text: exec sp_MSmakegeneration Parameters: Stack: в Microsoft.SqlServer.Replication.AgentCore.ReMapSqlException(SqlException e, SqlCommand command) в Microsoft.SqlServer.Replication.AgentCore.AgentExecuteNonQuery(SqlCommand command, Int32 queryTimeout) в Microsoft.SqlServer.Replication.AgentCore.ExecuteDiscardResults(CommandSetupDelegate commandSetupDelegate, Int32 queryTimeout) в Microsoft.SqlServer.Replication.Snapshot.MergeSnapshotProvider.DoRegularMergeSnapshotPreparations() в Microsoft.SqlServer.Replication.Snapshot.MergeSnapshotProvider.DoPreArticleFilesGenerationProcessing() в Microsoft.SqlServer.Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot() в Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun() в Microsoft.SqlServer.Replication.AgentCore.Run() (Источник: MSSQLServer, номер ошибки: 1205) Получить справку: http://help/1205 Server SQLSERVERNEW, Level 13, State 51, Procedure sp_MSmakegeneration, Line 492 Транзакция (идентификатор процесса 310) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. (Источник: MSSQLServer, номер ошибки: 1205) Получить справку: http://help/1205 Блин, что делать.... снэпшот повторно запускается и падает во взаимоблокировку |
19 авг 14, 22:58 [16465514] Ответить | Цитировать Сообщить модератору |
Гавриленко Сергей Алексеевич Member Откуда: Moscow Сообщений: 37139 |
SET DEADLOCK_PRIORITY |
19 авг 14, 23:16 [16465596] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9633 |
А если таковое желание есть - опубликовать граф дедлока в виде xml. |
||
19 авг 14, 23:20 [16465610] Ответить | Цитировать Сообщить модератору |
Shurgenz Member Откуда: Питер Сообщений: 1938 |
Ну худо бедно снэпшот применился... теперь дэдлоки мердж агента вот граф: <deadlock-list> <deadlock victim="process54d5dc8"> <process-list> <process id="process54d5dc8" taskpriority="0" logused="0" waitresource="KEY: 24:72058354120785920 (13d9e898395a)" waittime="1933" ownerId="1285971400" transactionname="SELECT" lasttranstarted="2014-08-21T10:29:21.980" XDES="0xc7f61e590" lockMode="S" schedulerid="15" kpid="25800" status="suspended" spid="221" sbid="0" ecid="0" priority="0" trancount="0" lastbatchstarted="2014-08-21T10:29:21.980" lastbatchcompleted="2014-08-21T10:29:21.980" clientapp="SQLSERVERNEW-Rateinfo-pub_Merge_DB1_Lo-SERVER1\SQLS-3" hostname="SQLSERVERNEW" hostpid="25876" loginname="DOM\sqlstart" isolationlevel="read committed (2)" xactid="1285971400" currentdb="24" lockTimeout="4294967295" clientoption1="536938592" clientoption2="128024"> <executionStack> <frame procname="mssqlsystemresource.sys.sp_MSenumgenerations90" line="76" stmtstart="6658" stmtend="11606" sqlhandle="0x0300ff7f0a676226e265ac007ea000000100000000000000"> select top (@numgens) * from ( select generation, guidsrc, art_nick, case when genstatus = 4 then 0 else genstatus end as genstatus, pubid, nicknames, okaytoskip = case when art_nick is not null and art_nick <> 0 and genstatus in (0,4) -- Skip all rows that are for incomplete generations for articles that have no joins. and not exists (select 1 from dbo.sysmergesubsetfilters where (join_nickname = art_nick or art_nickname = art_nick) and (filter_type & 1) = 1) then 1 else 0 end , changecount from (select generation, guidsrc, art_nick, genstatus, pubid, nicknames, changecount from dbo.MSmerge_genhistory with (rowlock, repeatableread) where generation >= @genstart and generation <= @maxgen_to_e </frame> </executionStack> <inputbuf> Proc [Database Id = 32767 Object Id = 643983114] </inputbuf> </process> <process id="process5c3d82bc8" taskpriority="0" logused="3368" waitresource="KEY: 24:72058354120785920 (0edd6c49ef68)" waittime="2051" ownerId="1285974701" transactionname="user_transaction" lasttranstarted="2014-08-21T10:29:22.127" XDES="0xdce90d950" lockMode="X" schedulerid="9" kpid="19412" status="suspended" spid="525" sbid="0" ecid="0" priority="0" trancount="2" lastbatchstarted="2014-08-21T10:29:22.123" lastbatchcompleted="2014-08-21T10:29:22.123" clientapp=".Net SqlClient Data Provider" hostname="WEBPC136" hostpid="72208" loginname="admin" isolationlevel="read committed (2)" xactid="1285974701" currentdb="24" lockTimeout="4294967295" clientoption1="673316896" clientoption2="128056"> <executionStack> <frame procname="Rateinfo.dbo.MSmerge_upd_32A27B65538F4CD69408C92EFA30E595" line="60" stmtstart="6014" stmtend="6384" sqlhandle="0x03001800e2759821b2e5e7008da300000000000000000000"> update MSmerge_genvw_32A27B65538F4CD69408C92EFA30E595 with (rowlock) set changecount = changecount + @article_rows_updated where generation = @newgen </frame> <frame procname="DB1.dbo.t_Loads_SetNormalizedRate" line="18" stmtstart="1082" stmtend="1540" sqlhandle="0x030018001b2fb24a03ca750171a300000000000000000000"> update lr set lr.Rate=rt.Rate from LoadRates lr join inserted ON lr.FirmID=Inserted.FirmID and lr.LoadID=Inserted.LoadID cross apply dbo.sfti_GetLoadNormalizedRate(Inserted.FirmID,Inserted.LoadID) rt </frame> <frame procname="adhoc" line="7" stmtstart="2132" sqlhandle="0x02000000a5be8c35d59c5234109df997220f2438ff16108b"> UPDATE TOP ( 1 ) [Loads] WITH (UPDLOCK) SET [DateTime] = CASE WHEN @CurrentDateWithLapse > [AddDate] THEN @CurrentDateWithLapse ELSE GETDATE() END WHERE LoadID = @LoadID AND FirmID = @FirmID </frame> <frame procname="mssqlsystemresource.sys.sp_executesql" line="1" sqlhandle="0x0400ff7fbe80662601000000000000000000000000000000"> sp_executesql </frame> <frame procname="Rateinfo.dbo.p_Load_Update" line="352" stmtstart="35460" stmtend="38736" sqlhandle="0x030018009806e045dfe796008da300000100000000000000"> exec sp_executesql @sql,@vars,@LoadID = @LoadID,@FirmID = @FirmID,@CurrentDateWithLapse = @CurrentDateWithLapse,@Load_city = @Load_city,@Load_FirstDate = @Load_FirstDate,@Load_LastDate = @Load_LastDate,@Cargo_type = @Cargo_type, @Unload_city = @Unload_city,@Note = @Note,@Cargo_weight = @Cargo_weight,@Cargo_volume = @Cargo_volume,@CurrencyID = @CurrencyID,@ADR = @ADR,@Qu_Cars = @Qu_Cars,@Custom_city = @Custom_city, @Cargo_TypeID = @Cargo_TypeID,@Load_DateType = @Load_DateType,@PayTypeID = @PayTypeID,@LocalUserID = @LocalUserID,@Dist = @Dist,@MoneyTypeID = @MoneyTypeID,@PayAttribs = @PayAttribs, @PrepayPercent = @PrepayPercent,@PayDays = @PayDays,@SizeL = @SizeL,@SizeW = @SizeW,@SizeH = @SizeH,@PalletCount = @PalletCount,@LoadAttribs = @LoadAttribs,@DocAttribs = @DocAttribs, @PathAttribs = @PathAttribs,@TruckAttribs = @TruckAttribs,@RateSum = @RateSum,@SumWithNDS = @SumWithNDS,@SumWithoutNDS = @SumWithoutNDS,@LocalUserID2 = @LocalUserID2,@PackTypeID = @PackTypeID, @BeltCount = @BeltCount,@TempAt </frame> </executionStack> <inputbuf> Proc [Database Id = 24 Object Id = 1172309656] </inputbuf> </process> </process-list> <resource-list> <keylock hobtid="72058354120785920" dbid="24" objectname="DB1.dbo.MSmerge_genhistory" indexname="c1MSmerge_genhistory" id="lock94b448900" mode="X" associatedObjectId="72058354120785920"> <owner-list> <owner id="process5c3d82bc8" mode="X"/> </owner-list> <waiter-list> <waiter id="process54d5dc8" mode="S" requestType="wait"/> </waiter-list> </keylock> <keylock hobtid="72058354120785920" dbid="24" objectname="DB1.dbo.MSmerge_genhistory" indexname="c1MSmerge_genhistory" id="lock771843d80" mode="U" associatedObjectId="72058354120785920"> <owner-list> <owner id="process54d5dc8" mode="S"/> </owner-list> <waiter-list> <waiter id="process5c3d82bc8" mode="X" requestType="convert"/> </waiter-list> </keylock> </resource-list> </deadlock> </deadlock-list> |
21 авг 14, 10:39 [16472299] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |