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