2016-10-13 5 views
0

У нас есть автономное приложение, где мы должны быть в состоянии поддерживать JMS-слушателей, используя динамическую конфигурацию базы данных. Если в базе данных есть какие-либо изменения в счетчике concurrentConsumers, нам необходимо соответствующим образом обновить слушателей. Мы используем верблюд 2.16.2 и Tibco 6.3.0. Точно так же ниже наши требования.Удаление маршрута верблюда не удаляет счетчики очереди очереди tibco

  1. Возможность динамического добавления и удаления JMS-слушателей. Для этого мы создаем собственный OwnRouteBuilder (который расширяет Camel RouteBuilder) и добавляет его с помощью camelContext.addRoutes (RouteBuilder) динамически, который работает как ожидалось.

  2. Возможность динамического увеличения или уменьшения JMS-слушателей. Для этого сначала мы попытались остановить маршрут, обновить счетчик одновременных вычислений, а затем начать маршрут. Он работает нормально только тогда, когда мы увеличиваем количество одновременных вычислений. Но он не работает, если мы уменьшаем (не изменяя количество совпадающих счетчиков). Мы все еще можем видеть, что одни и те же получатели подсчитывают от консоли tibco.

В качестве альтернативного решения, мы пытались с camelContext.stopRoute (routeId), а затем camelContext.removeRoute (routeId), так что мы можем добавить свежий маршрут с обновленным concurrentConsumers рассчитывать позже. В этом случае, даже если он останавливает маршруты от потребления сообщений, он не меняет количество приемников с консоли tibco.

Я попытался использовать camelContext.removeEndpoints (endpointUri), camelContext.shutdownRoute (routeId), методы camelContext.removeRouteDefinition (routingefinition). Но все эти методы только останавливают маршруты от потребления сообщений, но не очищают эти приемники от консоли tibco. Количество приемников от консоли tibco становится нулевым, только когда мы завершаем приложение.

Есть ли способ, который мы можем сделать с верблюда, чтобы эти приемники рассчитывали с консоли tibco, становились равными нулю.

ответ

0

Вы можете динамически изменять количество одновременных вычислений во время выполнения с помощью JMX для установки значений атрибута JMX на конечной точке. Затем маршрут не нужно останавливать/удалять/запускать и т. Д.

Смежные вопросы