Can you set the parameter globally like this: ActiveMQComponent activeMQComponent = new ActiveMQComponent(); activeMQComponent.setPreserveMessageQos(true); context.addComponent("activemq2",activeMQComponent);
On Mon, Apr 3, 2023 at 12:27 PM Ephemeris Lappis <ephemeris.lap...@gmail.com> wrote: > 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 > > > >