Имя: Пароль:
1C
1C 7.7
v7: Несколько СОМ соединений V77S.Application
, , ,
0 r_p
 
20.01.14
16:51
Утра.
Есть база на восьмерке. В базе куча регламентных заданий по обмену данными с базами на семерке. Возникает проблема, что не стартует следующее COM-соединение, пока не убито предыдущее. Базы естественно разные. Т.е. на сервере нельзя создать 2 соединения с семеркой. Вылетают ошибки типа "Неизвестная ошибка" и "Не обнаружен интерфейс". Если запускать по одному, то все ок. Локально на компьютере делаю сколько угодно одновременных соединений. Куда копать, товарищи?
1 Torquader
 
20.01.14
17:02
Во-первых, нужно отключать модальный режим, чтобы можно было открыть несколько баз, а также не забывать, что для каждой должна быть своя директория пользователя, чтобы не было взаимоблокировок.
Также нужно хранить базы в локальных переменных, чтобы они никак не могли быть сохранены после окончания выполнения задания (очистку переменных никто не отменял).
Потом, в каком режиме "живёт" восьмёрка и какая разрядность сервера - может быть - он не даёт запустить два объекта из 64-битного режима.
2 r_p
 
20.01.14
17:54
(1) Модальный режим у окон? Никаких окон при старте нет.
3 Torquader
 
20.01.14
23:16
(2) Не модальный, а монопольный доступ к базе (окон-то там может и не быть).
4 r_p
 
21.01.14
17:02
(3) Это все понятно. Вопрос не в этом. Есть 3 базы, для чистоты эксперимента они одинаковые. Модальных окон нет, в базах никого нет. Запускается из 8-ки последовательно коннекты  к базам по одной. К первым двум присоединяется, к третей нет, выдает вышеописанные ошибки. Возможно это ограничения платформы 1С 7.7?
5 Torquader
 
22.01.14
00:00
(4) Это "классная" особенность 1С 7.7 - иногда нельзя открыть три экземпляра 1С - третий не запускается, так как ему каких-то ресурсов GDI не хватает - уж больно 1С прожорливая.
Чтобы работало хорошо, нужно под разными пользователями и под разными рабочими станциями запускать, хотя, насколько я помню, разных Desktop-ов хватало.
Просто, если серверная версия, то фоновое задание запускается под рабочей станцией, выделенной для службы, а она сильно урезана по параметрам.
6 r_p
 
23.01.14
15:05
(5) В том то и проблема, что все фоновые задания стартуют с сервера 1С. А как запустить фоновое задание с другого сервера я не представляю.
7 ТогдаКонецЕсли
 
23.01.14
15:30
(6)  поставь еще один сервер 1с на другую машину.
На первом сервере регламентные задания запрети, на втором разреши.
8 r_p
 
23.01.14
16:50
(7) Получу ту же ситуацию что и с первым сервером 1С. Попаду на ограничение в 2 кома.
9 varelchik
 
23.01.14
17:40
(8) А терь просни вот что:
Запускаешь родным планировщиковм?
10 ТогдаКонецЕсли
 
23.01.14
18:10
(8) А если параметры регламентного задания внести сервер.
Если текущий сервер совпадает, то рег. задание отрабатывает, иначе - нет. Тогда и запускать можно на двух серверах.
Хотя и кривовато как-то.
11 varelchik
 
23.01.14
18:25
(0)ответь на (9).
12 r_p
 
23.01.14
18:34
(11) Все стандартно. Все на основе БСП. Все родное.
(10) Не понял где можно указывать сервер для регламентных. Подскажи где искать?
13 Torquader
 
23.01.14
23:27
(12) Идея в том, чтобы вместо регламентного задания запускать 1С из командной строки через планировщик - тогда на каждое задание будет отдельный процесс (но потребуется отдельный ключ или лицензия).
14 r_p
 
24.01.14
13:34
(13) Идея интересная. Спасибо. Если что будем пробовать.
15 varelchik
 
24.01.14
13:40
(14) вот только у планировщика есть одно ж.
если запускать процесс с ожиданием то больше одного не запустишь.
проверено.
с ожиданием можно запускать только через nncron (тоже проверено годами).
16 Torquader
 
24.01.14
15:55
(15) Можно запустить процесс, который из себя запускает другие процессы и следит за тем, что они делают - а запускалку на VbScript писать не так уж и сложно.