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 в разных потоках?
|
|
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С-ки.
|
|