1C 7.7 "Секретный релиз" + Windows Server 2008r2 и 1С запускается и работает, но ввиду того, что обновили BkEnd, потеряли полезнейший функционал, такой как предотвращение "загрузки процессора на 100%" при ожидании блокировки журнала.
Что то не работает оптимизатор на 2003 сервере. До этого использовал vk_TerminalSleep.7z, эффект был. Решил попробовать вашу систему, пользователи закричали, что постоянно транзакции. :(
(5)
возможно BkEnd.dll не оригинальная. Попробуйте взять оригинальную из поставки 1С переименовать ее в BkEnd0.dll, а BkEnd.dll взять из "Секретного релиза", хотя для 2003 достаточно оригинальной BkEnd
Возможно используете ODBC32.dll в связке с ODBC33.dll. Нужна ODBC32.dll оригинальная.
Установите на виртуалке или отдельной машине оригинальную 1С, добавьте туда vk_hook1C.dll и сымитируйте блокировку транзакции.
Ну это когда одновремено 3-5 пользователей начинаю проводит доки и тут еще масовая загрузка доков в течении сек 30, так у некоторых почему то 1с тупо закрывается и все, вот немогу понять из за чего скачал эту dll попробую место odnc33.dll
Скажите пожалуйста, есть сервер Windows 2008 SP2, SQL 2000, 1С 7.7 (27 релиз), пользователи работают терминально через RemoteApp. Cлучается произвольно, что несколько (от 1 до 4 из 30 однотипных пользователей) подключений, начинают интенсивно использовать процессор, одна сессия забирает 13% проц. времени (всего 8 процессоров) т.е. 1 процессор, при этом у пользователя никаких форм журналов, обработок или списков не открыто. Пользователь при этом никаких изменений не замечает работоспособность не нарушается. Помогает только сброс сессии. Воспроизвести данную ситуацию не удается.
Замеры производительности в отладчике ничего не показали, нагрузку даёт процесс 1cv7s.exe, монитор ресурсов Windiws тоже ничего экстремального не показывает. Использование vk_hook1C результатов не дало.
Есть предположение что данное событие происходит во время краткосрочной потери связи с сервером.
Используются внешние компоненты 1С++, FormEx, DialMail. Используется Перехватчик и ТабличноеПоле, много прямых запросов через ODBCRecordSet.
(25) у меня иногда начинает 1С очень сильно тупить у некоторых пользователей. Просто снимаю сессию RDP и пользователь заходит снова, тормоза исчезают. Это не связано с vk_hook.
Благо такое случается раз-два в неделю и в целом не мешает процессу.
(26) у меня ежедневно появляется 2 - 4 таких подключения, а постоянно мониторить подключения нет возможности, благо пока мощности позволяют, но это неправильно. Установить бы причину.
(27) так не связано ли это с RDP? или какими-то настройками сервера, сети, конкретной машины пользователя.
если бы SQL то у всех бы тупило
если бы 1С то скорее на похожих ситуациях вешалось бы и опять таки у всех
у меня в основном 3-4 человек с такими зависаниями есть.
Если есть подозрения на "... данное событие происходит во время краткосрочной потери связи ...", то может попробовать для начала в маршрутизаторе провода в гнездах попереставлять, или вообще особо зависающих пересадить на отдельный хаб...
ну это так, мысли вслух
Всем спасибо за участие, проблема решена. Через Process Explorer выяснил что у этих процессов была подгружена ScanOpos.dll, вот она и давала такую нагрузку.
(40) тема называется "Загрузка процессора 100% в 7.7 под Windows Server 2008"
Для Server 2008 патч от ромикса не работает, почему собственно и наваял это решения.
В описании про это написано.
Я не 1Сник, поэтому прошу о маленьком уточнении:
достаточно просто подключить эту ВК для устранения проблемы или необходимо еще переписывать что-то в БД?
ЗагрузитьВнешнююКомпоненту и СоздатьОбъект отрабатывает правильно, а на строке
"vk_hook.ПерехватSQLExecDirect();" 1с-ка замирает и выбрасывается с ошибкой.
После этого к сожалению пришлось закоментарить в глобальнике вызов Вашей компоненты.
(46)
Пример скачать сам не могу, т.к. на форуме ещё менее 20 сообщений.
Но вчера попробовал то же самое, но при понижении режима совместимости в БД до SQL 2000. В такой ситуации Ваша dll работает и справляется с блокировками как надо. Вот только остался како-то неприятный осадок, что специально ставился секретный релиз для сохранения режима SQL 2008, но всё таки его пришлось понижать ...
(51) без "секретного релиза" 1С не запустится на 7ке и 2008 винде без изменения 1С'ных библиотек.
(52)
по идее нужно найти как называется функция перехвата для 2005 и 2008 sql.
для 2000 она называется SQLExecDirectA и SQLPrepareA.
----
хотя не факт, что получится, т.к. нужно разбирать эту самую функцию придется.
Мне сейчас искать их ну никак не получается, воюю с почтой россии и таможней :(
maxpiter, такой вот вопрос ("слегка" не по теме):
здесь на Инфостарте есть публикация "Удобная "выгонялка" пользователей из 1С без доработок кода" ( http://infostart.ru/public/14593/ ), основанная на разработке Romix'а. Она "вклинивается" в адресное пространство с целью перехвата WinAPI-функции ShellExecuteA при помощи патчинга seven.dll (заменяется с shell32.dll на hook_1c.dll). В общем, для меня весьма удобная штука была бы, если бы не одно "но"...
Беда в том, что эта "выгонялка" не работает с Секретным Релизом. Может посоветуете что, учитывая что и у вас, и в той разработке используется hook_1c.dll ?
(55) Подменять вашу hook_1c.dll на ту которая предложена в этой публикации пробовали?
dll можно переименовать из vk_Hook1C.dll в hook_1c.dll и в конфигурации заменить на СоздатьОбъект("Addin.vk_Hook1C");
Все остальное по идее должно работать.
Или же в указанной вами публикации в hook_1c.dll внесены дополнения?
(56) попробую воспользоваться вашим советом.
Меня слегка смущает, что при использовании этой "выгонялки" для юзверя сообщение о блокировке базы появляется до выбора пользователей из списка 1С.
Не знаю, насколько там изменена dll-ка. Она называется HOOK_1C.DLL и загружает плагины, перечисленные в файле Hook_1C.ini, из папки Plugins.
P.S. Попробовал - пишет, что в библиотеке отсутствует точка входа ShellExecuteA :-(
(57) увы ничем помочь не могу, причины в 53
Может быть, когда-нибудь :)
Исходники у этой публикации и предложенной вами есть, осталось найти того, кто сможет их собрать :)
(58) Выяснил в чём "затык" у той "выгонялки" - при использовании её вкупе с Секретным Релизом почему-то не появляется в трэе значок, через который можно заблокировать/разблокировать базу. Остается найти прогера, который исправит проблему (ООП и иже с ним, к сожалению, не мой профиль) или "терроризировать" самого автора-разработчика.
На данный момент очень актуальна Ваша сборка, так как процессор стал нагружаться до 100%. У нас Windows Server 2008, почему то 2,5 месяца(установили сервер 2008) все работало замечательно, установлен BkEnd пропатченный, теперь 5 дней, как все пользователи взвыли, очень сильно стал тормозить сервер. Попробую использовать вашу сборку.
(60) интересно как у вас оно работало 2,5 месяца? Смысл "секретного релиза", как раз и заключается в том, чтобы 1С запустилась "в ОС Win Vista/7/2008 в режиме клиент-сервера (без манипуляций с файлами odbc-драйвера); "
(61) если у вас и так работает без "секретного релиза", то вам его не нужно устанавливать. Достаточно скачать vk_hook1C.dll
Извените, что-то я не поняла, у вас нагружался процессор 100% при "секретном" релизе? У нас такое стало происходить при обычной конфигурации 1С (ПУБ). Для использования вашего оптимизатора, я должна установить "секретный" релиз?
Суть в том, что у на работала 1С с обычным релизом, на Сервере 2005, был полнейший тормоз, 2,5 назад купили новый сервер и установили 2008(я обычный пользователь, может не так изъясняюсь) Все пользователи вздохнули,1С стала "летать". Но наша радость длилась не долго, вот уже 5 дней, как при работе даже двух пользователей процесор подскакивает под 100% и обработка стала происходить очень медленно. Если я установлю "секретный" релиз и ваш оптимизатор улучшится ли работа 1С?
(64) то что вы описываете, после установки компоненты и релиза, должно исчезнуть.
К публикации прикреплен файл с демо базой, запустите его с вашими библиотеками, потом с теми что в поставке, сравните результат.
(64)Релиз установить нужно это проверено. Но если загрузка подскакивает до 100% при 2-активных пользователях, это что то с системой. Посмотри посты выше у меня была похожая ситуация.
(74)
Спасибо за ответ.
Все прописал как и описан ов статье ушла проблема загрузки в 100% терминального сервера. НО не ушла проблема медленной работы 1С 7.7 и sql 2008 r2, все пользователи в терминале 2008 r2. Когда всех выгоняю и заходят первые люди все нормально, все работает. Но как только людей заваливается за 25-30 все начинает висеть и проведение 1 документа от 10 минут. Кто еще подскажет какие действия можно предпринять именно в данной связке(не предлагать использование sql 2000 и терминала под 2003)
База 30 Гб. Пользователей до 170.
(75) mrcastmaster, смотреть настройки SQL
У меня SQL сервер 16 ядер, 128 гигов оперативки. БД вся в памяти умещается пока.
База 105 гигов + log 91 гиг. tempdb на RAM диске.
Работают одновременно до 75 юзеров. Самое долгое проведение 15 секунд, самое быстрое 0.19 секунды.
То что до 10 минут проводится, означает что вы используете механизмы 1С для проведения документов, что очень плохо.
Включайте отладчик и смотрите кто тупит, скорее всего ВременныйРассчет().
И переходите на прямые запросы.
Нашел ошибку - если в параметрах SQL базы установить Режим совместимости = 100 (MS SQL 2008)
то при открытии журнала документов возникает ошибка:
---------------------------
1С:Предприятие
---------------------------
SQL State: 42000
Native: 1018
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около "INDEX". Если имелась в виду часть табличной подсказки, то для этого теперь необходимо использовать ключевое слово A WITH и круглые скобки. Правильный синтаксис см. в электронной документации по SQL Server.
SQL State: 42000
Native: 8180
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выполнить подготовку инструкций.
---------------------------
ОК
---------------------------
Если режим совместимости = 80, ошибка не возникает.
vk_hook.ПерехватSQLPrepare() начинает перехват сообщений, а как завершить его?
я использую режим совместимости sql 2014, перехват включаю только в одном журнале, перехватываю нужные мне запросы, ну и пяток не нужных, т.к. vk_hook шпарит запросы на диалекте sql 2000( другой сиснтаксис хинтов запроса ), приходится их тоже подменять.
т.е. после установки нужных мне отборов мне перехват больше не нужен, а пользоваться полноценно журналом (смотреть подчиненные документы и т.д. ) уже невозможно, т.к. придется перехватывать кучу служебных запросов и все их заменять, чего делать не хочется.
Есть ли метод остановки перехвата?
т.е. ПерехватSQLPrepare() перехват начинает, а что может его завершить?
Может кто-то подскажет в чем дело
(доступа к с кулю не имею, SQL2008)
Подключаюсь на удаленку к клиенту
При попытке модификации метаданных - вылазит проблем.
Например:
- создаю новый справочник, сохраняю конфигурацию - все норм.
- спр.номенклатура - меняю порядок реквизитов (строки неогр.длины вниз спсика реквизитов), сохраняю конфигурацию - бежит счетчик обработки спр.номенклатруры на 900 элементе в конфигураторе окошко проблемы (пиктограмма красный круглый знак ошибки), сообщеняи на окне никакого нет и кнопкой "Ок", жмем кнопку - получаем сообщение о проблеме
- аналогично предыдущему, если пытаемся добавить реквизит в справочник.
Проблемное сообщение:
SQL State: HY000
Native: 0
.... Подключение занято до получения результатов для другого hstmt
Беглое яндексение ссылается на проблемы когда прикладная работа с базой прямыми запросами и куросрами.
Про конфигуратор - ничего бегло не нарыл.
.
куда смотреть, что копать?
Спсб.
(84)
Как вариант нарушена уникальность какого нибудь поля в этом элементе(кода как правило), запустить в режиме предприятия, сортирнуть по коду, посмотреть что за 900й элемент, попробовать пересохранить его вручную с какими либо изменениями.
да, какая то нетипичная ошибка для конфигуратора.
доступ к скулю все равно нужен.
перевести на сервере базу в синглюзер режим через менеджемент студио тот же самый, предварительно через активити монитор посмотреть все соединения к базе, закрыть его. и запустить конфигуратор для изменений.
(84) возможно 1Сные dll не оригинальные используются в БД. С 2011 года используется этот перехватчик и описанных или каких-либо проблем с конфигуратором или БД не возникало. тьфу-тьфу-тьфу :)
(91)
(92)
в том то и дело, что режим совместимости sql 2014. я понимаю, что как только включается ПерехватSQLPrepare() все запросы идут через hook. я использую 27 последний релиз где используется BkEndUtls.dll, беда в том что hook перехватывает весь sql трафик и запросы идут в режиме совместимости с sql 2000. Я использую его в пределах одного журнала, и хотелось бы управлять возможностью включения и отключения перехвата, потому что вне зависимости от включенных/отключенных подмен hook пропускает через себя все запросы.
зачем, это типовые операции и к изменению структуры БД отношения не имеют, делается для отсечения прочих соединений, если они есть, чтоб уж быть точно уверенным. Бэкап и так делаться должен.
В комментариях упоминаются исходники, но в публикации я не вижу как их скачать.
Очень уж хочется доработать библиотеку для работы без режима понижения совместимости.