No, I can't : we work on a Red-Hat Fuse cluster, and the brokers and
the related configured components are provided by the cluster (in
groups including Karaf instances), and are shared for all our business
bundles and their queues. We'd want to set time to live (expiration)
only for some queues, not all the queues that are managed by the same
broker group.

That's why I need to set this time to live using headers only for some
messages sent to some queues...

Thanks.

Le lun. 3 avr. 2023 à 13:08, ski n <raymondmees...@gmail.com> a écrit :
>
> 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&amp;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
> > > >
> >

Reply via email to