Может быть Вам стоит просто ограничить максимальное количество строк в одном журнале? Скажем, не более 500..1000 строк.
Как мне кажется, выполнять разноску в пакетном режиме не есть хорошая идея. Т.е. сегодня журнал создали, ночью попытались разнести, вылезла ошибка разноски, исправили, следующей ночью опять попытались разнести, вылезла другая ошибка разноски,... И сколько дней Вы будете пытаться повторять попытку разноски? Ах, у Вас не будет ошибок разноски? Ну-ну..
Как Вам уже неоднократно намекали, основная проблема разносок - это взаимные блокировки. И распаралеливание процессов Вам вообще никак не поможет. По сути, Вы просто повторите ту ситуацию, которая происходит сейчас. Когда Вы пытаетесь разнести в процессе работы такой огромный журнал вся работа встает. Другой пользователь (процесс) не может ничего сделать из-за наложенных процессом разноски блокировок. И в чем разница, если в качестве другого пользователя будет выступать другой процесс разноски?
Единственные путь решения проблемы без существенной переделки кода - это банальное ограничение количества строк журнала.
Ну, сделают пользователи не один мега-журнал, а 10..20 небольших журналов. Например, просто копируя строки из предварительно созданного мега-журнала. Это и контролировать будет проще и обрабатывать...
|