Показать сообщение отдельно
Старый 30.12.2011, 23:58   #40  
CDR is offline
CDR
MCTS
MCBMSS
 
236 / 175 (6) ++++++
Регистрация: 27.11.2003
На самом деле курсы не так страшны, как их малюют.

На Х++ кешируются загруженные курсы для определенной даты. Соответственно если в компании не увлекаются постоянным редактированием уже загруженных курсов, все работает стабильно. При загрузке курса на новую дату, он автоматом добавляется в кеш при разноске первой валютной операции на эту дату.

Для тех редких клиентов, которые все-таки любят поиграться с уже созданными курсами, приходилось переделывать механизм кеширования таким образом, чтобы он работал только в рамках текущей транзакции.

Алгоритм был приблизительно такой:
Если транзакции нет - кеширование не работает. Если транзакция есть - выбирается запись из кеша. Если кеша нет, чтение из базы и сохранение в кеш. Если кеш есть - свяряются идентификаторы текущей транзакции и записи в кеше. Если совпадают - используется закешированный курс. Если не совпадают - кеш обновляется и сохраняется с идентификатором текущей транзакции. На производительность системы при разноске документов доработка практически не повлияла. И глюки с кешем пропали.
__________________
Dynamics AX Experience
За это сообщение автора поблагодарили: Pustik (3), Logger (3).