Я работаю в глобальной торговой системе, которая поддерживает много пользователей. Каждый пользователь может бронировать, изменять, редактировать, удалять сделки. Система регулируется центральной службой захвата сделок. Служба захвата сделки информирует всех пользователей о любых обновлениях, которые происходят.
Проблема возникает, когда у нас возникают сбои, поскольку невозможно создать производственную среду в тестовой системе, мне приходится полагаться на аварийные дампы и файлы журналов.
Однако это не говорит мне, что делал пользователь.
Мне бы хотелось, чтобы система (во время сбоя) выкидывала историю того, что делал пользователь. Все, что я добавляю, должно попадать в живую среду, чтобы оно не могло слишком сильно повлиять на производительность.
Идеи мудрые: я думал о MACRO в верхней части каждой функции, которая действовала как трассировка стека (только я мог предоставить дополнительную информацию о пользователе, такую как идентификаторы сделок, выбор пользовательских диалогов и т. Д.). Система будет записывать трассировки стека. (для каждого потока) и сохраняйте историю в циклическом буфере (различаясь по размеру, в зависимости от того, сколько истории вы хотите захватить). Затем в случае сбоя я могу сбросить этот стек истории.
Мне бы очень хотелось услышать, есть ли у кого-нибудь лучшее решение или кто-нибудь знает о существующей платформе?
Спасибо
Рич