Показать сообщение отдельно
Старый 20.07.2007, 11:36   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от snirk Посмотреть сообщение
Столкнулся с непонятной проблемой, которая, как мне кажется, связана с кэшированием.
Да, кэширование.
Да, так и должно быть.

Цитата:
Сообщение от snirk Посмотреть сообщение
Суть в том, что при изменении данных (и не только) Аксапта в некоторых случаях (не всегда) использует старые или вообще неизвестно откуда появившиеся данные. Причем в один и тот же момент разные клиенты видят разную информацию.
Да, это фича кэширования.
В кэше данные могут быть неактуальны. Но зато он быстрее.
Отсюда мораль - не надо жестко кэшировать часто меняющиеся данные.

Цитата:
Сообщение от snirk Посмотреть сообщение
В таблице есть поле A, которое отображается на форме. И на форме, и через Обозреватель Таблицы видно, что значение поля для одной из строк = false, а при работе одного из методов, который правильно находит эту строку, значение этого поля = true (видно в Debugger-e). Совершенно непонятно откуда берется такое значение.
И форма, и обозреватель могут брать данные по совершенно другому алгоритму.
Во-первых, они могут брать грязные данные, во-вторых, закэшированные.
См. режим кэширование NotInTTS.

Цитата:
Сообщение от snirk Посмотреть сообщение
Проблему удалось решить очистив кэш на сервере и перезагрузив клиента.
Должно было хватить либо очистки, либо перезагрузки.

Цитата:
Сообщение от snirk Посмотреть сообщение
Изменил код в методе одного из классов, сохранил, откомпилировал. Но при работе с моего компа вызывается старый, неизмененный метод (Debugger в него сваливается). При этом на других компах видят мой новый метод. Перезагрузка Аксапты не помогла. Проблему так и не решили.
Бизнес-логика тоже кэшируется.
Такое могло быть, если одни комьютеры работают с АОСом (а он держит бизнес-логику в кэше)
а другие работают с другим АОСом или в двухзвенке (тогда у них другой кэш)

Кэш бизнес-логики обновляется раз в 15-20 минут.
Надо было подождать, оно бы обновилось.
Либо нажать на пункт меню обновить AOD в Сервис \ Средства разработки \ ...

Цитата:
Сообщение от snirk Посмотреть сообщение
И куча похожих багов, которые повторяются постоянно...
А зачем вы так программируете ПОСТОЯННО?
Я надеюсь, что вы не программируете ПОСТОЯННО в рабочем приложении?
Почитайте implementation best practice с рекомендациями по поводу среды разработки, рабочей среды и о том, как правильно организовать процесс переноса доработок.

Цитата:
Сообщение от snirk Посмотреть сообщение
Вообще непонятно в чем проблема, где искать корни и самое главное как исправить.
В кэше.

Цитата:
Сообщение от snirk Посмотреть сообщение
Так было не всегда - только последнюю неделю. Никаких изменений в настройках связанных с кэшированием не было. Единственное - около месяца назад создали кластер AOS-ов, но недели 3 все работало нормально.

RTFM. У каждого АОСа свой кэш.

См. также ответы на этот же вопрос http://axforum.info/forums/showthread.php?t=19470
__________________
полезное на axForum, github, vk, coub.