Thanks - I'll give that a try.
After adding some trace level logs, I discovered that the hibernate query cache was sending invalidate messages for all hibernate entites (not just my cached config data objects) and so this was causing a huge amount of invalidate messages to be sent. Deactivating this seems to have solved the problem - so it seems the problem was due to very high frequency of invalidate messages.
It seems odd that there aren't any error message being logged, so perhaps these errors are occuring at a higher level, in which case your suggestion of logging tomcat errors would have helped!
Cheers