Производительность вашего обмена сообщениями зависит не от уровня JMS, а от базовой реализации. НАПРИМЕР. WebSphere MQ, Tibco EMS, Apache ActiveMQ, Oracle AQ и т. Д.
Вы должны использовать очередь, если вы хотите отправить только одному получателю (т.е. процессу), но использовать тему, если вы хотите, чтобы много получателей прочитали копию каждого сообщения. Это проблема дизайна.
Вам нужны транзакции, если потеря сообщения до его обработки нанесла бы ущерб вашему приложению. Или, если сообщение обработано наполовину, вредно. В большинстве случаев вам нужно будет использовать транзакции.