Гость
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gtm] Ajax + WEB / 25 сообщений из 46, страница 1 из 2
12.01.2017, 12:30
    #39383030
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Добрый день !

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

Спасибо.
...
Рейтинг: 0 / 0
12.01.2017, 13:16
    #39383098
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuЭто нормальное явление, или я что-то недопонимаю ?
Нормальное.
...
Рейтинг: 0 / 0
13.01.2017, 12:54
    #39384056
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
В эту же тему.
При работе с десктопными приложениями, при
открытие некой программы, 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" ?
Или так должно быть ?
Я растерян...
...
Рейтинг: 0 / 0
13.01.2017, 13:11
    #39384076
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
А что конкретно смущает, такое же поведение и в Caché. Там процесс нужен только на время обработки запроса, и при каждом запросе процесс может быть любым. Есть возможность зафиксировать процесс для сессии, но способ не из рекомендуемых. Но в каше есть сессия в которой можно хранить данные, необходимые от запроса к запросу. Как это реализовано в GT.M не знаю, может быть тоже есть какой то идентификатор сессии, по которому можно хранить данные в глобале.
...
Рейтинг: 0 / 0
13.01.2017, 13:16
    #39384083
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuПочему ? Открыл и сразу закрыл ?
Я не силен в линуксовом синтаксисе...
Но идея поддержки вэба такова (упрощенно конечно).
- клиент обратился к серверу
- сервер выделил джоб из числа доступных и запустил указанную программу
- программа отработала и сервер забыл о клиенте

Для некой памяти о клиенте есть на сервере сессия... Она уникальна для "соединения". Пока клиент на завершит работу или не истечет таймаут ожидания действий от клиента...
...
Рейтинг: 0 / 0
13.01.2017, 13:31
    #39384106
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
krvsa,
Понятно.
Есть такое. Есть сессия.
Я застопорился в моих программах, когда
переключаюсь между областями, хотя таковых
в GT.M нету. Я получаю их в переменных
s $zro=PATH
s $zgb=GLD
Всегда забрасывает в $gtm_dist (в каше как бы SYS)
Вот по этому мучаюсь и не знаю где копать ...
...
Рейтинг: 0 / 0
13.01.2017, 14:05
    #39384161
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuЯ застопорился в моих программах, когда
переключаюсь между областями, хотя таковых
в GT.M нету.
Вот потому-то и нужно "забыть про области".
ValeriuВсегда забрасывает в $gtm_dist (в каше как бы SYS)
Это видать так настроена обработка вэб приложений...
ValeriuВот по этому мучаюсь и не знаю где копать ...
Как рассказывали мне более опытные в ГТ.М коллеги, тут на форуме, нужно не цепляться за кащейские подходы в работе на ГТ.М.
Т.е. не должно быть "переключений", как это делается в Каше, а должно быть правильное описание глобальной директории для полноценной работы приложения.

По деталям я тебя не проконсультирую, т.к. не вкурсе чего там у тебя и как.
...
Рейтинг: 0 / 0
13.01.2017, 15:26
    #39384268
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
krvsa,

а должно быть правильное описание глобальной директории для полноценной работы приложения.
:) Вот это и смущает... ОПИСАНА она у меня как надо.
Не спорю. Ошибка подкралась, есть она... Вот и хочу понять сущность.
...
Рейтинг: 0 / 0
13.01.2017, 16:20
    #39384330
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuОПИСАНА она у меня как надо
Тогда зачем "переключения"?
...
Рейтинг: 0 / 0
13.01.2017, 16:37
    #39384343
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
krvsaТогда зачем "переключения"?
Я хотел пробовать как это себя ведет, когда имеем несколько БД
(допустим в разных директориях) , а приложение ОДНО для всех
в $gtm_dist. Типа студио для глобалов и рутин ..
Понятно, можно отдельно запустить для каждой, но ... не тот эффект !
...
Рейтинг: 0 / 0
25.01.2017, 09:37
    #39390785
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Хорошо. Ответ как бы сам по себе понятен.
А как в Cache это происходит ?
Ведь там тоже отдельные области и отдельные БД.
Работает наверно один общий сервер WEB для всех областей из область %SYS
Значит тоже нужно как-то обращаться к этим областям ?...
Что, без переключения, или как ?
Как здесь работает механизм обработки данных средством WEB приложений ?
...
Рейтинг: 0 / 0
25.01.2017, 10:12
    #39390817
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuХорошо.
А как в Cache это происходит ?Не уверен, что это как-то Вам поможет: слишком они разные.
В Caché можно как с переключением между областями, так и без такового, используя механизм отображения глобалов/программ/пакетов. Ещё можно настроить виртуальную область %ALL, объекты отображения из которой будут видны во всех областях.
...
Рейтинг: 0 / 0
25.01.2017, 10:17
    #39390824
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuКак здесь работает механизм обработки данных средством WEB приложений ?
Там в настройке вэб-приложения указывается имя области...
Но потом ты волен переключаться в любую область сервера Каше.

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

Повторюсь...
Мне советовали более опытные ГТ.Мщики, пересмотреть свои взгляды на разработку ПО для ГТ.М... Делать не по кащейски, а по ГТ.Мовски.
...
Рейтинг: 0 / 0
25.01.2017, 10:22
    #39390827
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
servitиспользуя механизм отображения глобалов/программ
Аналог этого есть и в ГТ.М...
Но это помогает не всегда.
Т.е. при наличии аналога помогает. Проблемы появляются как раз в отсутствии аналогов.

Например нет "переключения" ГД как таковых... Если сравнивать "переключения ГД" с переключениями между областями.
И вот тут как раз наступает тупик "кащейского ПО".
...
Рейтинг: 0 / 0
25.01.2017, 11:46
    #39390908
gluconat_ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
krvsaНапример нет "переключения" ГД как таковых... Если сравнивать "переключения ГД" с переключениями между областями.
Можно поподробнее, лучше на примере, чего "нет" в ГТ.М, может быть это заблуждение :)
...
Рейтинг: 0 / 0
25.01.2017, 12:02
    #39390930
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
gluconat_ca,
Есть там, только немножко не как в каше ZN, а:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
******
s $ZRO="/home/test/o(/home/test/r) /usr/gtm63A"  - переключает в катало Рутин ..
s $ZGB="/home/test/test.gld"  - переключает в область где глобалы                           
******
GET(SYSGLB,namespace)
 ; SYSGLB - system path(^sysconfig $gtm_dist)
 ; namespace - (test - example)
 s id=""
 s sid=$p(%fcgi("i","header","SID"),",")
 s ^uciID(sid)=""
 f  s id=$o(^uciID(id)) q:id=""  d
 . s dirrtn=^|SYSGLB|sysconfig(namespace,"r") ; return directory(r) 
 . s GLD=^|SYSGLB|sysconfig(namespace,"gld")
 . s PATH=^|SYSGLB|sysconfig(namespace,"path")
 . s $zro=PATH
 . s $zgb=GLD 
 . s %fcgi("o","stdout")=dirrtn_$c(13,10)
 . s %fcgi("o","header","Content-Type")="text/plain"
 q
 ;; 
...
Рейтинг: 0 / 0
25.01.2017, 12:26
    #39390965
gluconat_ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Valeriu, всё равно не понял, в чём проблема (я не о приведённом коде, а о самой проблеме).

Есть переменные окружения:
Код: plaintext
1.
2.
gtm_dist
gtmgbldir
gtmroutines

Есть внутренние переменные:
Код: plaintext
1.
$ZG[BLDIR]
$ZRO[UTINES]

Или проблемы нет?
...
Рейтинг: 0 / 0
25.01.2017, 12:46
    #39391001
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
gluconat_ca,
Проблема есть...
В двух словах не обьяснить, но постараюсь.
Я работаю с NGINX + FCGI+ GT.M
GT.M используется свой сокет для связи с NGINX + FCGI

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

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

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

Туманно, но где-то так.
Я сам пока не могу понять почему так и вот решил по спросить, может что-то выявится.
...
Рейтинг: 0 / 0
25.01.2017, 13:06
    #39391035
gluconat_ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Valeriu,
Может нужно так:
Раз один м-процесс (fastcgi) обрабатывает запросы от разных пользователей и должен исполнять с разными $zg, то держите это в настройках для каждого пользователя и "смену области" меняйте в настройках, а не в текущем исполнении fastcgi.
А отработчики конкретных запросов должны сами делать смену $zg взяв нужное значение из настроек, а по окончании восстанавливать исходное. Можно даже этим озадачить сам m-процесс fastcgi, доработав его.:)
Попал в проблему или мимо?
...
Рейтинг: 0 / 0
25.01.2017, 13:16
    #39391050
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
gluconat_ca,
Согласен, где-то примерно так.
Я очень связал свои надежды с процессом $J , но здесь он оказывается безполезен ..
...
Рейтинг: 0 / 0
25.01.2017, 13:17
    #39391052
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
gluconat_caМожно поподробнее, лучше на примере, чего "нет" в ГТ.М, может быть это заблуждение :)
"Переключение" ГД не такое как переключение областей в Каше. Да и сама ГТ не есть область в Каше.
А рассматривать мои "проблемы" в этой теме я не вижу смысла...
...
Рейтинг: 0 / 0
25.01.2017, 15:35
    #39391253
gluconat_ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Valeriugluconat_ca,
Согласен, где-то примерно так.
Я очень связал свои надежды с процессом $J , но здесь он оказывается безполезен ..

то есть проблема в этом - что можно было бы взять в качестве IDа сессии, который позволил бы восстанавливать контекст ?
...
Рейтинг: 0 / 0
25.01.2017, 16:19
    #39391298
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
gluconat_ca,
Да. В этом контексте.
Но как это осуществить, я еще пока не представляю...
...
Рейтинг: 0 / 0
25.01.2017, 16:23
    #39391301
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
ValeriuНо как это осуществить, я еще пока не представляю...
У самой страницы есть сессия...
https://itchief.ru/lessons/javascript/javascript-sessionstorage-and-localstorage
...
Рейтинг: 0 / 0
25.01.2017, 16:24
    #39391303
gluconat_ca
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[gtm] Ajax + WEB
Valeriu, так у вас же в коде, приведённом выше, есть вот это:

Код: plaintext
s sid=$p(%fcgi("i","header","SID"),",")

Этот SID в куках передаётся, который формируется при первом ещё не "закукенном" запросе в FCGI.m
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gtm] Ajax + WEB / 25 сообщений из 46, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]