Не уверен, что если у вас есть доступ, вы можете попробовать просмотреть ReceiverCount или ConsumerCount в QueueInfo или TopicInfo - я считаю, что вам нужен пакет tibjms.admin. Может быть, вы можете запросить это, прежде чем публиковать, а затем выборочно публиковать? Не уверен, что накладные расходы.
Из-за природы JMS, AFAIK никакие транзакции не сообщаются (если вы не используете транзакцию XA - со всеми этими издержками) или подтверждения будут распространяться через брокера EMS. I.e.acks всегда между издателем и брокером и потребителем и брокером.
В противном случае вы можете попробовать отдельную ack-тему, для которой роли поменялись местами, но тогда случай сбоя - это тайм-аут - я не уверен, что это разумно.
Если вам неважно, к какому обмену относится заказ - почему бы не сделать тему / очередь эксклюзивной и заставить обоих потребителей пытаться ее использовать - первый, кто добьется успеха, обработает все сообщения - если он умрет, тогда второй (который может периодически повторяться - может успешно подключиться). В качестве альтернативы разрешить обоим обрабатывать заказы из очереди - помните, что сообщение будет когда-либо обрабатываться только одним потребителем ...
Я действительно не вижу преимущества разъединенной шины обмена сообщениями в вашем потоке заказов ... для меня нет смысла ..