Имя: Пароль:
1C
1С v8
Завис сеанс намертво. 1С:Предприятие 8.3 (8.3.7.1845)
,
0 1dvd
 
31.03.17
07:12
Приветствую всех!

Есть у меня тестовая база на сервере. При определенных манипуляциях завис сеанс. Не могу обновить конфу - только динамически.
Попросил админа прибить сеанс. Он это сделал, в активных пользователях пусто. Однако, обновить по-прежнему не могу, говорит что активный сеанс таки есть.

Как его прихлопнуть окончательно? Почему так происходит? Глюк в платформе?
1 Amra
 
31.03.17
07:29
прибивайте соединение. не поможет - перезапуск агента сервера
2 alexey123perm
 
31.03.17
07:38
Если база на сервере, то в любом перечислении значения поменяйте "Туда-обратно". Платформа это будет трактовать как изменение метаданных и сама завершит сеансы. Ну, или попробует завершить...
3 1dvd
 
31.03.17
07:40
(1)
http://savepic.ru/13413003.jpg
http://savepic.ru/13417099.jpg
Чего там прибивать?

Если б можно было службу рестартануть, я бы ветку не создавал. Сервер боевой
4 1dvd
 
31.03.17
07:45
(2) нифига не понял. Подвигал перечисления. Картина не поменялась
5 Sammo
 
31.03.17
07:46
На скулевом сервере соединение есть? Если есть - прибить
6 alexey123perm
 
31.03.17
08:01
(4). Подвигал, делаешь "Обновить конфигурацию базы данных". Выбираешь "Обновить динамически", программа скажет, что динамически обновить не может и предложить завершить сеансы.
7 1dvd
 
31.03.17
08:06
(6) не помогло. Сказала что динамически не может, но завершить сеансы не предлажила
8 1Снеговик
 
гуру
31.03.17
08:15
(7) обновись до 8.3.9, там это реализовано)
9 rphosts
 
31.03.17
08:16
(7) Это потому-что сеанса уже нет, а блокировка от него осталась. Рестартани сервис 1С-Предприятие
10 1Снеговик
 
гуру
31.03.17
08:17
Нельзя чтоли из диспетчера задач прибить?
Найди процесс по номеру соединения в конце концов
11 1Снеговик
 
гуру
31.03.17
08:19
Боевой сервер надо было ночью рестартовать. Вообще полезно иногда.
12 rphosts
 
31.03.17
08:19
(10) может и РП и сеанс быть похереными но блокировка при этом зависает...
13 1dvd
 
31.03.17
08:20
(10) сеанс из диспетчера на клиенте? его там нет
14 rphosts
 
31.03.17
08:20
(11) раз в месяц я-бы даже рекомендовал
15 rphosts
 
31.03.17
08:20
(13) см (9)
16 1Снеговик
 
гуру
31.03.17
08:24
Название тут напомнило: "То что мертво, умереть не может" ))
17 alexey123perm
 
31.03.17
08:31
(13) Диспетчере на сервере 1С.
18 1dvd
 
31.03.17
08:34
(17) и какой там процесс прибить? Агента чтоли? Нафига? если можно более гуманным способом перезапустить процесс.
Не могу я перезагружать процесс, сервер боевой. Работают люди
19 dezss
 
31.03.17
08:46
(18) было такое когда-то...рестарт агента только помог...
Сеанса не было, блокировка осталась. Сбросить блокировку никак не получалось.
На sql-е тоже ничего не помогло.
20 catena
 
31.03.17
08:58
(18)Поэтому тестовые и рабочие базы должны сидеть на разных подоконниках. У меня даже тестовые на два разбиты. Чтобы безболезненно рестартовать агента. Была такая проблема, только рестартом службы спаслись.
21 1dvd
 
31.03.17
09:00
(20) у нас так и есть. У меня есть собственный сервер, в котором я делаю что хочу. Однако, возникла проблема, которая проявляется только на боевом сервере. Создал пустую базу там, только конфигурация, чтобы выявить причину сбоя. А тут на тебе...
22 Dmitrii
 
гуру
31.03.17
09:04
(0) Необходимо остановить сервер 1С и убить всё содержимое папочки? содержащей информацию о  блокировках, название которой начинается с "snccntx". Эта папочка лежит в папке реестра кластера серверов 1С (по умолчанию - c:\Program Files\1cv8\srvinfo\reg_1541 ). При работающем агенте сервера папку удалить нельзя.

Ниже пример скрипта для перезапуска всех служб и процессов 1С с убиванием всех временных файлов (в том числе и данных о блокировках в папке snccntx).
Пример приведен для случая, когда реестр кластера серверов 1С размещен в нестандартном месте на диске F - F:\srvinfo\reg_1541

set LOG_FILE="scripts.log"
set SERVICE_1C_NAME="1C:Enterprise 8.3 Server Agent (x86-64)"
set SERVICE_RAS_NAME="1C:Enterprise 8.3 Remote Server"
set CNTX_PATH="F:\srvinfo\reg_1541"
set PFL_PATH="C:\ProgramData\1C\1cv8"
set TEMP_PATH="C:\Windows\Temp"
echo stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im "rphost.exe"
taskkill /f /im "rmngr.exe"
taskkill /f /im "ragent.exe"
taskkill /f /im "ras.exe"
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%\snccntx*
DEL /Q /F %PFL_PATH%\*.pfl
DEL /Q /F /S %TEMP_PATH%\*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc start %SERVICE_1C_NAME%
sc start %SERVICE_ RAS _NAME%
echo Service %SERVICE_1C_NAME% restarted at %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
23 catena
 
31.03.17
09:06
(21)А у меня на рабочем сервере три кластера. Очень полезно. Я не критикую, я советую.
24 Dmitrii
 
гуру
31.03.17
09:07
+ к (22) пример для сервера x64. Если сервер x86, то необходимо изменить в скрипте имя службы 1С.
25 1dvd
 
31.03.17
09:09
(23) три кластера - это три отдельных SQL сервера? Кучеряво живёте :)
26 Dmitrii
 
гуру
31.03.17
09:10
(18) >> Не могу я перезагружать процесс, сервер боевой

Это ваши личные половые трудности. Об этом надо было думать, когда просили админа прибить сеансы и делали свои непонятные манипуляции.

Сейчас поздняк метаться. Других способов, кроме (22) нет. Надо убить данные о зависших блокировках (папку snccntx*), а при работающем агенте это невозможно.
27 catena
 
31.03.17
09:11
(25)Зачем? Говорю же, один сервер приложений, один скулевый. Процессы разнесены просто.
28 Amra
 
31.03.17
09:12
(3) Соединение в консоли сервера предприятия, елки! Ну как маленький
29 1dvd
 
31.03.17
09:13
(28) прибили давно. Пусто там
30 Dmitrii
 
гуру
31.03.17
09:19
(25) Он о кластере серверов 1С.
Причем он мог поднять их все на одном физическом серваке. Зачем это надо не знаю. Польза весьма сомнительна. Это не дает ни отказоустойчивости, ни производительности.

Имеет смысл только для разнесения продуктива от разработки. Первый не трогаем, на втором -debug и всяческое баловство с динамическими обновлениями и перезапусками по желанию.
31 1dvd
 
31.03.17
09:20
(30) Катёна девушка. Причем, очень даже красивая
32 Amra
 
31.03.17
09:22
(29) Ты соединение с сеансами не путаешь?
33 Dmitrii
 
гуру
31.03.17
09:22
(31) Всё равно придётся сервер останавливать.
34 Dmitrii
 
гуру
31.03.17
09:23
(28)(32) Это не решит его проблему.
35 aleks_default
 
31.03.17
09:23
Киллнуть процесс на SQL-сервере через квери аналайзер не пробовали?
36 1dvd
 
31.03.17
09:25
(35) это как?
37 dezss
 
31.03.17
09:25
(35) не будет его там...у самого такой косяк был когда-то...осталась только блокировка и все...сеансов и процессов нет...
38 Dmitrii
 
гуру
31.03.17
09:29
(36) Это не поможет. Не парься.
39 bmitkin
 
31.03.17
09:41
В консоли администрирования сервера ставишь интервал перезапуска ненулевой.
Сервер перезапускает процессы. Активные соединения переходят на новые процессы, а умершие соединения остаются на старых.
Когда все живые перейдут на новые (активные) процессы, неактивные можно грохнуть через диспетчер задач по PID. Вместе с ними умрут зависшие соединения.
После этого обнули интервал перезапуска, чтобы больше не перезапускались процессы.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn