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.

Reply via email to