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.
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>
Yes, but only if the server is stopped and you follow some guidelines :
(See above question first for details of the folders content)
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.
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.
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.
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.