Since what it currently happening is the code is reading the new record, printing it and then immediately exiting the loop, I inserted an eof() before trying to read the pipe from the pipe and did verify eof() is returning a 1. So I put in some code to call eof() before trying to read and if it returns 1 to simply do a read I know will fail and then follow it with next to stay in the inner loop.

Seems to work just fine but it doesn't make me happy. Perhaps this might offer a clue to someone else who does know what's going on?

I think I finally have a clean solution. After much reading and asking around in the office someone helped me with this snippet, assuming TAIL is the file handle you're doing the tail -f on. The answer is to simply redo the failed operation which previous responses had suggested. So if anyone is interested this is what I've settled on and particularly like it because it's short and straightforward: