I started using the file based PM. I don't think it can recover a queue after restarting the server. I always had to delete the waiting messages (JBoss 3.0-series).
After moving to hypersoniq the queue could be recovered after reboot. But hypersoniq seems to crash frequently when the queue size increases. I have tried different memory settings but it seems to always crash when the QueueDepth reaches around 30000 messages (JBoss 3.2-series)
I am now trying mysql. It seems that the queue is much more stable, but there is a rather big performance penalty.
I'd love to hear more stories about PersistanceManager in JBossMQ.