Я работаю над приложением, которое публикует сообщение в очереди с использованием адаптера исходящего канала. Существует новое требование, чтобы уникальный идентификатор, созданный во время обработки сообщения, сохранялся в базе данных после успешного опубликования в очереди, не дожидаясь ответа.Ускорение интеграции исходящих каналов и постоянная базы данных интеграции
Может кто-нибудь, пожалуйста, сообщите, какой должен быть лучший подход для этого.
Это то, что у меня есть в моем существующем приложении.
<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
Как было предложено, я сменил writerChannel на канал публикации-подписки, а затем использовал, за которым следует . Кажется, это работает. –
user2459396
Я столкнулся с проблемой здесь, потому что исходная полезная нагрузка преобразуется в XML. Я могу использовать заявку на регистрацию для хранения оригинальной копии, но я потерял ее, как подключить jms-outbound-channel-adapter и jdbc-outbound-channel-adapter, поскольку у них есть разные каналы для их входного сообщения. – user2459396
Пожалуйста, не отвечайте на уже ответные вопросы; лучше начать новую. Вы можете использовать заголовок-обогатить (' ', чтобы сохранить копию полезной нагрузки в заголовке. Позже вы можете либо напрямую обращаться к заголовку, либо использовать трансформатор для восстановления payloasd. –