powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / Как имитировать падение документа по таймауту?
15 сообщений из 15, страница 1 из 1
Как имитировать падение документа по таймауту?
    #38608018
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для тестирования надо что бы при проведении документ упал по таймауту. 1С 8.2. Как это сделать?
Спасибо.
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608118
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключиться из SQL SMS и
begin transaction
SELECT * FROM ... WITH (ROWLOC) WHERE ???
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608183
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простите за глупый вопрос - но падение - это что?
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608219
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда объект заблокирован другим пользователем дольше предельно-допустимой продолжительности времени?
Конфигуратор\Администрирование\Параметры информационной базы...\Время ожидания блокировки данных (в секундах)
По умолчанию - 20 секунд.
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608241
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AHDP,
WITH (ROWLOCK) это похоже то что надо. Только селект у меня слишком быстро делается. Можно таблицу как-то заблокировать подольше?
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608247
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.RuAHDP,
WITH (ROWLOCK) это похоже то что надо. Только селект у меня слишком быстро делается. Можно таблицу как-то заблокировать подольше?

транзакция не закрыта - блокировка должна висеть
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608285
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Commit transaction - разблокирует. Или Rollback.
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608340
Alex.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не получается. я уже и запросы в цикле по 1000 раз делаю и коммит в конце убрал. И время ожидания в конфигураторе поставил 1сек. А оно все проводится.
вот так сделал:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
use mySqlFor1c;
DECLARE @lll int;
set @lll=0;	
begin transaction T1;
while @lll <  1000
begin

SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRg4475] WITH (ROWLOCK);
  set @lll = @lll +1;
 SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRgT4491] WITH (ROWLOCK);

SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRgChngR4492] WITH (ROWLOCK);

SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRg4446] WITH (ROWLOCK);
  
SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRgT4462] WITH (ROWLOCK);
SELECT *
  FROM [mySqlFor1c].[dbo].[_AccumRgChngR4463] WITH (ROWLOCK);
    
end;
--COMMIT transaction T1;
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608402
Последний выдох ГПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо блокировки прозрачны (shared на shared) либо пространства не пересекаются...

скуль то чего говорит? в QA по sp_lock вообще есть что-то?
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38608968
Фотография erp20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.RuЧто-то не получается. я уже и запросы в цикле по 1000 раз делаю и коммит в конце убрал. И время ожидания в конфигураторе поставил 1сек. А оно все проводится.Вы хотите средствами платформы 1С имитировать таймаут или же средствами СУБД MS SQL?
Если средствами 1С то это очень просто.

Для конфигурации работающей в «автоматическом режиме блокировки данных»:
В обработке проведения "Реализации товаров услуг" разместите запрос, получающий данные для последующего контроля остатков товаров на складах. В запросе заблокируйте "ДЛЯ ИЗМЕНЕНИЯ" таблицу в которой содержатся остатки товаров на складах.

После команды «Выполнить()» (для запроса возвращающего остатки товаров), разместите вызов процедуры, выполнение которой вызывает "паузу". Длительность паузы должна быть больше значения допустимой нормы ожидания на блокировках (устанавливается в конфигураторе для инф. базы), если в конфигураторе указано 20 секунд, для верности установите длительность паузы в 30 секунд.

Откройте два сеанса в пользовательском режиме. В каждом сеансе проведите документы "Реализация товаров и услуг". Документы обязательно должны списывать остатки с одного склада по совпадающим (хотя бы одной) номенклатурным позициям.
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38609056
autsaider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex.RuЧто-то не получается. я уже и запросы в цикле по 1000 раз делаю и коммит в конце убрал. И время ожидания в конфигураторе поставил 1сек. А оно все проводится.



Надо так:

Код: sql
1.
2.
begin tran
select top 0 * from config with (tablockx, holdlock)
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38609424
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А не проще в документе в отладчике остановиться при проведении? И проводить второй в другой сессии?
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38610903
Фотография Владимир Лазурко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сА не проще в документе в отладчике остановиться при проведении? И проводить второй в другой сессии?Так это ж классика.
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38613383
vi0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex.RuЧто-то не получается. я уже и запросы в цикле по 1000 раз делаю и коммит в конце убрал. И время ожидания в конфигураторе поставил 1сек. А оно все проводится. похоже причина в том, что нет четкого понимания

msdnКласс событий Lock:Timeout указывает на то, что запрос на захват некоторого ресурса, например страницы, завершен из-за превышения времени ожидания, поскольку данный ресурс был захвачен в блокирующем режиме другой транзакцией. Время ожидания определяется системной функцией @@LOCK_TIMEOUT и может быть задано инструкцией SET LOCK_TIMEOUT.
стандартно это значение 20 секунд
т.е. тебе нужно приостановить одну транзакцию на 20 секунд, и начать выполнять вторую, которую хочешь заблокировать

в случае с 1С, значение @@LOCK_TIMEOUT секунд она сама задает:
Конфигуратор > Администрирование > Параметры информационно базы > Время ожидания блокировки данных
...
Рейтинг: 0 / 0
Как имитировать падение документа по таймауту?
    #38652152
Alex_MA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в обработке проведения документа заблокируй что нибудь,
например

Транзакция №1

Набор = РегистрыНакопления.<>.СоздатьНаборЗаписей();
Набор.Отбор.Установить(Регистратор);
Набор.Очистить(); - Установили X блокировку по регистратору.

После Очистить() ставим точку останова и ждем.

В другой сессии Транзакция №2

НачатьТранзакцию();

Запрос на чтение данных из 1-ой транзакции

ЗафиксироватьТранзакцию();
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как имитировать падение документа по таймауту?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]