Долго создается COM соединение с 1С:Предприятие 8.1

Energetik

Новичок
Долго создается COM соединение с 1С:Предприятие 8.1

Добрый день. Существует проблема, при COM соединении из PHP с 1С:Предприятие 8.1 долго создается само соединение (6-7 секунд). Если кто-то из форумчан уже сталкивался с подобной проблемой, прошу помочь.
Версия PHP 5.0.5
Версия 1С:Предприятие 8.1 (8.1.15.14)
Привожу фрагмент кода:
PHP:
$cntrl = new COM("V81.COMConnector") or die("Невозможно создать СОМ соединение"); 
$link = $cntrl->Connect("Srvr=<кластер_серверов>;Ref=<имя_бд_в_кластере>;Usr=<пользователь>;Pwd=<пароль>;");
 

Alexandre

PHPПенсионер
1) возможные решения - писать в БД 1С напрямую
сейчас уже появилось описание структуры таблиц 1С
2) организоватьсвою программу как демона который будет держать 1 коннекцию постоянно,
который будет "общаться" с WEB приложением.
Это делал Дима Бородин.
Я лет более 5 назад пошел твоим путем, но была версия 7.3 она пошустрее 8й
было также медленно, но запросов было 2-3 в день, по этому это положение вещей всех устраивало.
 

whirlwind

TDD infected, paranoid
Там не соединение медленное, а загрузка. Там с компонентой вся платформа грузится. Для начала можно попробовать держать один экземпляр клиента загруженным, но семерка вроде такого не позволяла. Или на диск в оперативке клиента скинуть, тут свои геморои.
 

Energetik

Новичок
Есть мнение, что можно настроить web-сервер (в моем случае IIS 6) на постоянное COM соединение с 1С. Реально это? Я не сумел.
 

fixxxer

К.О.
Партнер клуба
Я про винды, иисы и комы все давно забыл и вспоминать не хочу, но исходя из общих соображений:

1) com это некий rpc протокол, фасадом к которому является инстанс класса COM
2) известно, что имеет место быть медленная инициализация
3) типичное решение - keepalive
4) IIS это процесс запущенный постоянно, и если объект создать в его адресном пространстве, он там спокойно может жить сколько надо.

соответственно, логично погуглить что-то типа IIS object persistence. Насколько я помню что такое ISAPI фильтры, можно такое организовать на них, они вроде как в этом самом адресном пространстве IIS-а и работают. На крайняк можно по быстрому нарисовать на любой виндовой дотнетовой хрени этакий сервис, который будет держать в себе инстанс и проксировать на них запросы (должно же в этом вашем дотнете быть что-то для быстрого создания сервисов)
 

Alexandre

PHPПенсионер
Для начала можно попробовать держать один экземпляр клиента загруженным, но семерка вроде такого не позволяла.
вот и я говорю - написать демона, на языке винды - службу или сервис, которая инициализирует это соединение и будет по сокетам отдавать WEB приложению всю необходимую инфу.
Как предложил Костя - тоже вариант, но придется долго разбираться в этих IIS object persistence интерфейсах и в конце-концов упремся в какое-нибудь ограничение.
 

whirlwind

TDD infected, paranoid
Дык просто попробовать один экземпляр под другим пользователем на той же машине запустить.
 
Сверху