Имя: Пароль:
1C
1С v8
Как поступить с COM - connectorom
0 H A D G E H O G s
 
08.02.12
00:22
Ночи доброй.
Есть сервис на Дельфях.
К нему по сети коннектятся юзвери, до нескольких тысяч (берем худшее).
Сервис коннектится к простенькой 1С-ке (несколько справочников, пару РС).
Каждый коннект к серверу обрабатывается в отдельном потоке (асинхронно).
Варианты:
1) На каждый коннект - отдельное COM соединение, если нет лицензий - ждем, недождались - отваливаемся по таймауту. Плюсы - надежно как ракета Союз. Минусы - медленно, процентов 95 времени - на коннект.
2) На все про все - одно соединение, коннекты ждут по мьютексту. Плюсы - шустро. Минусы - коннекты могут и не дождаться и х.з. как себя ConConnector поведет в разных потоках.
3) вариант (2) - но уже пул connectoroв, хранимых в списке с признаком "свободен-занят".

Вопросы:
1) Есть еще варианты?
2) Как ведет себя ComConnector в разных потоках?
1 sanja26
 
08.02.12
00:25
тебе лучше знать))
2 Господин ПЖ
 
08.02.12
00:26
а 1С зачем?
3 H A D G E H O G s
 
08.02.12
00:29
(2) Из сервиса идут сырые данные, вся обработка, проверка и хранение - в 1С, всем привычно понятно, да и через планы обмена с резервным серваком пусть обмениваются.
4 H A D G E H O G s
 
09.02.12
12:56
Короче, сделал вариант 2 без пула, съэмитировал 10 одновременных подключений - все нормально. Единственное - ComConector можно обнулять только в том потоке, в котором он порожден, в других потоках выдает Invalid Variant Operation где то внутри 1С-ки.