powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Закрытие CSP-сессии не из нее самой
13 сообщений из 13, страница 1 из 1
Закрытие CSP-сессии не из нее самой
    #37301685
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не соображу, как можно закрыть сессию извне.
В портале управления в разделе "CSP-сессии" есть нужная кнопка, но исходников от той страницы нету.
Упражнения с
Код: plaintext
1.
2.
s mySession = ##class(%CSP.Session).%OpenId(sessionId)
s mySession.EndSession =  1 
ни к чему полезному не приводят.
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301714
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

Если нет постоянной активности сессии, то можно выставить AppTimeout=1 и через секунду сессия "протухнет".
Как именно закрыть - не знаю.
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301725
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,

Хм... может быть добавить еще
Код: plaintext
1.
 do mySession.%Save()
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301726
MaWr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ptnkolesov,

Хм... может быть добавить еще
Код: plaintext
1.
 do mySession.%Save()

В случае с
EndSession = 1 %Save не помогает...
C AppTimeout - работает.
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301737
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov ,

Попробуйте

  set mySession=##class(%CSP.Session).%OpenId(sessionId)
  set mySession.AppTimeout=1
  do mySession.%Save()
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301845
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit kolesov ,
Попробуйте

Час, как "пробую" - то работает, то не работает.
Конкретно сейчас - не работает. Не знаю почему.

Открыто окно браузера со страницей, где отображен айди сессии "2aqmcbzz00"

USER>set mySession=##class(%CSP.Session).%OpenId("2aqmcbzz00")
пока в окне программы можно работать

USER>set mySession.AppTimeout=1
в окне программы невозможно работать - все гиперсобытия не работают

USER>w mySession.%Save()
1
то же самое
USER>k mySession
все наконец "разлипло" и гиперсобытия выполнились

Сессии хоть бы хны - работает дальше, %#@#$ть

Если делаю то же самое программно, тоже ничего хорошего...
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301882
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, дело в блокировках было... Правда я как-то удачно их почистил, что не поразглядывал как следует ;)
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37301933
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov ,

Я у себя оформил код в процедуру:

delSession(id) public {
  set session=##class(%CSP.Session).%OpenId(id)
  if $isObject(session) {
    set session.AppTimeout=1
    do $system.OBJ.DisplayError(session.%Save())
    ;kill session
  }
}

Проверил на версии 2011.1.RC1: удалил без проблем сессии своего приложения, Documatic, Documentation, SMP.
Сессии удаляются не сразу, а через некоторое время (обычно несколько секунд), о чём Портал заранее предупреждает.

PS: если всё же удаление у Вас работает нестабильно, то лучше обратиться в WRC.
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37302065
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit,

Не экспериментировали, при завершении сессии процессы, ей порожденные, киляются?
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37302083
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема при закрытии сессий, будет если сессия с Preserve=1, т.е. хранимая, для такой сессии блокировка устанавливается постоянно и из другого процесса ее не закрыть таким путем как описано выше, соответственно эту сессию обрабатывает только один процесс
для обычных сессий, процесс который ее обрабатывает может менять от вызова к вызову, соответственно и процессу закрываться не имеет смысла, он может пригодиться для обработки других сессий, такие сессии тоже ставят блокировку но только на момент выполнения какого либо запроса, после того как код сгенерирован и полностью отдан браузеру блокировка снимается

можно еще попробовать закрыть сессию так:
s sc=$$endSession^%SYS.cspServer(session)
session - объект сессии
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37302127
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovservit,

Не экспериментировали, при завершении сессии процессы, ей порожденные, киляются?
А я вот попробовал. Собственно, результат не совсем закономерный. Если со страницы вызвать серверный метод с кодом типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method sCheck(items As %String) As %String [ ZenMethod ]
{
	s ^a =  1 
	f  {
		s ^a = ^a+ 1 
		s ^a(^a) = $h
		h  3 
	}
	q ""
}
и сразу выполнить предложенный выше код, "закрывающий" сессию...

Я подумал, что ведь никогда не наступит этот тайм-аут (вроде бы обычно его отсчет начинался после завершения выполнения серверного метода), но он наступил (видимо какой-то еще тайм-аут сработал, то ли гейтвея, то ли браузера)

И наступил он как-то неприятно... повисла моя страничка. Напрочь. Причем открыть заново в той же копии браузера не получилось - через минуту-две увидел
браузерCaché Server Pages Версия 2010.1.1.503.0
Состояние ошибки
CSP-приложение закрыло соединение до отсылки полного ответа

Судя по состоянию глобальки метод накрылся между 4-мя и 5-ю минутами после старта.
Еще через некоторое время (мы как-то пытались считать, сколько тайм-аутов задействовано... жуть как много - чёрт ногу сломит в них) первое окно наконец честно отчиталось о закрытии сессии и дало себя перезагрузить...

Таким образом, ребром встал вопрос:
А как покилять все процессы, выполняемые в рамках сессии перед подобным ее "закрытием"???
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37302154
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorпроблема при закрытии сессий, будет если сессия с Preserve=1, т.е. хранимая, для такой сессии блокировка устанавливается постоянно и из другого процесса ее не закрыть таким путем как описано выше, соответственно эту сессию обрабатывает только один процесс
для обычных сессий, процесс который ее обрабатывает может менять от вызова к вызову, соответственно и процессу закрываться не имеет смысла, он может пригодиться для обработки других сессий, такие сессии тоже ставят блокировку но только на момент выполнения какого либо запроса, после того как код сгенерирован и полностью отдан браузеру блокировка снимается

можно еще попробовать закрыть сессию так:
s sc=$$endSession^%SYS.cspServer(session)
session - объект сессии
Про процесс понял, но как быть, если мне достоверно известно, что в данный момент он, процесс этот, тратит калории исключительно на обогрев атмосферы. Нельзя ему как-то тонко намекнуть на бестолковость и расточительность этого занятия?
Про s sc=$$endSession^%SYS.cspServer(session) в моей версии, 2010-й, вижу там два параметра, и оба по ссылке. Моя попытка передать туда объект сессии по ссылке успехом не увенчалась. Может, кстати, знаете, что за второй параметр?
...
Рейтинг: 0 / 0
Закрытие CSP-сессии не из нее самой
    #37302352
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=kolesovПро процесс понял, но как быть, если мне достоверно известно, что в данный момент он, процесс этот, тратит калории исключительно на обогрев атмосферы. Нельзя ему как-то тонко намекнуть на бестолковость и расточительность этого занятия?Заведите проблему в WRC.
=kolesovПро s sc=$$endSession^%SYS.cspServer(session) в моей версии, 2010-й, вижу там два параметра, и оба по ссылке. Моя попытка передать туда объект сессии по ссылке успехом не увенчалась. Может, кстати, знаете, что за второй параметр?Из кода класса %CSP.Session для версии 2011.1.RC1 видно, что $$endSession^%SYS.cspServer вызывается из %DeleteData , и нет уверенности, что будет достаточно одного лишь этого вызова.
К тому же я поостерёгся бы использовать метод без документации и помеченный как [Internal] .
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Закрытие CSP-сессии не из нее самой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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