Показать сообщение отдельно
Старый 17.09.2012, 11:33   #1  
Iwa is offline
Iwa
Участник
 
14 / 10 (1) +
Регистрация: 10.07.2012
Адрес: Киев, Украина
Процесс обработки записей многие-к-одному
Имею задачу осуществить обработку файла импорта. Он представляет собой "плоский" файл с транзакциями пользователей.В нем есть три группы направлений обработки, суть которых в создании( или обновлении) записей. Т.е. осуществляется обработка один-к-одному. Удается взаимно связывать создаваемые записи с записями транзакций. С этим все хорошо.

Сложность возникла на этапе подсчитывания записей, которые об'единены принадлежностью к какой-то группе. Обработка осуществлена следующим образом:

При вставке з таблицу транзакций создается (или изменяется) запись в некоей сущности "Активностей Потребителя", каждая такая Активность берется из списка зарегистрированных активностей, каждая из которых содержит поле счетчика.

По логике, каждая "Активность Потребителя" должна приращивать счетчик активностей в списке тех самых зарегистрированных активностей.
Для этого я создал два процесса, - на создание и на изменение сущности "Активность Потребителя", в которой и попытался осуществить приращение счетчика в активности из списка, на которую указывает "Активность Потребителя". Приращение осуществил стандартно: "Увеличить на" {1}.

Так вот первая запись подсчитывается нормально, а потом начинается чехарда - что-то подсчитывается, а бальшинство процессов застопоряются из-за SQL-ошибки.

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

Фантазии уже не хватает для того, чтобы разрулить ситуацию ...

Help please.

Последний раз редактировалось Iwa; 17.09.2012 в 11:40.