Using JBOSS 3.0.4
We are using JMS configured with File Persistence. We have a single topic with multiple subscribers. Each publication of a message is saved to the subscribers queue on disk.
When disk space runs out some messages are partially written, this is because
the code in MessageLog::writeMessageToFile write the message out in two parts
out.writeLong( message.header.messageId );
When the persistence manager does it's rollback, the partially written message is not deleted.
Subsequent message publicatinos manage to create more message fragments.
When restarting the JBoss, the MessageLog::restore method attempts to read the partially written messages and encounters and exception. As a results, the JMS persistence service cannot be restarted.
I have implemented a work around which creates temporary file until the entire message is persisted,
and filters out these temporary files when the message queue is restored.
Has anyone else encountered this problem? Is there a better solution?