I am not sure if the below issues have been addressed. But I found them in
the SJMS source code (f103b8b) I downloaded and I had to fix them in my
local build to make it work.

1) SjmsEndpoint.getDestinationName() should return a clean destination name
that just contains the quque/topic name. However it returns queue/topic name
plus all parameters which causes the JMS provider I use to fail to create
the consumer due to the additional "?param1=value1&param2=value2..."
text in the destination name.

2) In DefaultConsumer.MessageConsumerPool.destroyObject() method, the
model.getMessageConsumer().setMessageListener(null) call causes exceptions
since the messageListener in MessageConsumer is final for the JMS provider I
use. I think this call is unnecessary and should be removed. Also I think
SJMS could borrow the close methods in
org.springframework.jms.support.JmsUtils whose interfaces are defined in
terms of standard JMS API and use them in various implementations of the
ObjectPool.destroyObject() method.

3) DefaultConnectionResource does support setting the JMS clientId using the
connectionId property but this connectionId/clientId property is not exposed
as a SjmeComponent/SjmeEndpoint property so the end user can't really set
the JMS clientId.

4) The CLIENT_ACKNOWLEDGE SessionAcknowledgementType doesn't work. When I
use this acknowledgementMode, all messages that have been successfully
processed by Camel routes stay in the queue afterwards. At least it should
work in the same fashion as camel-jms component where processed messages
should only stay in the queue if unhandled exceptions are thrown during
processing by camel.



--
View this message in context: 
http://camel.465427.n5.nabble.com/SJMS-Issues-tp5716996.html
Sent from the Camel Development mailing list archive at Nabble.com.

Reply via email to