Apache Camel - хранимые процедуры JDBC и сомнения в обработке транзакций - PullRequest
1 голос
/ 21 декабря 2011

Я пытаюсь создать небольшое, проверенное концепцией приложение на базе Camel (работающее на FuseESB), которое, возможно, заменит часть нашей существующей системы интеграции, основанной на EJB.Сейчас я пытаюсь найти лучший способ справиться со следующим сценарием с верблюдом apache:

  1. Текстовое сообщение JMS приходит
  2. Мне нужно выполнить серию базы данныхоперации, основанные на содержимом сообщения, при вызове в основном хранимых процедур / функций
  3. из результатов, полученных вызовами базы данных. Мне нужно создать ответное сообщение и отправить его в определенную очередь jms.
  4. В случаеошибки / исключения Я хотел бы использовать механизм обработки мертвых букв.

Я могу строить простые маршруты верблюдов, обработка ошибок и исключений в верблюде также выглядит легко, чего я не получаю, так этокак использовать компонент Camel SQL (я понимаю, что компонент JDBC не может быть транзакционным клиентом), чтобы выполнять все мои вызовы БД как часть одной транзакции.Из того, что я нашел в сети, компонент Camel SQL нельзя использовать для выполнения хранимых процедур - так ли это?Если да, должен ли я использовать процессоры или простые классы pojo для выполнения моих вызовов jdbc?Как насчет транзакций в случае использования pojo или типов процессоров?Я был бы очень признателен за любые ссылки на ресурсы, описывающие, как обрабатывать такой вариант использования.

1 Ответ

1 голос
/ 21 декабря 2011

Я бы предложил использовать Java Bean для взаимодействия с JDBC, поскольку вы хотите выполнять несколько вызовов и использовать хранимые процедуры. Иногда Java-код проще.

Например, Spring JdbcTemplate имеет хорошую абстракцию по сравнению с JDK API JDK и позволяет довольно легко вызывать хранимые процедуры.

В качестве альтернативы, MyBatis также поддерживает вызов хранимых процедур. http://loianegroner.com/2011/03/ibatis-mybatis-working-with-stored-procedures/

И еще есть компонент верблюжий-мибатис.

...