Not quite the answer to your question:
Had the same prob under NT - pkzip created an unusable zip file (Oracle did not hang). Worked around it by moving the file to another directory before zipping. The move failed with a sharing violation if the file was still being written and the zip job found nothing new to do - so no zip file (get it in the next cycle) instead of a "corrupted" one.
I hope you can translate that to UNIX.
"The power of instruction is seldom of much efficacy except in those happy dispositions where it is almost superfluous" - Gibbon, quoted by R.P.Feynman