| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			
			слияние глобальных адресов Merge GAB records
			 
			
			AX 2012 R3 
		
		
		
			коллеги, кто-нибудь сталкивался с проблемой deadlock при попытке одновременного слияния записей в глобальной книге адресов в двух разных сессиях? написал классик, который вызывает стандартную процедуру слияния, но столкнулся с большим количеством deadlocks. снятая SQL трассировка показывает виновником торжества метод sourcePersonRecord.merge(targetPersonRecord); то есть ключевой метод xRecord.merge(). он системный, и непонятно, как с этим бороться. очень хочется запускать несколько независимых процессов, но при таком количестве "мёртвых" единственный выход - это зависимые задачи в одном batch. KB3209851 проблему не решил. то есть, дело явно не в батч-процессинге. попробовал вручную закатить солнце из двух открытых сессий и получил ту же пулю в лоб. как жить? 
				__________________ 
		
		
		
		
	Felix nihil admirari  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Administrator 
		
			
	 | 
	
	
	
		
		
		
		 
			
			А по каким именно ресурсам deadlock происходит? Можно deadlock graph посмотреть? (как его записать, написано здесь: https://msdn.microsoft.com/en-us/lib...=sql.120).aspx) 
		
		
		
		
		
		
			P.S.: Попытаюсь попасть пальцем в небо: попробуйте временно отключить RecId индекс на ContactPerson 
				__________________ 
		
		
		
		
	Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: wojzeh (1). | |
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Maxim Gorbunov
			 
 
			А по каким именно ресурсам deadlock происходит? Можно deadlock graph посмотреть? (как его записать, написано здесь: https://msdn.microsoft.com/en-us/lib...=sql.120).aspx) 
		
	не помогло. похоже, какой-то баг внутри этого merge() 
				__________________ 
		
		
		
		
	Felix nihil admirari  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Недавно я ковырял метод xRecord.merge() используя стандартный класс , не знаю про dedlocks, у меня такого не было, зато очень много бился с duplicate key exception.  
		
		
		
		
		
		
		
	Как я вижу, вы тоже пытаетесь объединять субъекты (физиков) в Ax2012, но как я понял, своим собственным классом. Мне кажется надо делать как в DirParyMerge.runOnServer(), т.к. в нем не только merge происходит, но еще и удаление записей.  | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от Dreadlock
			 
 
			Недавно я ковырял метод xRecord.merge() используя стандартный класс , не знаю про dedlocks, у меня такого не было, зато очень много бился с duplicate key exception.  
		
	Как я вижу, вы тоже пытаетесь объединять субъекты (физиков) в Ax2012, но как я понял, своим собственным классом. Мне кажется надо делать как в DirParyMerge.runOnServer(), т.к. в нем не только merge происходит, но еще и удаление записей. 
				__________________ 
		
		
		
		
	Felix nihil admirari  | 
| 
	
 | 
| 
	
	 | 
	
		
  |