Thanks Ashwin, Werner,

But I'm still confused, on two points!

First, the original question was on ServiceMix, not Camel (or did I miss something?). I don't see that attribute defined in the SMX documentation....

Second, even on the camel front, It's not clear to me why we should have to set variables like timeToLive, priority, etc, and then *also* have to say "by the way, you should use the settings I've just set". I'm wondering if there's some kind of hidden meaning here that I'm just not getting...

/Ade

On 11 Nov 2008, at 20:26, Ashwin Karpe wrote:


Hi Ade,

I found the explicitQosEnabled property explained better on the Camel page for the JMS component. Please find link below. It also has some good details
on other AMQ specific JMS properties as well...

http://activemq.apache.org/camel/jms.html
http://activemq.apache.org/camel/jms.html

Check it out.

Cheers,

Ashwin...


Adrian Trenaman-2 wrote:

Hi Werner,

Mind if I ask how you got the solution for this? Is this documented?
Am just thinking that it's odd that you have to specify that
"explicitQosEnabled" flag for this to work - it'd be so much nicer if
you could just set the attributes and have the endpoint infer that you
are explictly setting the QOS?

/Ade

On 10 Nov 2008, at 20:05, vesteraas wrote:


Problem solved!  The messages are now non-persistent and the
expiration field
is correctly set.

My xbean.xml now looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
     xmlns:amq="http://activemq.org/config/1.0";
     xmlns:test="http://werner.no/test";>

<jms:provider service="test:JMSService"
              endpoint="jmsEndpoint"
              destinationName="queue/Test/SubscriberStatus"
              explicitQosEnabled="true"
              deliveryMode="1"
              pubSubDomain="false"
              priority="5"
              timeToLive="90000"
              connectionFactory="#connectionFactory" />

<amq:connectionFactory id="connectionFactory"
brokerURL="tcp://localhost:61616" />
</beans>

The trick was to add the attribute "explicitQosEnabled" with a value
of
"true".

Regards,

Werner Vesteraas
Oslo,
Norway


vesteraas wrote:

How can I write non-persistent messages to a queue on ActiveMQ
5.1?  Also,
I would like to set the expiration property on the message.

When messages are showing up in the queue in ActiveMQ, they show up
as
persistent and with 0 in the expiration field.  First I tried the
jms:provider attributes deliveryMode and timeToLive, with no luck.
Then I
wrote my own marshaler to modify these fields directly on the
messages.
Still with no luck.

Do I miss something?

This is my xbean.xml for my JMS SU:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0";
     xmlns:amq="http://activemq.org/config/1.0";
     xmlns:test="http://werner.no/test";>

<jms:provider service="test:JMSService"
              endpoint="jmsEndpoint"
              destinationName="queue/Test/SubscriberStatus"
              connectionFactory="#connectionFactory" />

<amq:connectionFactory id="connectionFactory"
brokerURL="tcp://localhost:61616" />

<bean id="marshaler" class="no.werner.test.CustomMarshaler" />
</beans>

And this is my marshaler:

package no.werner.test;

import javax.jbi.messaging.MessageExchange;
import javax.jbi.messaging.NormalizedMessage;
import javax.jms.DeliveryMode;
import javax.jms.Message;
import javax.jms.Session;

import org.apache.servicemix.jms.endpoints.DefaultProviderMarshaler;

public class CustomMarshaler extends DefaultProviderMarshaler {

public CustomMarshaler() {
  super();
}

public Message createMessage(MessageExchange exchange,
NormalizedMessage
in, Session session) throws Exception {
  Message toSend = super.createMessage(exchange, in, session);

  toSend.setJMSExpiration(10000L);
  toSend.setJMSDeliveryMode(DeliveryMode.NON_PERSISTENT);
  return toSend;
}
}

Regards,

Werner Vesteraas
Oslo,
Norway




--
View this message in context:
http://www.nabble.com/JMS-Expiration-and-non-persistent-mode-on-jms%3Aprovider-tp20423525p20427065.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


---
Adrian Trenaman, Consultant Fellow, PS - Opensource Center of Competence
Progress Software Corp
Shelbourne Road, Dublin 4, Ireland
---
+353-1-637-2659 (Office)
+353-1-637-2882 (Fax)
+353-86-6051026 (Mobile)
 adrian.trenaman (Skype)
----
Blog: http://trenaman.blogspot.com











--
View this message in context: 
http://www.nabble.com/JMS-Expiration-and-non-persistent-mode-on-jms%3Aprovider-tp20423525p20447660.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


---
Adrian Trenaman, Consultant Fellow, PS - Opensource Center of Competence
Progress Software Corp
Shelbourne Road, Dublin 4, Ireland
---
+353-1-637-2659 (Office)
+353-1-637-2882 (Fax)
+353-86-6051026 (Mobile)
 adrian.trenaman (Skype)
----
Blog: http://trenaman.blogspot.com








Reply via email to