Имя: Пароль:
1C
1С v8
Потерянные лицензии на файловых базах
0 nowhere95
 
22.03.19
09:15
Платформа 8.3.13.1644, файловые базы УТ11 и несколько БП. УТ 11 расшарена по вебу и несколько пользователей работают удаленно, остальные в терминале. Фирма небольшая, всего 10 программных лицензий. За день до трех лицензий уходит в "никуда", т.е. реально работают 7 человек, для восьмого лицензий нет. Были проблемы с вылетом веб-пользователей из-за плохого канала, но решил настройкой параметром спящего и пассивного режимов - пользователи автоматически отключаются. Но проблему с занятыми лицензиями не решило. Есть ли средство чтобы понять куда и кем расходуются лицензии и соответственно возможность освобождать лицензии? Перезагрузка сервера плохой вариант (
1 Фрэнки
 
22.03.19
09:26
но сам по себе этот "плохой вариант" насколько помогает? Может он и не помогает вовсе?
2 zva
 
22.03.19
09:37
т.е. реально работают 7 человек…
Один человек открыл УТ и две БП и "съел" 3 лицензии.
3 nowhere95
 
22.03.19
10:32
Фрэнки, пользователь из активных пропадает, по крайней мере в конфигураторе. А вот освобождается ли лицензия? Как можно это проконтролировать?

zva, там 10 лицензий по одной. В таком случае занимается одна лицензия.
4 cons24
 
22.03.19
10:51
(3) "В таком случае занимается одна лицензия." - фигушки, Фрэнки прав.
5 Мимохожий Однако
 
22.03.19
10:53
Еще есть фоновые задания. Скорее всего они кушают лицензии.
6 bolobol
 
22.03.19
11:44
(5) Фоновые в файловой кушают лицензии?
7 hhhh
 
22.03.19
12:04
(6) ну хотя бы одну на всех должны кушать.
8 bolobol
 
22.03.19
12:44
(7) Так её и скушал клиент-владелец фоновых заданий. Или файловая база в самом файле фоновые задания запускает?, прямо на микрухе жёсткого диска...
9 nowhere95
 
22.03.19
12:47
hhhh, фоновые задания запускаются в файловой базе когда хоть один пользователь вошел в базу, т.е. под его же лицензией.
Но тут есть связка с IIS, но он точно сам 1с не запускает ;)
10 nowhere95
 
22.03.19
13:00
Коллеги, давайте я упрощу вопрос. Проблема началась после внедрения IIS и удаленных пользователей. Для удаленных и неактивных пользователей я нашел решение в виде "настройкой параметров спящего и пассивного режимов", которое рекомендует 1С. Но есть подозрение, что завершение работы пользователя происходит (факт), но лицензия не освобождается. Есть мнения?
11 nowhere95
 
22.03.19
13:07
Да. проверил. В одном терминальном сеансе берется одна лицензия на все открытые базы.
12 bolobol
 
22.03.19
13:48
(10) Лицензия освобождается крайне не быстро. Через минут 30 я устал ждать. Такая же проблема.
13 Garykom
 
гуру
22.03.19
13:54
(0) Можно веб-сервер перезагружать ))
14 Garykom
 
гуру
22.03.19
13:54
(13)+ В смысле рестарт службы, но это тоже плохое решение.
15 Garykom
 
гуру
22.03.19
14:04
Еще можно отреверсинженерить http протокол и написать свою прокладку которая кое что делает.

Или лучше банально запретить вход в базу(ы) с одинаковым логином.
Чтобы юзер правильно выходил из сеансов и не мог зайти если уже висит на нем лицуха.
16 nowhere95
 
22.03.19
14:12
(15) Т.е. ты утверждаешь, лицензию держит IIS?
Запретить вход с одинаковым логином не пройдет. Я же выше писал, что пользователя в 1с нет.
17 Garykom
 
гуру
22.03.19
14:22
(16) "Модуль расширения веб-сервера" нужное число лицензий по кол-ву сеансов текущих держит.

Делай логины с паролями, иначе никак.
18 nowhere95
 
22.03.19
14:29
(17) Не совсем понял, должен быть не пустой пароль пользователя на базу? А что это дает?
19 Garykom
 
гуру
22.03.19
14:33
(18) Даст защиту от входа пользователя который неправильно закрыл сеанс, под другим чужим логином ))
20 nowhere95
 
22.03.19
14:44
Либо я дурак, либо таки пятница) Проблема входа под другим логином не стоит, выход неактивного пользователя из базы происходит через 5-6 минут автоматически средствами 1С. Вот только лицензия похоже не освобождается (
21 Garykom
 
гуру
22.03.19
14:49
Короче:
1. Сносим IIS
2. Ставим 10 копий апача (служб) на разных портах
3. Настраиваем хитрую маршрутизацию для входящих чтобы отправляла на нужный порт и нужный свободный апач
4. Если выход пользователя произошел то средствами 1С перезапускаем службу апача нужного.
5. Профит
22 Фрэнки
 
22.03.19
14:49
(20) он имеет ввиду ситуацию, что при повторном входе одного из пользователей происходит выдача новой лицензии под новый сеанс, хотя можно было бы аккуратно зайти так, чтобы подхватить прежнюю лицензию от предыдущего сеанса. Но нужно точно-точно совпасть с этим предыдущим сеансом.

На древних релизах такого головняка не было, но на свежих платформах такое поведение у баз отмечается.
23 Garykom
 
гуру
22.03.19
15:00
(21)+ Маршрутизация в простейшем виде это банальный редирект на php где определяем какой из апачей свободен и туда и отправляем.
Для веб-клиентов это должно нормально работать.
https://www.internet-technologies.ru/articles/kak-sdelat-redirekt-na-php.html

Для тонких клиентов уже уже сложнее
24 Garykom
 
гуру
22.03.19
15:15
Хм можно проще сделать вариант если каждому пользователю можно выдать свою уникальную ссылку (url) то умная маршрутизация не нужна.
Но перезапуск апача по выходу все равно сделать.
25 Sysanin_1ц
 
22.03.19
19:01
(0) Попробуй платформу 1с другую поставить. Бывает что некоторые релизы платформы сеансы не освобождают вовремя. Это такой плавающий глюк от релиза к релизу. Мы в таком случае ставили другие платформы и становилось лучше.
26 Winnie Buh
 
22.03.19
19:51
ещё одной из причин залипания лицензий на x64 терминальном серваке может быть процесс splwow64.exe, который запускается при печати и завершается только через некоторое время после окончания печати,
если же в этот момент закрыть 1С, то терминальная сессия не закроется и лицензия не освободится
27 Garykom
 
гуру
22.03.19
19:59
(26) Как я ненавижу кривые win-принтеры на терминальном сервере ))
28 mistеr
 
22.03.19
20:49
(26) Каким образом процесс splwow64.exe может держать 1С-ную лицензию?
29 Провинциальный 1сник
 
22.03.19
21:16
(23)  "Маршрутизация в простейшем виде это банальный редирект на php где определяем какой из апачей свободен и туда и отправляем. Для веб-клиентов это должно нормально работать. "
Нет, не будет. Нюанс в том, что в 1с есть такое понятие как "соединение", которое в случае опубликованной через веб базы должно поддерживаться конкретным веб-сервером. То есть, если ты поднял соединение на одном сервере, а потом дергаешь серверный вызов на другом - 1с вылетит с ошибкой.
Именно поэтому и пришлось делать сервис с трассировкой, чтобы повторные обращения от клиента шли туда, где изначально был инициирован сеанс. Вот это решение http://catalog.mista.ru/public/242527/
30 Garykom
 
гуру
22.03.19
21:47
(29) Редирект идет до начала соединения а не в процессе
31 Garykom
 
гуру
22.03.19
22:02
32 Garykom
 
гуру
22.03.19
22:03
(31) Речь шла про веб-клиент а не тонкий клиент, там сразу написал что все сложнее.
Но спасибо за подсказку готового решения для тонких на ИС
33 Мимохожий Однако
 
22.03.19
22:15
34 Провинциальный 1сник
 
23.03.19
08:38
(30) Каждый серверный вызов это отдельный http-запрос, и он должен поступить именно на тот веб-сервер, на котором установлено соединение. Случайно выбирать нельзя.
35 Cyberhawk
 
23.03.19
13:29
Время засыпания поменьше поставь и лицензия будет освобождаться быстрее
36 Cyberhawk
 
23.03.19
13:29
Время завершения можешь не трогать вообще, т.к. оно уже на потребление лицензии спящим сеансом не влияет
37 nowhere95
 
24.03.19
11:20
(29) Как я понимаю такое решение сработает в случае, если сервер расположен локально. В данном случае сервер расположен в облаке, подключаются в основном из офиса. Т.е. по IP определить клиента не получится, т.к. будет один внешний.
38 nowhere95
 
24.03.19
11:24
(35) Время сейчас установлено на 300 секунд, завершение - 10. Это работает - работа пользователя завершается, а лицензия похоже так и висит.
39 Cyberhawk
 
24.03.19
13:35
"лицензия похоже так и висит" // Вроде это довольно просто проверить / воспроизвести. Не должна висеть после засыпания сеанса. Спящий сеанс или нет видно в консоли кластера. В случае несоответствия поведения ожидаемому пиши вендору ошибку, перед этим только платформу обновить не забудь. Короче действуй)
40 nowhere95
 
24.03.19
13:53
(39) Cyberhawk, базы файловые, если был бы сервер 1С - не было вопроса.