Я пытаюсь создать небольшое доказательство концепции, приложение на основе Camel (работающее на FuseESB), которое, возможно, заменит часть нашей существующей системы интеграции, построенной на EJB. Прямо сейчас я пытаюсь выяснить, как лучше всего справиться со следующим сценарием с apache camel:
- Приходит текстовое сообщение JMS
- Мне нужно выполнить ряд операций с базой данных на основе содержимого сообщения, вызывая в основном сохраненные процедуры / функции.
- из результатов, полученных с помощью вызовов db, я должен создать ответное сообщение и отправить его в конкретную очередь jms.
- В случае ошибки / исключения я хотел бы использовать механизм обработки канала мертвой буквы.
Я могу создавать простые маршруты верблюда, обработка ошибок и исключений в верблюде тоже выглядит легко, чего я не понимаю, так это того, как использовать компонент Camel SQL (я понимаю, что компонент JDBC не может быть транзакционным клиентом), чтобы делать все мои вызовы db как часть разовой транзакции. Из того, что я нашел в сети, компонент Camel SQL нельзя использовать для выполнения хранимых процедур - это правда? Если это так, следует ли мне использовать процессоры или простые классы pojo для выполнения вызовов jdbc? А как насчет транзакций в случае использования типов pojo или процессоров? Я был бы очень признателен за любые указатели на ресурсы, описывающие, как обрабатывать такой вариант использования.