В моем рабочем проекте мне нужно создать приложение для настройки очередей 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
Невозможно добавить настройки адреса через Artemis Core API ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1759504730
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>
Моя проблема в том, что я не получаю ответного сообщения о добавлении настроек. Или, может быть, невозможно получить ответ на этот тип сообщений в целом?
Подробнее здесь: [url]https://stackoverflow.com/questions/79781642/cannot-add-address-settings-via-artemis-core-api[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия