Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
Что-то не соображу, как можно закрыть сессию извне. В портале управления в разделе "CSP-сессии" есть нужная кнопка, но исходников от той страницы нету. Упражнения с Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 05:55 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
kolesov, Если нет постоянной активности сессии, то можно выставить AppTimeout=1 и через секунду сессия "протухнет". Как именно закрыть - не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 07:46 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
kolesov, Хм... может быть добавить еще Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 08:19 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
Ptnkolesov, Хм... может быть добавить еще Код: plaintext 1. В случае с EndSession = 1 %Save не помогает... C AppTimeout - работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 08:21 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
kolesov , Попробуйте set mySession=##class(%CSP.Session).%OpenId(sessionId) set mySession.AppTimeout=1 do mySession.%Save() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 08:29 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
servit kolesov , Попробуйте Час, как "пробую" - то работает, то не работает. Конкретно сейчас - не работает. Не знаю почему. Открыто окно браузера со страницей, где отображен айди сессии "2aqmcbzz00" USER>set mySession=##class(%CSP.Session).%OpenId("2aqmcbzz00") пока в окне программы можно работать USER>set mySession.AppTimeout=1 в окне программы невозможно работать - все гиперсобытия не работают USER>w mySession.%Save() 1 то же самое USER>k mySession все наконец "разлипло" и гиперсобытия выполнились Сессии хоть бы хны - работает дальше, %#@#$ть Если делаю то же самое программно, тоже ничего хорошего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 09:42 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
Похоже, дело в блокировках было... Правда я как-то удачно их почистил, что не поразглядывал как следует ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 10:04 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 10:27 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
servit, Не экспериментировали, при завершении сессии процессы, ей порожденные, киляются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:27 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
проблема при закрытии сессий, будет если сессия с Preserve=1, т.е. хранимая, для такой сессии блокировка устанавливается постоянно и из другого процесса ее не закрыть таким путем как описано выше, соответственно эту сессию обрабатывает только один процесс для обычных сессий, процесс который ее обрабатывает может менять от вызова к вызову, соответственно и процессу закрываться не имеет смысла, он может пригодиться для обработки других сессий, такие сессии тоже ставят блокировку но только на момент выполнения какого либо запроса, после того как код сгенерирован и полностью отдан браузеру блокировка снимается можно еще попробовать закрыть сессию так: s sc=$$endSession^%SYS.cspServer(session) session - объект сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:33 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
kolesovservit, Не экспериментировали, при завершении сессии процессы, ей порожденные, киляются? А я вот попробовал. Собственно, результат не совсем закономерный. Если со страницы вызвать серверный метод с кодом типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Я подумал, что ведь никогда не наступит этот тайм-аут (вроде бы обычно его отсчет начинался после завершения выполнения серверного метода), но он наступил (видимо какой-то еще тайм-аут сработал, то ли гейтвея, то ли браузера) И наступил он как-то неприятно... повисла моя страничка. Напрочь. Причем открыть заново в той же копии браузера не получилось - через минуту-две увидел браузерCaché Server Pages Версия 2010.1.1.503.0 Состояние ошибки CSP-приложение закрыло соединение до отсылки полного ответа Судя по состоянию глобальки метод накрылся между 4-мя и 5-ю минутами после старта. Еще через некоторое время (мы как-то пытались считать, сколько тайм-аутов задействовано... жуть как много - чёрт ногу сломит в них) первое окно наконец честно отчиталось о закрытии сессии и дало себя перезагрузить... Таким образом, ребром встал вопрос: А как покилять все процессы, выполняемые в рамках сессии перед подобным ее "закрытием"??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:48 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
DAiMorпроблема при закрытии сессий, будет если сессия с Preserve=1, т.е. хранимая, для такой сессии блокировка устанавливается постоянно и из другого процесса ее не закрыть таким путем как описано выше, соответственно эту сессию обрабатывает только один процесс для обычных сессий, процесс который ее обрабатывает может менять от вызова к вызову, соответственно и процессу закрываться не имеет смысла, он может пригодиться для обработки других сессий, такие сессии тоже ставят блокировку но только на момент выполнения какого либо запроса, после того как код сгенерирован и полностью отдан браузеру блокировка снимается можно еще попробовать закрыть сессию так: s sc=$$endSession^%SYS.cspServer(session) session - объект сессии Про процесс понял, но как быть, если мне достоверно известно, что в данный момент он, процесс этот, тратит калории исключительно на обогрев атмосферы. Нельзя ему как-то тонко намекнуть на бестолковость и расточительность этого занятия? Про s sc=$$endSession^%SYS.cspServer(session) в моей версии, 2010-й, вижу там два параметра, и оба по ссылке. Моя попытка передать туда объект сессии по ссылке успехом не увенчалась. Может, кстати, знаете, что за второй параметр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:56 |
|
||
|
Закрытие CSP-сессии не из нее самой
|
|||
|---|---|---|---|
|
#18+
=kolesovПро процесс понял, но как быть, если мне достоверно известно, что в данный момент он, процесс этот, тратит калории исключительно на обогрев атмосферы. Нельзя ему как-то тонко намекнуть на бестолковость и расточительность этого занятия?Заведите проблему в WRC. =kolesovПро s sc=$$endSession^%SYS.cspServer(session) в моей версии, 2010-й, вижу там два параметра, и оба по ссылке. Моя попытка передать туда объект сессии по ссылке успехом не увенчалась. Может, кстати, знаете, что за второй параметр?Из кода класса %CSP.Session для версии 2011.1.RC1 видно, что $$endSession^%SYS.cspServer вызывается из %DeleteData , и нет уверенности, что будет достаточно одного лишь этого вызова. К тому же я поостерёгся бы использовать метод без документации и помеченный как [Internal] . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 13:14 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=37301714&tid=1557725]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
208ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 566ms |

| 0 / 0 |
