Имя: Пароль:
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С опять летает. Без намёков на тормоза.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой