message-driven-channel-adapter and jms channel?
Whats the difference betweeen these two configs (or is there one)?Code:
lt;int-jms:channel id=quot;exampleChannelquot; connection-factory=quot;connFactoryquot; queue=quot;inQueuequot; message-driven=quot;truequot; /gt;
Code:
lt;int-jms:message-driven-channel-adapter id=quot;jmsInquot; connection-factory=quot;connFactoryquot; destination=quot;inQueuequot; channel=quot;exampleChannelquot;/gt;Have you read this:
sprin...e/#jms-channel
and this
sprin...hannel-adapter
Don't get me wrong, the reason why I am asking is if it is not clear from the documentation we would like to know what is not clear so we can improve.
Oleg, I have read and re-read so many times that I think I am confusing myself. If I read correctly, JMS channels, are really on useful when performing async messaging within the same application. Messaging between two SI apps are probably better serve by an outbound-channel-adapter on one side and a message-driven-channel-adapter. Would that be save to say?
Well, yes you are correct.
However the interesting thing is that you can accomplish async communication even without JMS, by simply configuring a channel as an Executor Channel sprin...ingle/#channel
So the question is really about wether you need to have JMS in between, One of the use case could be *reliability* where you may have persistent JMS destination which can guarantee that the message will not be lost.
Another use case could be that the JMS destination is a Topic which would mean you can have another external subscriber also retrieving that message etc...
Let me know if that clarifies. |