Isso é apenas a minha cabeça:considere usar um bloqueio nomeado via dbms_lock.http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_lock.htm#CHDICHDC
Logo após a instrução begin, obtenha o bloqueio, faça o trabalho e libere-o em uma saída (mantenha os erros/exceções em mente!).
KT