We have a use case where we need to take a message off a JMS queue (websphere mq), transform it and insert it into a database. If for some reason processing fails (transformation or db insertion) we want to log the exception out using our logging framework and requeue the original message a separate queue so that a app support engineer can review it.
Our current configuration is below. The issue seems to be the that the message getting requeued using the outbound-channel-adapter contains the Spring integration Message object not just the original String message.
We have support tools to allow app support engineer to resubmit the message for processing after any issues have been resolved. Since the message now contain more than just the original String message processing fails.
Could this just be a simple configuration oversight on our part? Do we need a custom component? Any guidance would be appreciated.
thanks again.
Code:<int-jms:message-driven-channel-adapter container="listenerContainer" channel="dataFeedV1InChannel" error-channel="invalidDataFeedV1OutChannel"/> <bean id="dataFeedV1ListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="concurrentConsumers" value="2" /> <property name="maxConcurrentConsumers" value="5" /> <property name="connectionFactory" ref="connectionFactory" /> <property name="destinationResolver" ref="destinationResolver" /> <property name="destinationName" value="DATAFEED.QUEUEV1" /> <property name="cacheLevelName" value="CACHE_NONE" /> <property name="acceptMessagesWhileStopping" value="false" /> <property name="recoveryInterval" value="10000" /> </bean> <int-jms:outbound-channel-adapter id="invalidDataFeedV1OutChannel" connection-factory="connectionFactory" destination-resolver="destinationResolver" destination-name="INVALID.DATAFEED.QUEUEV1"/>


Reply With Quote