Имя: Пароль:
1C
1C 7.7
v7: Не запускается plugin_terminal_sleep.
0 maxnn
 
25.07.12
14:20
Возникла неожиданно проблема с транзакциями и со 100% загрузкой процессора.

Поставил плагин plugin_terminal_sleep, всё сделал как сказано, пропатчил seven.dll, все файлы в своих каталогах.

Но при запуске 1С возникает в трее всплавающее окно на 1 секунду "не установлен plugin_terminal_sleep" дальше запуск 1С продолжается.

Помогите побороть проблему? А то контора работать щас не может.
1 ЧеловекДуши
 
25.07.12
14:26
"Неудачник"

Сколько пользователей в БД?
terminal_sleep - не рашает проблему с транзакциями, а только сглаживает этот угол :)
Как у вас называется конфигурация? (Бух, ТиС, УСН, ЗиК)
У вас БД - DBF или SQL?
На каком именно документе все зависает?
При каких условиях?
В какой момент времени?
У кого именно чаще всего? (пользователи)

В общем собирай статистику, изучай 1С, исправляй "ГоуноКод", в 99% это все дело в нем :)
2 Fragster
 
гуру
25.07.12
14:28
(1) не прав. на терминале с 4 ядрами и >4 активных юзеров без этого никак
3 ЧеловекДуши
 
25.07.12
14:28
(2)1С 7.7 использует всегда 1 Проц.
И это тоже решается установкой 64-битной Оси :)
4 maxnn
 
25.07.12
14:29
У меня 27 релиз. В Плагине написано что нужно иметь 25 релиз?  Не произойдёт ничего страшного если я релиз понижу платформы?
5 ЧеловекДуши
 
25.07.12
14:30
+(2)Если у автора DBF, то там вообще-то даже плагина не надо, чисто все в коде.
А если SQL, то бывает прямые запросы решают проблему + так же и могут усугубить.
6 ЧеловекДуши
 
25.07.12
14:30
(4)На заборе тоже пишут, но ты же этому не следуешь?
7 Fragster
 
гуру
25.07.12
14:30
(3) прочитай еще раз (2)
8 maxnn
 
25.07.12
14:32
База ДБФ. Размер в пределах.
9 maxnn
 
25.07.12
14:33
Конфигурация Комплексная
10 ЧеловекДуши
 
25.07.12
14:33
(7)Не буду, зачем? У нас терминал, тоже мучились, но с нехваткой ресурсов.
Поставили 64-битную, воткнули побольше оперативки, все работает.
Ну а коль так хочется не тормозить, то переходите на 8-ку, она это умеет :)
11 maxnn
 
25.07.12
14:38
Народ! Нужно срочно найти решение.

На сервере 2003 винда 64 битная. 12 гигов оперативы и 4-рёх ядерный проц. До этого проблем таких не было. База комплексная. 50 пользователей. ДБФ. Самый большой файл 1.3 гига. Количество записей в каждом ДБФ не превышает и 10 млн.

Проблема втом, что при создании документа выходит ошибка:

конт. установить новый номер(префикс) глобальный номер( 16479):  таблица 1sjourn ошибка обращения к данным при транзакции выполняемым другим пользователем.

при этом процессор на 100% загружен 7-10 пользователями. У них по 10% гдето на каждого нагрузка идёт.
12 maxnn
 
25.07.12
14:38
Поставил плагин plugin_terminal_sleep, всё сделал как сказано, пропатчил seven.dll, все файлы в своих каталогах.

Но при запуске 1С возникает в трее всплавающее окно на 1 секунду "не установлен plugin_terminal_sleep" дальше запуск 1С продолжается.

Помогите побороть проблему? А то контора работать щас не может.
13 maxnn
 
25.07.12
14:39
Щас нужно именно поставить этот plugin_terminal_sleep
14 ЧеловекДуши
 
25.07.12
14:39
(8)Тогда что ты мозг, волнуешь, вставь в глобальник вот этот кусок коду:

Попытка
   ПаузаПоТранзакции=Число(Константа.ПаузаПоТранзакции);
   
   vk_sleep=СоздатьОбъект("Addin.vk_sleep_1C");
   vk_sleep.УстановитьПаузуПриБлокировке(?(ПаузаПоТранзакции<=0,1024,?(ПаузаПоТранзакции=999999999,0,ПаузаПоТранзакции)), "7.7"); //1024
   vk_sleep.ПоказыватьВсплывающиеПодсказки=0; //если=1, то показывает balloon tooltips в трее при блокировке.
   //значение 0 отключает показ "баллонов"
   
   //Имя сигнального файла (если пусто, то при блокировках не создается)
   //Полезно для обработок проведения
   vk_sleep.ИмяФайла=КаталогИБ()+"_LockSlpTR.txt";
   
   ////делает паузу на указанное число мс (полезно для обработок проведения)
   //vk_sleep.sleep(100);
   
   ////Установка приоритетов (использовать не обязательно)
   ////Позволяет установить приоритет процесса 1С
   //vk_sleep.ПриоритетПроцесса("NORMAL_PRIORITY_CLASS");
   ////IDLE_PRIORITY_CLASS
   ////NORMAL_PRIORITY_CLASS
   ////HIGH_PRIORITY_CLASS
   ////REALTIME_PRIORITY_CLASS
   ////Позволяет установить приоритет потока 1С
   //vk_sleep.ПриоритетПотока("THREAD_PRIORITY_NORMAL");
   ////THREAD_PRIORITY_IDLE
   ////THREAD_PRIORITY_LOWEST
   ////THREAD_PRIORITY_BELOW_NORMAL
   ////THREAD_PRIORITY_NORMAL
   ////THREAD_PRIORITY_ABOVE_NORMAL
   ////THREAD_PRIORITY_HIGHEST
   ////THREAD_PRIORITY_TIME_CRITICAL
Исключение
   Сообщить("Не удается создать объект AddIn.vk_sleep_1C... !!!");
   vk_sleep=0;
КонецПопытки;

Нужна только библиотека: vk_sleep_1C.dll от 17 мая 2006 г., 17:04:54 ( у меня такая)
15 ЧеловекДуши
 
25.07.12
14:40
(13)Вертай все обратно, я надеюсь ты архив файла сделал? :)
16 maxnn
 
25.07.12
14:41
(15) какого файла? seven? Он есть забекапленый.
17 maxnn
 
25.07.12
14:41
(14) Только я нихрена не программист, сам не вставлю код. Можно без этого обойтись?
18 ЧеловекДуши
 
25.07.12
14:42
(16)Да.
Патчить нужно только для SQL версии :)
19 ЧеловекДуши
 
25.07.12
14:44
(17)Тогда страдай.
Код надо вставить в конец функции "ПриНачалеРаботыСистемы()"

Если точней, то вот такой:

ЗагрузитьВнешнююКомпоненту(""+КаталогИБ()+"vk_sleep_1C.dll");
Попытка
   ПаузаПоТранзакции=Число(Константа.ПаузаПоТранзакции);
   
   vk_sleep=СоздатьОбъект("Addin.vk_sleep_1C");
   vk_sleep.УстановитьПаузуПриБлокировке(?(ПаузаПоТранзакции<=0,1024,?(ПаузаПоТранзакции=999999999,0,ПаузаПоТранзакции)), "7.7"); //1024
   vk_sleep.ПоказыватьВсплывающиеПодсказки=0; //если=1, то показывает balloon tooltips в трее при блокировке.
   //значение 0 отключает показ "баллонов"
   
   //Имя сигнального файла (если пусто, то при блокировках не создается)
   //Полезно для обработок проведения
   vk_sleep.ИмяФайла=КаталогИБ()+"_LockSlpTR.txt";
   
Исключение
   Сообщить("Не удается создать объект AddIn.vk_sleep_1C... !!!");
   vk_sleep=0;
КонецПопытки;


Зайти один раз в БД под админом, т.е. под тобой и усе.
20 maxnn
 
25.07.12
14:44
(19) У меня Длл от 17 августа 2007 года... Сможешь скинуть свою версию?
21 ЧеловекДуши
 
25.07.12
14:45
+ Константа.ПаузаПоТранзакции - Это константа, замени на 1024, просто через константу проще манипулировать паузами :)
22 ЧеловекДуши
 
25.07.12
14:45
(20)Думаешь у тебя хуже ? :)

Сейчас.
23 maxnn
 
25.07.12
14:46
у меня он ещё называется plugin_terminal_sleep.dll


А ДЛЛ куда кидать? в Bin?
24 ЧеловекДуши
 
25.07.12
14:47
25 ЧеловекДуши
 
25.07.12
14:47
(23)>>>А ДЛЛ куда кидать? в Bin?

В каталог БД (БД - база данных)
26 maxnn
 
25.07.12
14:50
(25) Кроме этого ДЛЛ больше ничего не нужно?


И где эта константа(21) "+ Константа.ПаузаПоТранзакции - Это константа, замени на 1024, просто через константу проще манипулировать паузами :)"
27 ЧеловекДуши
 
25.07.12
14:51
(26)Я добавил, руками через конфигуратор :)
1024 - вроде секунда или около того.
28 maxnn
 
25.07.12
14:54
(27) ТОесть я открываю конфигуратор. Главный модуль. Ищу там функцию "ПриНачалеРаботыСистемы()" В конце вставляю твой код из (19).

Подскажи, где тогда и как мне добавть эту константу.
29 ЧеловекДуши
 
25.07.12
15:57
(28)Так и называется "Константы", там еще есть "Справочники", но тебе нужны "Константы"
Встаешь на это наименование и нажимаешь кнопку "+" ,т.е. добавить.
И Называешь её "ПаузаПоТранзакции", и Тип указываешь ей "Число", Длина 10, точность 0.

В общем, трудно ошибиться.
Даже если константа будет "Документы", то все ровно по алгоритму будет стоять число "1024".

Бекапы не забудь сделать
30 maxnn
 
25.07.12
19:45
(29) Спасибо за советы. Сегодня вечером сделаю.


А можешь ещё подсказать как проверить работу данной модификации. Как сымитировать проблему с захватом таблицы? А то не хочется узнать что что-то сделал не так, когда народ начнёт работать.
31 maxnn
 
25.07.12
22:13
(29) Я константу добавил, а где значение ей присвоить?
32 Fragster
 
гуру
25.07.12
22:14
обработка проведения и Предупреждение в ней
33 maxnn
 
25.07.12
22:15
(32) Всмысле? Расшифруй для тупых...
37 ЧеловекДуши
 
26.07.12
08:25
(31)В Пользовательском режиме жимкаешь меню "Операции" -> "Константы..."
Находишь свою константу и проставляешь там 1024.
Можно больше, но смысла нет.
Что бы увидеть, порой бывает достаточно перестать слышать.
Слышать звонки от пользователей.
Или хотя бы сократить их уровень интенсивности.
38 ЧеловекДуши
 
26.07.12
08:30
+ Для визуализации транзакции, читай коменты в коде

vk_sleep.ПоказыватьВсплывающиеПодсказки=0;
//если=1, то показывает balloon tooltips в трее при блокировке.

т.е. если проставить вместо нуля, Один, то пользователей будут пугать транзакционными окнами.
В свое время я тоже этим баловался, но решил отключить, ибо пользователи начали пугаться и судорожно звонить.
Напоминает с ситуацию с Антивирусниками, когда пользователь видит сообщения об вирусе, то он не понимает, что это как раз и хорошо.
А вот если антивирусник нечего не пишет, то тут и скрывается опасность.
39 ЧеловекДуши
 
26.07.12
08:30
+ >>> пользователей будут пугать транзакционными окнами.

Окнами в трее, меня немного оно всегда раздражало :)
40 maxnn
 
26.07.12
12:24
(38)  После внедрения вроде получше стало. Так как первое зависание только в 12 часов дня произошло.
Выходят ошибки о транзакции

при выполнении ьранзакции произошла ошибка! Таблица: 1sjourn ошибка обращения к данным при транзакции выполняемым другим пользователем.

при выполнении ьранзакции произошла ошибка! Таблица: 1sdnlock ошибка обращения к данным при транзакции выполняемым другим пользователем.


При этом процессор загружен на 100%. В диспетчере задач видно что человек 7 с загрузкой процессора каждый по 10-13%. Сервер сам подвисает серьёзно.  Через 2-3 минуты всё отвисает и 1С опять летает. Без намёков на тормоза.