Конфликт блокировок при запущенных двух базах одновременно
Приветствую! Есть сервер 2012 R2 на нем MS SQL 2012 и 1С платформа 8.3.4.465 и 1С сервер х64.
1С КА 1.1.53.1 в режиме совместимости обычное приложение и 1С Документооборот Корп 1.4.6.2 управляемое приложение. Когда пользователь запускает обе базы одновременно,с Документооборотом невозможно работать. Постоянно выскакивает такая ошибка. Комплексных одновременно запускай сколько хочешь. И если Документооборот один запущен то тоже нет проблем. А когда Запущены и то и то - трындец. Если кто сталкивался помогите разобраться.
1С КА 1.1.53.1 в режиме совместимости обычное приложение и 1С Документооборот Корп 1.4.6.2 управляемое приложение. Когда пользователь запускает обе базы одновременно,с Документооборотом невозможно работать. Постоянно выскакивает такая ошибка. Комплексных одновременно запускай сколько хочешь. И если Документооборот один запущен то тоже нет проблем. А когда Запущены и то и то - трындец. Если кто сталкивался помогите разобраться.
Прикрепленные файлы:
![](/upload/forum/upload/f94/f942ecb82ccf103d1360c672c53a9a7f.jpg)
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Посмотри причину блокировок в SQL сервере.
через SQL Server Management Studio
выполни запрос:
sET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @dbid AS smallint;
use EDB_consolidation;
SET @dbid=DB_ID();
/*кто кого*/
SEL ECT DB_NAME(pr1.dbid) AS 'DB'
,pr1.spid AS 'ID жертвы'
,RTRIM(pr1.loginame) AS 'Login жертвы'
,pr2.spid AS 'ID виновника'
,RTRIM(pr2.loginame) AS 'Login виновника'
,pr1.program_name AS 'программа жертвы'
,pr2.program_name AS 'программа виновника'
,txt.[text] AS 'Запрос виновника'
FR OM MASTER.dbo.sysprocesses pr1(NOLOCK)
JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)
ON (pr2.spid = pr1.blocked)
OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt
WHERE pr1.blocked <> 0
через SQL Server Management Studio
выполни запрос:
sET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @dbid AS smallint;
use EDB_consolidation;
SET @dbid=DB_ID();
/*кто кого*/
SEL ECT DB_NAME(pr1.dbid) AS 'DB'
,pr1.spid AS 'ID жертвы'
,RTRIM(pr1.loginame) AS 'Login жертвы'
,pr2.spid AS 'ID виновника'
,RTRIM(pr2.loginame) AS 'Login виновника'
,pr1.program_name AS 'программа жертвы'
,pr2.program_name AS 'программа виновника'
,txt.[text] AS 'Запрос виновника'
FR OM MASTER.dbo.sysprocesses pr1(NOLOCK)
JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)
ON (pr2.spid = pr1.blocked)
OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt
WHERE pr1.blocked <> 0
Вот что получилось при таком запросе
sET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @dbid AS smallint;
use ka;
SET @dbid=DB_ID();
/*кто кого*/
SEL ECT DB_NAME(pr1.dbid) AS 'DB'
,pr1.spid AS 'ID жертвы'
,RTRIM(pr1.loginame) AS 'Login жертвы'
,pr2.spid AS 'ID виновника'
,RTRIM(pr2.loginame) AS 'Login виновника'
,pr1.program_name AS 'программа жертвы'
,pr2.program_name AS 'программа виновника'
,txt.[text] AS 'Запрос виновника'
FR OM MASTER.dbo.sysprocesses pr1(NOLOCK)
JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)
ON (pr2.spid = pr1.blocked)
OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt
WHERE pr1.blocked <> 0
вместо ка ставить можно любую базу doc или еще какую, результат тот же.
sET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
DECLARE @dbid AS smallint;
use ka;
SET @dbid=DB_ID();
/*кто кого*/
SEL ECT DB_NAME(pr1.dbid) AS 'DB'
,pr1.spid AS 'ID жертвы'
,RTRIM(pr1.loginame) AS 'Login жертвы'
,pr2.spid AS 'ID виновника'
,RTRIM(pr2.loginame) AS 'Login виновника'
,pr1.program_name AS 'программа жертвы'
,pr2.program_name AS 'программа виновника'
,txt.[text] AS 'Запрос виновника'
FR OM MASTER.dbo.sysprocesses pr1(NOLOCK)
JOIN MASTER.dbo.sysprocesses pr2(NOLOCK)
ON (pr2.spid = pr1.blocked)
OUTER APPLY sys.[dm_exec_sql_text](pr2.[sql_handle]) AS txt
WHERE pr1.blocked <> 0
вместо ка ставить можно любую базу doc или еще какую, результат тот же.
Прикрепленные файлы:
111.txt
сильно сомневаюсь что конфликт блокировок вызывает именно одновременный запуск разных баз.
Возможно в ДО в этот момент выполняется пересчет прав и т.д.
Единственный вариант, это что не справляется оборудование когда работает КА и ДОК (но как то маловероятно).
Выполните анализ загрузки оборудования, проверьте статистику ожиданий SQL, посмотрите внимательнее на активность в ДО (что в этот момент выполняется в базе) и т.д.
Возможно в ДО в этот момент выполняется пересчет прав и т.д.
Единственный вариант, это что не справляется оборудование когда работает КА и ДОК (но как то маловероятно).
Выполните анализ загрузки оборудования, проверьте статистику ожиданий SQL, посмотрите внимательнее на активность в ДО (что в этот момент выполняется в базе) и т.д.
Сложный вопрос. в ДОК вообще пока пользователей нет там куча фоновых заданий (штук 50) по приему отправке почты и прочее. В КА 10 пользователей и пара фоновых заданий.
Оборудованию думаю вряд-ли максимальная загрузка светит в ближайшее время, 64 гига оперативки и двухпроцессорный сервер, плюс базы SQL на SSD дисках. Хотя возможно все.
Оборудованию думаю вряд-ли максимальная загрузка светит в ближайшее время, 64 гига оперативки и двухпроцессорный сервер, плюс базы SQL на SSD дисках. Хотя возможно все.
По ID виновника из запроса на блокировки,найди процесс.Можно в Activity monitor по Session ID
Правой кнопкой на него и запускай трассер. Посмотрим, что за запрос блокирует.
За одно посмотри к какой базе этот запрос обращается.
Правой кнопкой на него и запускай трассер. Посмотрим, что за запрос блокирует.
За одно посмотри к какой базе этот запрос обращается.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот