Невозможно добавить настройки адреса через Artemis Core APIJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно добавить настройки адреса через Artemis Core API

Сообщение Anonymous »

В моем рабочем проекте мне нужно создать приложение для настройки очередей Artemis. Мне нужно динамически создавать очереди и изменить их параметры. Я написал следующий код: < /p>
Integer maxConsumerCount = 10;
Integer maximumQueueDepth = 1_000; // max-size-messages
Integer volume = 1_000_000; // max-size-bytes

String addressSettingsJson = """
{
"maxSizeBytes": "%d",
"maxSizeMessages": "%d"
}
""".formatted(volume, maximumQueueDepth);

String managementAddress = "activemq.management";
String responseAddress = "temp_management_response";
QueueConfiguration managementQueueConfig = QueueConfiguration.of(managementAddress)
.setAddress(managementAddress)
.setDurable(false)
.setTemporary(true);
QueueConfiguration responseQueueConfig = QueueConfiguration.of(responseAddress)
.setAddress(responseAddress)
.setDurable(false)
.setTemporary(true);

try (
ServerLocator serverLocator = ServerLocatorImpl.newLocator(url);
ClientSessionFactory clientSessionFactory = serverLocator.createSessionFactory();
ClientSession session = clientSessionFactory.createSession(
username,
password,
false,
false,
false,
false,
0
)
) {
log.info("Creating management queue");
session.createQueue(managementQueueConfig); // Creating management queue - works fine
log.info("Management queue created");

log.info("Creating queue");
QueueConfiguration queueConfiguration = QueueConfiguration.of(queueName);
queueConfiguration.setAddress(SimpleString.of(queueName));
queueConfiguration.setMaxConsumers(maxConsumerCount);
session.createQueue(queueConfiguration); // Creating queue - works fine
log.info("Queue successfully created");

log.info("Creating response queue");
session.createQueue(responseQueueConfig); // Creating queue for server response - works fine
log.info("Response queue created");

log.info("Updating address settings");
ClientMessage request = session.createMessage(true);
request.setReplyTo(SimpleString.of(responseAddress));
request.setAddress(managementAddress);
// Does not throw exception, so maybe it works fine
ManagementHelper.putOperationInvocation(
request,
ResourceNames.BROKER,
"addAddressSettings",
queueName,
addressSettingsJson
);
// Does not throw exception, so maybe it works fine
session.createProducer().send(managementAddress, request);

// Response is null, no matter how long I wait
ClientMessage response = session.createConsumer(responseAddress).receive(5_000);
if (response != null) {
log.info("result = {}", Arrays.toString(ManagementHelper.getResults(response)));
}
if (ManagementHelper.hasOperationSucceeded(response)) {
log.info("Address settings successfully updated");
} else {
log.error("Address settings failed");
}
} catch (Exception e) {
log.error("Error while creating queue", e);
}
< /code>
Моя проблема в том, что я не получаю ответного сообщения о добавлении настроек. Или, может быть, невозможно получить ответ на этот тип сообщений в целом?

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-core-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»