Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
Добрый день !

Не пинайте сильно, я недавно работаю с ВЕБ приложениями и
иногда возникают вопросы, которые раньше
при работе с настольными приложениями не возникали...
Например при запросе к БД с помощью Ajax я получаю
некоторые данные для страницы.
Но. При этом у меня на стороне GT.M - $JOB может меняться
несколько раз. Т.е. получается при каких то действий на страницы,
JOB-ы меняются как им вздумается. Понятно, что это происходит
асинхронно, но почему, как-бы только один конект происходит ?
Это нормальное явление, или я что-то недопонимаю ?

Спасибо.
12 янв 17, 12:30    [20097844]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
Это нормальное явление, или я что-то недопонимаю ?

Нормальное.
12 янв 17, 13:16    [20098145]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
В эту же тему.
При работе с десктопными приложениями, при
открытие некой программы, GT.M всегда установил один процесс.

Например:
[root@GTM gtm63A]# ps -ef | grep mumps
root 25263 25262 0 11:45 ? 00:00:00 mumps -r command^%mwire
root 25266 25001 0 11:45 pts/1 00:00:00 grep mumps

В моем случае, при заходе с веб страницы, это не видно, хотя 3 компа
работают с какой-то задачи.
Почему ? Открыл и сразу закрыл ?
Нету ничего на подобия "KEEP-ALIVE" ?
Или так должно быть ?
Я растерян...
13 янв 17, 12:54    [20102355]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2304
А что конкретно смущает, такое же поведение и в Caché. Там процесс нужен только на время обработки запроса, и при каждом запросе процесс может быть любым. Есть возможность зафиксировать процесс для сессии, но способ не из рекомендуемых. Но в каше есть сессия в которой можно хранить данные, необходимые от запроса к запросу. Как это реализовано в GT.M не знаю, может быть тоже есть какой то идентификатор сессии, по которому можно хранить данные в глобале.
13 янв 17, 13:11    [20102424]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
Почему ? Открыл и сразу закрыл ?

Я не силен в линуксовом синтаксисе...
Но идея поддержки вэба такова (упрощенно конечно).
- клиент обратился к серверу
- сервер выделил джоб из числа доступных и запустил указанную программу
- программа отработала и сервер забыл о клиенте

Для некой памяти о клиенте есть на сервере сессия... Она уникальна для "соединения". Пока клиент на завершит работу или не истечет таймаут ожидания действий от клиента...
13 янв 17, 13:16    [20102444]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
krvsa,
Понятно.
Есть такое. Есть сессия.
Я застопорился в моих программах, когда
переключаюсь между областями, хотя таковых
в GT.M нету. Я получаю их в переменных
s $zro=PATH
s $zgb=GLD
Всегда забрасывает в $gtm_dist (в каше как бы SYS)
Вот по этому мучаюсь и не знаю где копать ...
13 янв 17, 13:31    [20102552]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
Я застопорился в моих программах, когда
переключаюсь между областями, хотя таковых
в GT.M нету.

Вот потому-то и нужно "забыть про области".
Valeriu
Всегда забрасывает в $gtm_dist (в каше как бы SYS)

Это видать так настроена обработка вэб приложений...
Valeriu
Вот по этому мучаюсь и не знаю где копать ...

Как рассказывали мне более опытные в ГТ.М коллеги, тут на форуме, нужно не цепляться за кащейские подходы в работе на ГТ.М.
Т.е. не должно быть "переключений", как это делается в Каше, а должно быть правильное описание глобальной директории для полноценной работы приложения.

По деталям я тебя не проконсультирую, т.к. не вкурсе чего там у тебя и как.
13 янв 17, 14:05    [20102779]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
krvsa,

а должно быть правильное описание глобальной директории для полноценной работы приложения.

:) Вот это и смущает... ОПИСАНА она у меня как надо.
Не спорю. Ошибка подкралась, есть она... Вот и хочу понять сущность.
13 янв 17, 15:26    [20103349]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
ОПИСАНА она у меня как надо

Тогда зачем "переключения"?
13 янв 17, 16:20    [20103672]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
krvsa
Тогда зачем "переключения"?

Я хотел пробовать как это себя ведет, когда имеем несколько БД
(допустим в разных директориях) , а приложение ОДНО для всех
в $gtm_dist. Типа студио для глобалов и рутин ..
Понятно, можно отдельно запустить для каждой, но ... не тот эффект !
13 янв 17, 16:37    [20103735]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
Хорошо. Ответ как бы сам по себе понятен.
А как в Cache это происходит ?
Ведь там тоже отдельные области и отдельные БД.
Работает наверно один общий сервер WEB для всех областей из область %SYS
Значит тоже нужно как-то обращаться к этим областям ?...
Что, без переключения, или как ?
Как здесь работает механизм обработки данных средством WEB приложений ?
25 янв 17, 09:37    [20142904]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3068
Блог
Valeriu
Хорошо.
А как в Cache это происходит ?
Не уверен, что это как-то Вам поможет: слишком они разные.
В Caché можно как с переключением между областями, так и без такового, используя механизм отображения глобалов/программ/пакетов. Ещё можно настроить виртуальную область %ALL, объекты отображения из которой будут видны во всех областях.
25 янв 17, 10:12    [20143038]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
Как здесь работает механизм обработки данных средством WEB приложений ?

Там в настройке вэб-приложения указывается имя области...
Но потом ты волен переключаться в любую область сервера Каше.

Но специфика глобальной директории так сильно отличается от понятия "область" в Каше...
Т.ч. параллели с Каше тебе не помогут.

Повторюсь...
Мне советовали более опытные ГТ.Мщики, пересмотреть свои взгляды на разработку ПО для ГТ.М... Делать не по кащейски, а по ГТ.Мовски.
25 янв 17, 10:17    [20143067]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
servit
используя механизм отображения глобалов/программ

Аналог этого есть и в ГТ.М...
Но это помогает не всегда.
Т.е. при наличии аналога помогает. Проблемы появляются как раз в отсутствии аналогов.

Например нет "переключения" ГД как таковых... Если сравнивать "переключения ГД" с переключениями между областями.
И вот тут как раз наступает тупик "кащейского ПО".
25 янв 17, 10:22    [20143087]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
krvsa
Например нет "переключения" ГД как таковых... Если сравнивать "переключения ГД" с переключениями между областями.
Можно поподробнее, лучше на примере, чего "нет" в ГТ.М, может быть это заблуждение :)
25 янв 17, 11:46    [20143584]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
gluconat_ca,
Есть там, только немножко не как в каше ZN, а:
******
$ZRO="/home/test/o(/home/test/r) /usr/gtm63A"  - переключает в катало Рутин ..
$ZGB="/home/test/test.gld"  - переключает в область где глобалы                           
******
GET(SYSGLB,namespace)
 
; SYSGLB - system path(^sysconfig $gtm_dist)
 ; namespace - (test - example)
 
id=""
 
sid=$p(%fcgi("i","header","SID"),",")
 
^uciID(sid)=""
 
f  s id=$o(^uciID(id)) q:id=""  d
 
dirrtn=^|SYSGLB|sysconfig(namespace,"r"; return directory(r) 
 
GLD=^|SYSGLB|sysconfig(namespace,"gld")
 . 
PATH=^|SYSGLB|sysconfig(namespace,"path")
 . 
$zro=PATH
 
$zgb=GLD 
 
%fcgi("o","stdout")=dirrtn_$c(13,10)
 . 
%fcgi("o","header","Content-Type")="text/plain"
 
q
 
;; 
25 янв 17, 12:02    [20143696]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
Valeriu, всё равно не понял, в чём проблема (я не о приведённом коде, а о самой проблеме).

Есть переменные окружения:
gtm_dist
gtmgbldir
gtmroutines

Есть внутренние переменные:
$ZG[BLDIR]
$ZRO[UTINES]

Или проблемы нет?
25 янв 17, 12:26    [20143840]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
gluconat_ca,
Проблема есть...
В двух словах не обьяснить, но постараюсь.
Я работаю с NGINX + FCGI+ GT.M
GT.M используется свой сокет для связи с NGINX + FCGI

Есть два случая:

1. Если сокет открывается и после какого-то действия сразу закрывается,
то переключатся, как Вы заметили выше, можно БЕЗ проблем.
НО. Если другой пользователь переключается в это время, то и всех
остальных переключает в его каталог !

2. Если сокет держим открытым для других соединений - переключение НЕ РАБОТАЮТ,
только в одну "область" крутится

Туманно, но где-то так.
Я сам пока не могу понять почему так и вот решил по спросить, может что-то выявится.
25 янв 17, 12:46    [20143963]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
Valeriu,
Может нужно так:
Раз один м-процесс (fastcgi) обрабатывает запросы от разных пользователей и должен исполнять с разными $zg, то держите это в настройках для каждого пользователя и "смену области" меняйте в настройках, а не в текущем исполнении fastcgi.
А отработчики конкретных запросов должны сами делать смену $zg взяв нужное значение из настроек, а по окончании восстанавливать исходное. Можно даже этим озадачить сам m-процесс fastcgi, доработав его.:)
Попал в проблему или мимо?
25 янв 17, 13:06    [20144085]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
gluconat_ca,
Согласен, где-то примерно так.
Я очень связал свои надежды с процессом $J , но здесь он оказывается безполезен ..
25 янв 17, 13:16    [20144134]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
gluconat_ca
Можно поподробнее, лучше на примере, чего "нет" в ГТ.М, может быть это заблуждение :)

"Переключение" ГД не такое как переключение областей в Каше. Да и сама ГТ не есть область в Каше.
А рассматривать мои "проблемы" в этой теме я не вижу смысла...
25 янв 17, 13:17    [20144142]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
Valeriu
gluconat_ca,
Согласен, где-то примерно так.
Я очень связал свои надежды с процессом $J , но здесь он оказывается безполезен ..


то есть проблема в этом - что можно было бы взять в качестве IDа сессии, который позволил бы восстанавливать контекст ?
25 янв 17, 15:35    [20145127]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
gluconat_ca,
Да. В этом контексте.
Но как это осуществить, я еще пока не представляю...
25 янв 17, 16:19    [20145478]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12776
Valeriu
Но как это осуществить, я еще пока не представляю...

У самой страницы есть сессия...
https://itchief.ru/lessons/javascript/javascript-sessionstorage-and-localstorage
25 янв 17, 16:23    [20145505]     Ответить | Цитировать Сообщить модератору
 Re: [gtm] Ajax + WEB  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
Valeriu, так у вас же в коде, приведённом выше, есть вот это:

sid=$p(%fcgi("i","header","SID"),",")

Этот SID в куках передаётся, который формируется при первом ещё не "закукенном" запросе в FCGI.m
25 янв 17, 16:24    [20145516]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Caché Ответить