Процесс обработки записей многие-к-одному
Имею задачу осуществить обработку файла импорта. Он представляет собой "плоский" файл с транзакциями пользователей.В нем есть три группы направлений обработки, суть которых в создании( или обновлении) записей. Т.е. осуществляется обработка один-к-одному. Удается взаимно связывать создаваемые записи с записями транзакций. С этим все хорошо.
Сложность возникла на этапе подсчитывания записей, которые об'единены принадлежностью к какой-то группе. Обработка осуществлена следующим образом:
При вставке з таблицу транзакций создается (или изменяется) запись в некоей сущности "Активностей Потребителя", каждая такая Активность берется из списка зарегистрированных активностей, каждая из которых содержит поле счетчика.
По логике, каждая "Активность Потребителя" должна приращивать счетчик активностей в списке тех самых зарегистрированных активностей.
Для этого я создал два процесса, - на создание и на изменение сущности "Активность Потребителя", в которой и попытался осуществить приращение счетчика в активности из списка, на которую указывает "Активность Потребителя". Приращение осуществил стандартно: "Увеличить на" {1}.
Так вот первая запись подсчитывается нормально, а потом начинается чехарда - что-то подсчитывается, а бальшинство процессов застопоряются из-за SQL-ошибки.
Я уже и статус для записи вводил, чтобы обрабатывать запись в зависимости от состояния - "Занято"-"Свободно" - на результат это принципиально не влияет, - снова одна-две записи подсчитываются, другие выпадают с ошибками, а третьи - видно, что механизм статуса не срабатывает, - между шагами одного процесса успевают сработать другие процессы, так что в общем получается какая-то чехарда.
Фантазии уже не хватает для того, чтобы разрулить ситуацию ...
Help please.
Последний раз редактировалось Iwa; 17.09.2012 в 11:40.
|