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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2010, 10:53   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Способы почистить локальный кеш всем пользователям?
Какими способами можно почистить локальный кеш для всех пользователей сети? (Ax 2009 SP1)

Кеш локальный: http://www.axaptapedia.com/index.php...ching#Location
Для ОС до Windows Xp включительно:
Код:
[DISK]:\Documents and Settings\%USERNAME%\Local Settings\Application Data
Для систем от Windows Vista и выше
Код:
%USERPROFILE%\AppData\Local
Вырианты:
  1. Написать батник-чистильщик. Через GPO назначить на вход в систему.
  2. Как то придумать при входе в аксапту или при выходе из аксапты.
  3. Руками почистить. (не желательно)
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 20.12.2010, 11:33   #2  
otkudao
Гость
 
n/a
перегрузить АОС
Старый 20.12.2010, 12:00   #3  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Сделал небольшой функционал для того чтобы удаленно:
1. Отправлять пользователям сообщения.
2. Сбрасывать локальный кэш.
3. Запрашивать версию клиента.

Сообщения обрабатываются у клиента в методе Info::onEventGoingIdle.
Рекомендую класс Info заливать только после компиляции остальной части проекта.
В параметры пользователя добавлена возможность отключить обработку (она может мешать при отладке).
SharedProject_ClientMessage_OK.rar
Нажмите на изображение для увеличения
Название: clmsg.jpg
Просмотров: 649
Размер:	82.5 Кб
ID:	6470
Нажмите на изображение для увеличения
Название: clmsg2.jpg
Просмотров: 505
Размер:	75.7 Кб
ID:	6473

Последний раз редактировалось Bega; 20.12.2010 в 12:04.
За это сообщение автора поблагодарили: Zabr (1), sukhanchik (10), Logger (7), Ace of Database (4), Poleax (5), gl00mie (10), farlander (1), Андрей К. (1), driller (1), d&m (1), d_alexe (1).
Старый 20.12.2010, 12:57   #4  
driller is offline
driller
Сам.AX
Аватар для driller
Самостоятельные клиенты AX
SAP
 
78 / 54 (2) ++++
Регистрация: 11.04.2007
Адрес: Санк-Петербург
Или если самому не лень заниматься, и не нужны вкусности предложенные Bega, то добавляем к пользователю флажок «needClearCash». Для запуска на клиенте вешаем на Application.startupPost() или Info.startupPost() проверку этого флажка для текущего пользователя, если нужно чистим, как сказано здесь и снимаем флажок. При необходимости вновь, выставляем этот флажок для всех.
__________________
"Считать метафору доказательством, поток праздных слов источником истины, а себя оракулом - это заблуждение, свойственное всем нам."
Поль Валери
За это сообщение автора поблагодарили: mazzy (2), farlander (1), Kabardian (2).
Старый 20.12.2010, 13:20   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,202 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Цитата:
Сообщение от Bega Посмотреть сообщение
Сделал небольшой функционал
Это проект для 2009? Будет ли работать в 4.0? (если поправить такие мелочи, как например различие в одной букве в ConfigType::LicenseName и еще мильон различий в классе Info).
Старый 20.12.2010, 13:23   #6  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от Zabr Посмотреть сообщение
Это проект для 2009? Будет ли работать в 4.0? (если поправить такие мелочи, как например различие в одной букве в ConfigType::LicenseName и еще мильон различий в классе Info).
В классе Info должен быть вот этот единственный вызов, весь класс не нужно заливать:
Нажмите на изображение для увеличения
Название: clmsg3.jpg
Просмотров: 735
Размер:	65.5 Кб
ID:	6474

Да это проект под DAX2009. В 4.0 не проверял, думаю нет причин, чтобы не работало.
Старый 20.12.2010, 14:21   #7  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Bega Посмотреть сообщение
Сделал небольшой функционал для того чтобы удаленно:
1. Отправлять пользователям сообщения.
2. Сбрасывать локальный кэш.
3. Запрашивать версию клиента.

Сообщения обрабатываются у клиента в методе Info:nEventGoingIdle.
Рекомендую класс Info заливать только после компиляции остальной части проекта.
В параметры пользователя добавлена возможность отключить обработку (она может мешать при отладке).
Можно в проект закинуть \Data Dictionary\Base Enums\FormWindowType он у меня без меток, и на форме выглядит очень куцо.

Поясните, что за флаг "Отключить обработку клиентских сообщений (ОК)"
Кнопка "Запросить версию" не обновляет данные по запросу. Отработал только один раз, после был выбран сброс кеша. Теперь запросить версию показывает данные.
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 20.12.2010, 14:26   #8  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от Poleax Посмотреть сообщение
Можно в проект закинуть \Data Dictionary\Base Enums\FormWindowType он у меня без меток, и на форме выглядит очень куцо.

Поясните, что за флаг "Отключить обработку клиентских сообщений (ОК)"
Кнопка "Запросить версию" не обновляет данные по запросу. Отработал только один раз, после был выбран сброс кеша. Теперь запросить версию показывает данные.
Удалите поле FormWindowType, к этому проекту оно не имеет отношения. Под рукой нет абсолютно чистой системы, поставлю, выложу.

После запроса версии нужно в форме активных пользователей нажать кнопку Обновить - клиенты обрабатывают сообщения не сразу, а при простое системы, так что может пройти несколько секунд.
Старый 20.12.2010, 14:38   #9  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Bega Посмотреть сообщение
Удалите поле FormWindowType, к этому проекту оно не имеет отношения. Под рукой нет абсолютно чистой системы, поставлю, выложу.

После запроса версии нужно в форме активных пользователей нажать кнопку Обновить - клиенты обрабатывают сообщения не сразу, а при простое системы, так что может пройти несколько секунд.
Похоже, что надо еще удалить из проекта ? :
\Forms\SysUsersOnline\Data Sources\SysClientSessions\Methods\lastMessage_OK
почистить методы ?:
\Forms\SysUserSetup\Data Sources\UserInfo\Methods\validCertificate
\Forms\SysUserSetup\Data Sources\UserInfo\Methods\validCertificate
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 22.12.2010, 11:09   #10  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
DAX 3.0. У нас у пользователей ярлык на рабочем столе на vbs скрипт (лежит в сети).
X++:
Const DeleteReadOnly = True
Dim Shell, fso, WshNetwork, AOS
Set fso = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("WScript.Shell")
Set WshNetwork = WScript.CreateObject("WScript.Network")

' Очистка кэша
mask = Shell.ExpandEnvironmentStrings("%UserProfile%\Local Settings\Application Data\*.aoc")
If fso.FileExists(mask) Then fso.DeleteFile mask, DeleteReadOnly

Shell.run("\\Server\dfs\AxClientStart\ok.axc")

WScript.Sleep 1000

Set Shell = Nothing 
Set fso = Nothing 
Set WshNetwork = Nothing
Старый 22.12.2010, 11:52   #11  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
Цитата:
Сообщение от raz Посмотреть сообщение
DAX 3.0. У нас у пользователей ярлык на рабочем столе на vbs скрипт (лежит в сети).
X++:
' Очистка кэша
mask = Shell.ExpandEnvironmentStrings("%UserProfile%\Local Settings\Application Data\*.aoc")
а для Vista и выше? там ведь путь уже другой...
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try.
Старый 22.12.2010, 12:04   #12  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от d&m Посмотреть сообщение
а для Vista и выше? там ведь путь уже другой...
нету Vista и выше, есть XP. думаю - подправить самостоятельно не проблема.
Старый 22.12.2010, 13:45   #13  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Кнопка вызывает простейший класс с таким кодом (для 4.0):
X++:
xSession::removeAOC();
SysTreeNode::refreshAll();
SysFlushDictionary::doFlush();
SysFlushAOD::doFlush();
xSession::updateAOC();
Для 2009 вроде что-то чуток поменять надо, нет сейчас под рукой. Сделайте поиск по форуму по этим методам - было много обсуждений.
__________________
Ivanhoe as is..
Старый 22.12.2010, 13:51   #14  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
В 2009-й использую:
X++:
            xSession::removeAOC();
            SysTreeNode::refreshAll();
            SysFlushDictionary::main(null);
            SysFlushAOD::main(null);
            SysFlushData::main(null);
            xSession::updateAOC();
Старый 22.12.2010, 14:30   #15  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
до кучи Кластер 2 АОСа. Разные приложения.
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
Старый 27.02.2011, 23:25   #16  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
см. также стандартную реализацию чистки кэша для АОСа (нескольких АОСов):

Каждый раз, когда мы выполняем такие действия как "Обновить AOD", "Обновить словарь данных" и т.д., АОС (ы) получает соответствующую команду посредством вызова метода SysEvent::fireEvent(SysEventType::XXXX); в классах SysFlushAOD,
SysFlushData

C помощью класса SysEventHandler АОС сканирует таблицу SysEvent на наличие команд и исполняет их.
Запускается этот огород здесь: \Classes\Application\new

Наверное этот механизм можно использовать и для клиентских сессий, подпилив совсем чуть-чуть.
Старый 28.02.2011, 09:57   #17  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Никто не сталкивался с такой проблемой?: очищаем кэш, пользователь закрывает приложение, запускает снова и получает ошибку:
Название: error.JPG
Просмотров: 1787

Размер: 49.6 Кб
Чаще всего это происходит на Windows 7 но также бывает и на XP. Опытным путем выяснили, что ошибка возникает после SysFlushAOD::main(null), а именно после SysFlushAOD::doFlush() внутри main().

Лечится это только ручным удалением кэша с диска. Версия DAX2009 SP1 RU6.

Последний раз редактировалось Bega; 28.02.2011 в 10:07.
Старый 06.06.2011, 12:29   #18  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Странно, я использую такой код (см. ниже), проблем с открытием клиентов пока не было, хотя есть ощущение что формы не обновляются. DAX 2009 SP1 RU6.

X++:
xSession::removeAOC();
SysTreeNode::refreshAll();
SysFlushDictionary::doFlush();
SysFlushAOD::doFlush();
xSession::updateAOC();
__________________
Ivanhoe as is..
Старый 06.06.2011, 12:33   #19  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Странно, я использую такой код (см. ниже), проблем с открытием клиентов пока не было, хотя есть ощущение что формы не обновляются. DAX 2009 SP1 RU6.

X++:
xSession::removeAOC();
SysTreeNode::refreshAll();
SysFlushDictionary::doFlush();
SysFlushAOD::doFlush();
xSession::updateAOC();
Сплюнь три раза.
Теги
aoc, ax2009, активные пользователи, законченный пример, кэш, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Локальный кеш Ax для Windows 2008 ViV DAX: Администрирование 1 01.12.2010 11:59
Как грамотно почистить кеш Varmen DAX: Администрирование 10 17.02.2010 20:43
Как применить текущие настройки пользователя ко всем пользователям компании? wind DAX: Администрирование 2 21.09.2007 13:01
отчет по всем компаниям delicia DAX: Программирование 6 22.11.2002 14:57
Проблемы настройки прав доступа пользователям axot DAX: Администрирование 25 16.05.2002 10:47

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

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

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