2013-03-12 1 views
1

У меня есть верблюд на основе приложение, которое публикует/выписывает сообщения в/из экземпляра ActiveMQ с маршрутами, как:Как и где проверить некоторые настройки Apache Camel

<from uri="activemq:myQueue" /> 

или:

<to uri="activemq:someOtherQueue" /> 

Я пытаюсь определить, если я нечаянно установить мое приложение вверх в «синхронном режиме», которое происходит, когда:

  • ActiveMQConnectionFactory#setAlwaysSyncSend истинно; или
  • «MessageProducer» установлен в положение «Persistent»

Я считаю, что, без верблюд, я обычно была бы настройка этих свойств вручную. Представляем Camel в качестве клиента ActiveMQ здесь, не знаете, как и где искать значение этих свойств. Есть идеи? Заранее спасибо.

ответ

1

Эти значения вы настраиваете при добавлении компонента, установив их в URI соединения, который передается компоненту ActiveMQ. Этот documentation на веб-сайте Camel показывает вам, как это делается.

Клиент ActiveMQ делает некоторые из своих собственных оптимизаций для повышения производительности при отправке, в некоторых случаях предпочитая использовать асинхронную синхронизацию. Это documented here и стоит прочитать.

Таким образом, вы бы настроить компонент при добавлении его с помощью кода, как это:

camelContext.addComponent("activemq", activeMQComponent("tcp://localhost:61616?jms.alwaysSyncSend=true")); 

опции конфигурации ActiveMQConnectionFactory описаны подробно here и варианты, применимых к транспортам here

+0

Спасибо Bish @ Тим (+1) - Хмммм. Кажется, я сейчас что-то собираюсь. Я вижу, что компонент ActiveMQ не добавляет никаких новых параметров и что все параметры [JMS] (http://camel.apache.org/jms.html) применяются к ActiveMQ. Таким образом, глядя на эти параметры JMS, я вижу несколько таких, которые * напоминают 'alwaysSyncSend' (то есть' asyncConsumer', 'asyncStartListener' и' asyncStopListener'), однако я не вижу * any *, которые напоминают 'MessageProducer'. Есть идеи? Я чувствую, что я так близко, но мне все еще нелегко видеть «лес через деревья» здесь. Еще раз спасибо! – IAmYourFaja

+0

Кроме того, 'asyncConsumer' (который звучит как * most *, как' alwaysSyncSend') по умолчанию 'false'. Итак, если это свойство, которое соответствует 'alwaysSyncSend', и я не устанавливаю его явно в true, то разве это не означает, что мой клиент настроен в« синхронном режиме »? – IAmYourFaja

+1

Можете ли вы уточнить свой вопрос, чтобы понять, что именно вы действительно пытаетесь сделать? Или что не работает так, как вы этого хотите? Мне трудно понять вашу проблему так сложно, чтобы составить хороший ответ. Прочитайте ссылку, которую я добавил в клиенте AMQ, и его использование асинхронных сообщений для некоторых случаев. Большая часть этого материала вам вообще не нужно возиться. –

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