Разрешение конкуренции данных

основная проблема конкуренции данных состоит

Проблемы конкуренции данных проявляют себя в различных ситуациях, чаще всего в распределенных многопользовательских системах. Основная проблема конкуренции данных состоит в том, что при работе с отключенными данными, что по большей части и делается через ADO. NET, одни и те же данные могут редактироваться одновременно двумя различными пользователями или двумя различными частями кода. Когда сделанные изменения будут фиксироваться в хранилище данных, вам придется решать, чьи данные сохранять и что делать с конфликтами. Как описывается в приложении Г, когда в ADO. NET происходит ошибка конкуренции, на уровне доступа к данным выбрасывается исключение DBConcurrencyException. В больших промышленных системах эти ошибки часто перехватываются на рабочем уровне или под ним, и обрабатываются некоторым автоматическим образом, с возбуждением, возможно, како — го-то другого типа ошибки для уровня представления, чтобы оповестить пользователя. В меньших системах вы можете позволить исключению DBConcurrencyException Пройти наверх вплоть до уровня представления, чтобы там его обработать. Возможно также, что вы решите в ответ на ошибку конкуренции возбуждать на рабочем уровне специальное исключение. Какой бы подход вы ни избрали, для разрешения этих ошибок или представления их пользователю не существует никаких «встроенных» функциональных средств. Подготовленность пользователей в различных прикладных областях очень сильно варьируется, и соответственно варьируется степень сложности решений, которые вы можете оставить на их усмотрение, и это не дает возможности найти такие решения общего назначения, которые подошли бы всякому. Если ваши пользователи знают довольно много, вы могли бы в случае ошибок конкуренции предоставлять им UI, который позволяет сделать выбор между значениями, которые он посылают, и текущими значениями в базе данных, как показано на рис. 10.7. В случае менее подготовленных пользователей вы могли бы просто отвергать посланные ими данные и заставлять их ввести все заново. Тут вы должны продумать вопрос, как часто это может происходить и какое воздействие будет оказывать на пользователей, хотя иногда требование проделать лишнюю работу, заново вводя данные, будет меньше сбивать с толку и будет связано для них с меньшим стрессом, чем попытки понять, чего от них хочет более сложный интерфейс.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *