12.03.2015, 12:13 | #1 |
Участник
|
Возможно ли кешировать COM соединения в PHP ?
Привет всем.
Коллеги, нужен совет. Ситуация : Сотрудники склада, при подготовке товара к отгрузке, делают отборку товара, информацию по отгрузочным накладным получают в переносных терминалах сбора данных (по сути, защищенные от жестких физических воздействий Pocket PC устройства с встроенным сканнером штрихкодов, в которых крутился браузер IE через который и происходит обмен информацией с Аксаптой) В IE отображаются странички с сайта ( написанного лет 7 назад людьми которые уже давно не работают ) Сайт написан на JavaScript+PHP, крутится под Apache. В PHP инициализируется COM Connector Аксапты и идет получение и отправка данных. Все было нормально, но с определенного момента периодически идут подвисания. Сам сайт представляет из себя набор маленьких простых страничек, помещающихся на небольшом экране переносного устройства. По мере выполнения действий пользователем (выбор товара для отборки по штрихкоду, простановка отобранного количества, возврат к перечню строчек, снова выбор товара, снова простановка количества, завершение отборки) - постоянно идет переход между страничками и каждый переход сопровождается обращением в Аксапту (в PHP создается com объект аксапты, выполняется logonAS, устанавливается нужная компания и дергаются методы аксапты) В общем, как удалось установить, подвисает выполнение логина в Аксапту – лочится табличка SysClientSessions (к ней идет порядка 10 обращений в секунду). Изменить такое поведение в Аксапте мы не можем. Судя по всему COM Connector не проектировался для частого логина. Естественно возникает желание, как-то передавать инициализированный COM объект между разными PHP скриптами или иметь пул таких объектов на уровне апача и использовать их, не делая каждый раз New Com(…) и не вызывая тормозящий logonAS. 1. Возможно ли такое сделать в PHP ? 2. Если невозможно, то как проще было бы сделать, не переписывая весь сайт ? (пока думаю задействовать вебсервис аксапты, вместо использования Comconnector) . По идее, IIS, под которым он крутится, должен внутри себя держать пул соединений, обрабатывая обращения без подвисаний) – т.е. как быстро сделать фикс который позволит ускорить работу ? 3. Если говорить о дальней перспективе (года через 2 возможно перейдем на 2012-ю Аксапту), то как правильнее было бы построить такой сайт ? (т.е. если рассматривать полную переделку то куда двигаться ?) Число активно работающих терминалов на складах – около 70. Средняя создаваемая нагрузка – 10 обращений в секунду. (10 раз выполняется logonAs) Версия 2009, build 1500.4570 (Rollup 7 ) Последний раз редактировалось Logger; 12.03.2015 в 12:19. |
|
Теги |
apache, com connector, com+, php, sysclientsessions |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|