Имя: Пароль:
1C
1С v8
Кеширование COM-соединения для нескольких сеансов.
,
0 HardBall
 
22.06.16
14:30
1С 8.1 Обычное приложение.
Замутил глобальную ТЗ с COM-соединиями.
Один пользователь создал соединение, остальные пользуются.
Насколько это безопасно?
Может для каждого пользователя создавать новое соединение?
1 Nuobu
 
22.06.16
14:32
(0) А для каждого пользователя в ком-соединении будут разные пользователи?
2 H A D G E H O G s
 
22.06.16
14:37
чето ты фантастику пишешь
3 HardBall
 
22.06.16
14:38
Один "специальный" пользователь в базе к которой подключаются.
4 Garykom
 
гуру
22.06.16
14:38
(2) Это походу именно то что запрещено лицензией 1С.
Хочет избавиться от задержки на установку соединения каждый раз.
5 HardBall
 
22.06.16
14:39
(4) Именно.
6 Nuobu
 
22.06.16
14:39
(3) Тогда, если осилишь, то делай.
(4) - уточни, пожалуйста, про лицензии, а то я не понимаю.
7 Garykom
 
гуру
22.06.16
14:42
(6) http://v8.1c.ru/predpriyatie/questions_licence.htm раздел Мультиплексирование, ...
8 Nuobu
 
22.06.16
14:43
(7) Так если соединение будет только одно, то в чем проблема?
9 Garykom
 
гуру
22.06.16
14:43
(8) Прочитай
10 Nuobu
 
22.06.16
14:44
(9) То бишь, если 5 пользователей работают в одной базе, потом по КОМу все ПЯТЬ коннектятся через одно соединение к другой, то нужно приобрести 10 лицензий вместо 6?
11 Garykom
 
гуру
22.06.16
14:45
(9)+ Понятие "одновременно" там не расписано, но хороший юрист докажет что не может быть "мгновенной работы" итого нужно считать за разумный период времени по среднему.

И если в течении 1 минуты у тебя на 1 лицензию было 10 соединений от 5 разных пользователей то?
12 Nuobu
 
22.06.16
14:47
(11) То нужно приобрести еще 9. Спасибо.
13 Garykom
 
гуру
22.06.16
14:49
(12) еще 4 т.к. 5 юзеров
14 skafandr
 
22.06.16
14:51
(11) Не очень понятна цель решаемая ТС. Если съэкономить лицензии,то можно перечитывать Ваши ссылки. А если для экономии времени на подключение COM то можно обернуть работу с COM флагом доступности и условие лицензии в части "одновременно" соблюсти.
15 Nuobu
 
22.06.16
14:52
(13) Значит, я не понял, чего ты в (4) написал про нарушение лицензий?
Я подразумевал, что для пяти пользователей лицензии куплены. Они работают с одной базой. ТС пишет код, чтобы коннектится к  другой базе под одним и тем же пользователем. В таком виде нарушения будут или нет?
16 HardBall
 
22.06.16
14:55
(14) Цель - экономия времени на создание COM-соединения
17 Garykom
 
гуру
22.06.16
15:01
(15) А как проверить сколько там реально пользователей и сравнить с кол-вом приобретенных лицензий?
Про нарушение лицензии к слову написал реально то пусть делает, это типовой лисапед в других языках/системах по поддержанию пула соединений к примеру к БД и распределение работы клиентов через этот пул.
Сам такой лисапед ваял на Java для mysql/postrges
18 skafandr
 
22.06.16
15:06
(17) сколько реальных пользователей без разницы,важно что семафорчиком можно загарантировать одновременную работу только одного пользователя,те соблюсти требования лицензии.
19 xxTANATORxx
 
22.06.16
15:12
(2)++100500
(0)что в твоем понимании глобальная ТЗ?
переменная сеанса?
20 HardBall
 
22.06.16
15:17
(19) ТЗ
Колонка
"Соединение" - тип COM-объект
"ПутькБазе" - строка
При создании соединения проверяется есть ли запись в ТЗ.
Если есть запись получить из ТЗ соединение, если нет создать и записать в ТЗ.
Вопрос синхронизации работы с ТЗ не стоит.
21 HardBall
 
22.06.16
15:17
(20) + в модуле приложения.
22 ptiz
 
22.06.16
15:20
(21) И как второй пользователь получит переменную первого пользователя?
23 Nuobu
 
22.06.16
15:21
(22) Подойдёт к первому, воспользуется и вернётся на своё рабочее место.
24 xxTANATORxx
 
22.06.16
15:22
(22)+
(20)если бы было так просто  )
это, как вариант, делается через рег задание на сервере и регистр сведений
25 HardBall
 
22.06.16
15:23
(22) (21)
26 HardBall
 
22.06.16
15:24
(24) 8.1, обычное приложение, файловая БД
27 xxTANATORxx
 
22.06.16
15:26
(25)все переменные создаются и используются в "сеансе", и получить из одного сеанса переменную другого сеанса напрямую не получится
28 Nuobu
 
22.06.16
15:26
(26) Вопрос остаётся открытым.
29 xxTANATORxx
 
22.06.16
15:29
(26)ок. переменная глобального модуля глПользователь
на одном компе в одной файловой базе работают 10 пользователей, т.е. 10 сеансов

напиши как получить в одном сеансе все значения этой переменной в других сеансах
30 ptiz
 
22.06.16
15:30
(26) Подключись таким образом разными юзерами к одной БД, зайди в ту БД, и увидишь два подключения, как бы ты их не кэшировал.
31 xxTANATORxx
 
22.06.16
15:30
(26)чтоб реализовать(24) читай инфу по рег заданиям на файловой БД
32 xxTANATORxx
 
22.06.16
15:32
(29)+
коллеги, ну мошт есть какой нить читерский вариант, хотелось бы знать
33 Проггер
 
22.06.16
15:35
Было подобное для того что бы не подключался пользователь по нескольку раз. Из минусов при обновлении базы приходилось выкидывать через консоль и дикие глюки если не обнулили переменные
34 HardBall
 
22.06.16
15:37
Походу только для одного сеанса будет кэшироваться.
35 xxTANATORxx
 
22.06.16
15:39
(34)ну это тоже норм
токма СОМобъект нужно пинговать раз в 20 мин чтоп не отваливался
36 ptiz
 
22.06.16
15:40
(0) В 8.3.9 появится пул соединений, вот там будет шустро.
37 ptiz
 
22.06.16
15:40
(36)+ конечно же, для веб-сервисов и т.п.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.