У меня есть кластер WildFly, который должен передавать все сообщения темы на разные узлы и сохранять их, если один узел отключен.
В этом случае мне нужен постоянный подписчик.
@MessageDriven(
activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "jms/Topic"),
@ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
@ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "anam123e"),
@ActivationConfigProperty(propertyName = "clientID", propertyValue = "abcd"),
}
)
Я заметил, что если я использую тот же идентификатор клиента, с которым система выполняет балансировку нагрузки. Если я изменю clientID или subscriptionName на уникальное значение, это сработает.
Итак, когда использовать уникальный clientID, а когда subscriptionName?
Я ответил: уникальный clientID для узла и subscriptionName для потока на узле.
Кроме того, я хочу сгенерировать clientID на основе имени узла wildfly, подобного следующему:
@ActivationConfigProperty(propertyName = "clientID", propertyValue = "abcd-" + WildFly.getInstance().getNodeName()),
Есть ли способ этого добиться?