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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.10.2009, 20:18   #9  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А не связано ли нестабильное поведение счётчика простоя с наличием, а точнее с отсутствием в нужных местах команд StartLengthyOperation и endLengthyOperation?
Нет, эти методы всего лишь меняют в клиенте курсор с обычного на песочные часики и обратно.
Цитата:
Сообщение от ice Посмотреть сообщение
есть подозрение, что сброс счетчика как то связан с обновлением прогрессбара
  • Время неактивности считается от последнего обмена данными между клиентом и сервером
  • Настройка выхода по таймауту неактивности обрабатывается клиентом в период простоя - грубо говоря, когда стек вызова кода X++ пуст
  • Даже если запустить какую-то длительную операцию на сервере, исходно эта операция стартует на клиент (самые нижние фреймы в стеке вызова), поэтому клиент будет ждать завершения этой операции
Отсюда получаем несколько выводов:
  1. Любой обмен данными между клиентом и сервером приводит к сбросу счетчика времени простоя - в т.ч. обновление градусников при работе кода на сервере, поскольку для обновления данные градусника передаются на клиента
  2. Пока выполняется какой-либо код X++, клиент не будет обрабатывать настройку выхода по таймауту неактивности, в частности, если вы настроили таймаут простоя в 1 минуту, а на сервере полчаса формируется отчет, или обновляются данные, или тупо крутится пустой цикл, и при этом не отображаются никакие градусники, клиент все равно не отвалится по таймауту неактиавности, пока этот код не отработает, не вернет управление на клиента, не отработает клиентская часть кода, и стек вызова не станет пуст - только после этого клиент обработает настройку и отвалится по таймауту неактивности
К слову, даже если вообще не выполняется (вроде бы) никакой код, т.е. клиент реально простаивает, счетчик неактивности все равно периодически сбрасывается. Это связано с тем, что метод Info.watchDog() каждые 15 минут обновляет информацию о времени завершения сессии пользователя, косвенно вызывая обмен данными клиента с сервером (экземпляр Info "живет" на клиенте, а с БД при использовании тонкого клиента работает сервер).
Это все подробно обсуждалось в теме Автоматический выход из системы. Обратите также внимание на обсуждаемый в той теме косяк в работе автозавершения, проявляющийся при создании новой записи.
За это сообщение автора поблагодарили: lev (1), Ivanhoe (1), ice (1), S.Kuskov (1), -=RSV=- (1), Player1 (1), jeky (1), Alexx7 (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка времени выполнения: В NumberSeqReference_Empl_RU (Объект), не найден исполнимый код метода "loadModule" Ksju DAX: Функционал 14 21.10.2009 13:00
Расчет отпуска (суммирован. учет рабочего времени) MNG DAX: Функционал 1 30.11.2005 17:44
Учет времени простоя в системе tolstjak DAX: Администрирование 4 07.10.2005 13:22
Учет рабочего времени Orion DAX: Функционал 1 18.07.2005 16:52
Опрос: сколько времени у Вас закрывается склад? Paul_ST DAX: Администрирование 17 27.04.2005 15:04

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

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

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