Talend ESB: как использовать сообщения только из очереди, когда работает конечная точка базы данных? - PullRequest
1 голос
/ 22 мая 2019

Не могли бы вы помочь мне с приведенным ниже сценарием?

Q1. Я использую сообщения от ActiveMQ и вставляю использованные сообщения в таблицу базы данных. По какой-то причине, если база данных не работает, я теряю сообщение. Как я могу предотвратить сообщение, не теряя их?

Q2. Я должен использовать сообщение из очереди только тогда, когда целевая база данных запущена и работает.

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

Использовать сообщение из очереди, только когда база данных запущена и работает. enter image description here

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Вы можете использовать задание cTalend до cJMS и создать соединение с базой данных внутри cTalendJob, передать код возврата за пределы задания talend и проверить в маршруте, если оно равно 200, затем перенаправить в поток cJMS, иначе ничего.

0 голосов
/ 22 мая 2019

Q1: вы можете попробовать использовать компонент cErrorHandler: он позволит вам отлавливать ошибки, происходящие в потоке, перенаправлять их на другой маршрут (используя direct: myRoute в качестве deadLetter, затем вам нужно настроить маршрут, начиная с cDirect с именем myRoute. Например, вы можете перенаправить сообщение в папку или другую очередь activeMQ).

Q2: я не знаю, как вы могли бы использовать этот Java-бин, если вы поместите его перед cJMS, Talend будет рассматривать cJMS как компонент источника, а не как потребителя.

...