AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.03.2015, 12:13   #1  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,952 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
? Возможно ли кешировать 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

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: 2015 Will Bring Big Improvements to the Dynamics AX Companions Guides Blog bot DAX Blogs 0 01.01.2015 01:17
emeadaxsupport: AX Performance Troubleshooting Checklist Part 2 Blog bot DAX Blogs 0 09.09.2014 16:11
axmfg: Lean manufacturing: Picking activities and kanban line events Blog bot DAX Blogs 0 26.08.2014 21:13
atinkerersnotebook: Using Service Management to Track Service Orders Blog bot DAX Blogs 1 25.08.2013 19:16
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:19.