Hello. In fact I think I'd only need to set one header for expiration time. Something like that :
<setHeader name="JMSExpiration"> <simple>${date:now+30m}</simple> </setHeader> <to uri="jms:queue:fifi1?connectionFactory=#myJMS" /> But it seems that for overriding the default JMSExpiration another change must be done on the endpoint (otherwise the JMSExpiration is not set before the message is sent) : <to uri="jms:queue:fifi1?connectionFactory=#myJMS&preserveMessageQos=true" /> So, is there any way to add the "preserveMessageQos=true" indication using a header, since I can't modify the endpoint URI ? Thanks again. Regards. Le lun. 3 avr. 2023 à 09:43, ski n <raymondmees...@gmail.com> a écrit : > > I should be possible as Camel Headers are translated to JMS Headers when > sending to an ActiveMQ queue or topic. This can be tricky though as > sometimes JMS Headers are not set by the client but by the broker (for > example JMSTimestamp), so you can't use all headers. > > You can check this page with the possibilities: > > https://activemq.apache.org/activemq-message-properties > > Another thing is that values you need to give are not always very logical > for example JMSDeliveryMode. According to the Java EE documentation: > > "The delivery modes supported by the JMS API are *PERSISTENT and > NON_PERSISTENT* . A client marks a message as persistent if it feels that > the application will have problems if the message is lost in transit. A > client marks a message as non-persistent if an occasional lost message is > tolerable." > > As there are only two modes, you made expect that its a boolean value. > However it's int (as also noted on the ActiveMQ documentation page). Then > you may think the values used are 0 and 1. It's however 1 (NON-PERSISTENT) > and 2 (PERSISTENT). Mostly in code static values are used, but when sending > headers as text, these are things to consider. > > Kind regards, > > Raymond > > > > > > > > > > On Mon, Apr 3, 2023 at 8:47 AM Ephemeris Lappis <ephemeris.lap...@gmail.com> > wrote: > > > Hello. > > > > Thanks for your idea. I had a look at the JMs component unit tests, > > but I've not found any that use only headers to set messages time to > > live. > > Could you please give us some example ? > > > > Thanks again. Regards > > > > Le ven. 31 mars 2023 à 18:34, Claus Ibsen <claus.ib...@gmail.com> a écrit > > : > > > > > > A good idea is to look at the unit tests in the camel components > > > > > > On Fri, Mar 31, 2023 at 6:27 PM Ephemeris Lappis < > > ephemeris.lap...@gmail.com> > > > wrote: > > > > > > > Hello. > > > > > > > > I've not found any way to set messages time to live when sending to a > > > > JMS (activemq) queue. > > > > > > > > I'd like to set headers only, without changing the endpoint URI. Is it > > > > possible ? > > > > I've read (and tested it too) that if a message header is set for the > > > > JMSExpiration, it's not taken into account if the option > > > > "preserveMessageQos" is not added into the URI. So, is there any other > > > > way using other headers ? > > > > > > > > Thanks for your help. > > > > > > > > Regards. > > > > > > > > > > > > > -- > > > Claus Ibsen > > > ----------------- > > > @davsclaus > > > Camel in Action 2: https://www.manning.com/ibsen2 > >