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

транзакция не закрыта - блокировка должна висеть
...
Рейтинг: 0 / 0
08.04.2014, 12:31
    #38608285
AHDP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать падение документа по таймауту?
Commit transaction - разблокирует. Или Rollback.
...
Рейтинг: 0 / 0
08.04.2014, 13:01
    #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
08.04.2014, 13:26
    #38608402
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как имитировать падение документа по таймауту?
либо блокировки прозрачны (shared на shared) либо пространства не пересекаются...

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

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

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

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



Надо так:

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

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

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

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

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

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

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

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

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

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


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