2015-02-05 4 views
1

Я работаю над приложением, которое публикует сообщение в очереди с использованием адаптера исходящего канала. Существует новое требование, чтобы уникальный идентификатор, созданный во время обработки сообщения, сохранялся в базе данных после успешного опубликования в очереди, не дожидаясь ответа.Ускорение интеграции исходящих каналов и постоянная базы данных интеграции

Может кто-нибудь, пожалуйста, сообщите, какой должен быть лучший подход для этого.

Это то, что у меня есть в моем существующем приложении.

<int:gateway id="writerGateway" service-interface="CustomService" default-request-channel="writerChannel"> 
</int:gateway> 

<int-jms:outbound-channel-adapter channel="writerChannel" jms-template="jmsTemplate" destination-name="${queueName}" extract-payload="true"/> 

<int:channel id="writerChannel"> 
    <int:interceptors> 
     <int:wire-tap channel="writerLogger"/> 
    </int:interceptors> 
</int:channel> 

<int:logging-channel-adapter id="writerLogger" logger-name="writerLogger" level="INFO" expression="'Sending ' + payload?.size() + ' events'"/> 

Любая помощь будет очень признательна.

Спасибо, AK

ответ

1

Сделать writerChannel в <publish-subscribe-channel/> и подписаться второй поток (order="2") к нему, например, transformer -> jdbc-outbound-channel-adapter. Установите order="1" на адаптер jms, и второй поток будет вызван, если передача jms завершится успешно.

В качестве альтернативы используйте <recipient-list-router/>.

+0

Как было предложено, я сменил writerChannel на канал публикации-подписки, а затем использовал , за которым следует . Кажется, это работает. – user2459396

+0

Я столкнулся с проблемой здесь, потому что исходная полезная нагрузка преобразуется в XML. Я могу использовать заявку на регистрацию для хранения оригинальной копии, но я потерял ее, как подключить jms-outbound-channel-adapter и jdbc-outbound-channel-adapter, поскольку у них есть разные каналы для их входного сообщения. – user2459396

+0

Пожалуйста, не отвечайте на уже ответные вопросы; лучше начать новую. Вы можете использовать заголовок-обогатить ('

', чтобы сохранить копию полезной нагрузки в заголовке. Позже вы можете либо напрямую обращаться к заголовку, либо использовать трансформатор для восстановления payloasd. –

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