Имя: Пароль:
1C
1С v8
Параллельные запросы на веб-сервис в 1С выполняются последовательно.
0 vs84
 
20.09.16
18:16
Здравствуйте.

Дано:
- конфа на 8.3 (совместимость Версия 8.2.16)
- создан веб-сервис, опубликован. Веб-сервер IIS, на одной машине с сервером 1С
- Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс), по факту исполняются они последовательно. Причем очередность исполнения может не соответствовать очередности запуска.

Что во всей цепочке исполнения запроса на вс не умеет параллелить их исполнение? Может кто сталкивался с подобным.
1 Serginio1
 
20.09.16
18:18
А сколько у тебя лицензий, На каждый запрос, одна лицензия
2 Serginio1
 
20.09.16
18:19
Плюс сколько ядер. Обычно пул потоков равен двойному количеству ядер
3 shuhard
 
20.09.16
18:22
(0) попробуй Апачу
+ то, что http сервер  обслуживает запросы в произвольном порядке - так всегда и было
4 Остап Сулейманович
 
20.09.16
18:24
(0) ISAPI от 1С однопоточный. Посему никакие "улучшалки" не помогут.
5 Остап Сулейманович
 
20.09.16
18:25
+ (4) Проскакивал правда вариант разнести одинаковые по функциям сервисы по портам. Но что из того вышло - лично я хз.
6 mehfk
 
20.09.16
18:29
(1) Отнюдь.
7 Остап Сулейманович
 
20.09.16
18:31
(1) Лицензия не на запрос. А на подключение. А подключение одно. Соответственно и лицензия одна.
8 gitotuta
 
20.09.16
18:40
база то надеюсь серверная?
9 Fragster
 
гуру
20.09.16
18:44
(0) в файловой так и будет
10 Fragster
 
гуру
20.09.16
18:44
в серверной - будет норм
11 Fragster
 
гуру
20.09.16
18:45
12 vs84
 
20.09.16
18:50
База серверная, лицензий много.
13 Cyberhawk
 
20.09.16
18:50
(7) "А подключение одно" // Я почему-то подумал, что ТС под словами "Разом запускаем 10 параллельных запросов на него (дергают одну функцию вс)" имеет в виду как раз-таки 10 разных клиентов, а не 10 программных дерганий веб-сервиса из-под одного...
14 Feunoir
 
20.09.16
18:51
(0) Если с одного клиента, то ожидаемо, если с разных то печаль-беда.
15 Остап Сулейманович
 
20.09.16
18:55
(13) Десять разных клиентов дергают один ОДНОПОТОЧНЫЙ ISAPI. И пока оно не обслужит первый запрос (по единственному для него выделенному подключению) остальные стоят в сторонке (очереди веб сервера) и нервно курят. Не умеет оно сделать несколько подключений к базе. Только одно. В один момент времени.
16 Остап Сулейманович
 
20.09.16
18:56
+ (15) Для мультиплексирования разносят несколько экземпляров ВЕБ-сервера по портам. Как в (11).
17 Cyberhawk
 
20.09.16
18:58
(15) (16) А, ясно, делают несколько инстансов Апача. А с ИИС как?
18 Остап Сулейманович
 
20.09.16
18:58
+ (16) И тогда уже базу 1С могут дергать несколько ВЕБ-сервисов каждый со своего сервера.
Вроде как в 8.3.9 вместе с 64-х битным ISAPI пообещали врезать в него многопоточность. Чем дело кончилось - пока неизвестно.
19 Остап Сулейманович
 
20.09.16
19:11
Вот : https://wonderland.v8.1c.ru/blog/povyshenie-proizvoditelnosti-veb-servisov/
Вроде как организовали пул и время жизни.
20 vs84
 
20.09.16
19:11
(16) "несколько экземпляров ВЕБ-сервера"
не спец в администрировании: речь про несколько разных веб-серверов (но все IIS, например), размещенных на одном сервере, по разным портам?
21 Cyberhawk
 
20.09.16
19:12
22 Остап Сулейманович
 
20.09.16
19:14
(20) Типа да. Только мне непонятно как клиенты знают на каком порту сейчас свободен ВЕБ-сервер. Или тупо первым 10-и первый порт, вторым - второй ...?
23 Asmody
 
20.09.16
19:18
(17) В ИИС можно несколько сайтов сделать на разных портах, причем даже натравить на один каталог. Работает.
Перед ИИСом поставить nginx балансировщиком.
24 DmitrO
 
21.09.16
08:33
(15)Что-то у вас, Сулейманыч, какие-то конспирологические фантазии, прямо как у наших либералов.
Обратите внимание на описание элемента pool в vrd файле.

У меня в серверной базе сеансы веб-сервисов вполне себе работают параллельно. Пока работает один вызов, успевает отработать другой.
IIS 7, 1С 8.3.6

А в (19) анонсировано кеширование сеансов, сеанс сможет иметь состояние между вызовами, очередной вызов сможет использовать ранее созданный сеанс.
25 DmitrO
 
21.09.16
08:51
(24)+уточнение
1С 8.3.8.2054 совместимость 8.3.6
26 Serginio1
 
21.09.16
13:50
27 vs84
 
21.09.16
17:11
У меня было указано в настройках рабочего сервера количество соединений на процесс 2, указал 20 стало проглатывать вроде параллельнее, чем было. Ощущение, что именно параллельно могут где-то 10 запросов выполняться.

(26) по-умолчанию (если ничего не настраивать): size = 100, maxAge = 20. Как то не понимаю, какими значениями тут можно оптимизировать. Есть идеи?
28 Serginio1
 
21.09.16
17:23
maxAge  поставь час 3600 или сутки. Что бы не выбрасывались из пула.

Там же по нерусски написано

size attribute

Pool size – maximum number of connections in the pool.

The default value is 100.

maxAge attribute

Pool connection life – the maximum lifetime for a connection in the pool (in seconds). If the connection is not used over the specified lifetime, it will be removed from the pool. The default value is 20 seconds.

attempts attribute

Maximum number of attempts to connect to the 1C:Enterprise server.

The default value is 5.

attemptTimeout attribute

The 1C:Enterprise server connection timeout (in seconds).

The default value is 0.5 seconds.

waitTimeout attribute

The timeout between 1C:Enterprise server connection attempts (in seconds).

The default value is 0.5 seconds.
29 vs84
 
21.09.16
17:38
(28) спасибо, попробую