Frequently Asked Questions

Are destinations names case sensitive in FFMQ ?

Yes. The JMS specification does not specify this but it seems cleaner this way.
Queues and topics are internally registered and looked up by their exact names so you need to take care of this properly when using the JMS API.

Note : On windows, although the logical names would be considered different, you won't be able to create two queues or topics with only case differences due to filesystem restrictions. Anyway it's not recommended to do so for the sake of clarity.

What are exactly the files appearing in the data/ and destinations/ folders ?

A queue has one descriptor file queue-<queueName>.properties in destinations/ and some files in data :
<queueName>.index, <queueName>.store and <queueName>.journal.* (if the server was not properly stopped)
The .store file contains the messages data splitted in blocks.
The .index file is a kind of allocation table storing the position of used blocks in the .store file.
The .journal.* files are transaction logs for the store.

A topic has only one descriptor file topic-<topicName>.properties in destinations/, but there may be existing back-end queues for this topic named TOPIC-<topicName>-<someUUID>

Can I manually change things in the data/ and destinations/ folders ?

Yes, but only if the server is stopped and you follow some guidelines :
(See above question first for details of the folders content)

How do I manually delete a queue/topic ?

You need to delete all the associated files (listed above). Note that for a topic you should also delete all the back-end generated queues.

How do I manually rename a queue/topic ?

You need to rename all the associated files (listed above) accordingly, plus edit the .properties descriptor and change the <name> element.
Note that for a topic you should also rename all the back-end generated queues.

How can I relocate data files of queues ?

Data files are searched in the <dataFolder> that is specified inside the queue .properties descriptor. By default this is the server data/ folder. You can move the associated data files in another location if you update the associated .properties descriptor accordingly.

The server complains about missing or already existing storage files, why ?

If you have a descriptor in destinations/ but no files in data/ or the opposite, this will cause problems in the server. You need to delete them or move away the conflicting files to solve the issue.