19.07.2007, 15:25 | #1 |
Участник
|
Столкнулся с непонятной проблемой, которая, как мне кажется, связана с кэшированием. Суть в том, что при изменении данных (и не только) Аксапта в некоторых случаях (не всегда) использует старые или вообще неизвестно откуда появившиеся данные. Причем в один и тот же момент разные клиенты видят разную информацию. Более конкретно в примерах :
Пример 1: В таблице есть поле A, которое отображается на форме. И на форме, и через Обозреватель Таблицы видно, что значение поля для одной из строк = false, а при работе одного из методов, который правильно находит эту строку, значение этого поля = true (видно в Debugger-e). Совершенно непонятно откуда берется такое значение. Проблему удалось решить очистив кэш на сервере и перезагрузив клиента. Пример 2: Изменил код в методе одного из классов, сохранил, откомпилировал. Но при работе с моего компа вызывается старый, неизмененный метод (Debugger в него сваливается). При этом на других компах видят мой новый метод. Перезагрузка Аксапты не помогла. Проблему так и не решили. И куча похожих багов, которые повторяются постоянно... Вообще непонятно в чем проблема, где искать корни и самое главное как исправить. Так было не всегда - только последнюю неделю. Никаких изменений в настройках связанных с кэшированием не было. Единственное - около месяца назад создали кластер AOS-ов, но недели 3 все работало нормально. Если у кого есть мысли, очень прошу высказаться - проблема серьезно мешает работать. Заранее спасибо. |
|
20.07.2007, 07:55 | #2 |
Участник
|
у нас проблемы с расхождением в отображении данных на клиентах были, иногда.
в этих случаях всегда это было связано с кэшем, очистка кэша на клиенте решала проблему. В вашем случае я думаю надо прокачивать тему с кластером AOS-ов - Как правильно вести разработку при наличии нескольких AOS-ов. Попробуйте загасите один из них и воспроизведите проблеммную ситуацию.
__________________
Axapta 3.0 CIS SP3 CU1 --- Народу собралось - яблоку плюнуть негде! |
|
20.07.2007, 11:36 | #3 |
Участник
|
Цитата:
Да, так и должно быть. Цитата:
В кэше данные могут быть неактуальны. Но зато он быстрее. Отсюда мораль - не надо жестко кэшировать часто меняющиеся данные. Цитата:
Сообщение от snirk
В таблице есть поле A, которое отображается на форме. И на форме, и через Обозреватель Таблицы видно, что значение поля для одной из строк = false, а при работе одного из методов, который правильно находит эту строку, значение этого поля = true (видно в Debugger-e). Совершенно непонятно откуда берется такое значение.
Во-первых, они могут брать грязные данные, во-вторых, закэшированные. См. режим кэширование NotInTTS. Должно было хватить либо очистки, либо перезагрузки. Цитата:
Такое могло быть, если одни комьютеры работают с АОСом (а он держит бизнес-логику в кэше) а другие работают с другим АОСом или в двухзвенке (тогда у них другой кэш) Кэш бизнес-логики обновляется раз в 15-20 минут. Надо было подождать, оно бы обновилось. Либо нажать на пункт меню обновить AOD в Сервис \ Средства разработки \ ... А зачем вы так программируете ПОСТОЯННО? Я надеюсь, что вы не программируете ПОСТОЯННО в рабочем приложении? Почитайте implementation best practice с рекомендациями по поводу среды разработки, рабочей среды и о том, как правильно организовать процесс переноса доработок. Цитата:
Цитата:
RTFM. У каждого АОСа свой кэш. См. также ответы на этот же вопрос http://axforum.info/forums/showthread.php?t=19470 |
|
20.07.2007, 13:32 | #4 |
Участник
|
Спасиб, будем разбираться.
|
|