I just tested persistence using a QUEUE and... it works!

So my question is: do topics offer this same functionality? If not, then
why?

If topics do support persistence, then I'm still missing something..



jumbro wrote:
> 
> I traced the message send within Spring.net. Setting
> NmsTemplate.Persistent = true propagates that property to the
> MessageProducer. I also set NmsTemplate.ExplicitQosEnabled = true which
> leads to:
> 
> producer.Send(message, persistent, priority, timeToLive);
> 
> where producer is an Apache.NMS.ActiveMQ.MessageProducer.
> 
> I've observed persistent to be true to this stage. This really should
> work. Based on this, it would seem that the problem lives within the
> Apache.NMS code (seems unlikely but I'm running out of ideas). The next
> step seems to be adding Apache.NMS source to my solution and debugging
> further... 
> 
> Thanks for offering your help. Any more suggestions are welcomed!
> 
> 
> 
> Timothy Bish wrote:
>> 
>> On Thu, 2010-03-18 at 08:55 -0700, jumbro wrote:
>>> Thanks for your reply.
>>> 
>>> I tested your suggestion and it works. I see now that it's the producer
>>> that
>>> determines the persistence.
>>> 
>>> Do you know off hand how to configure this same behavior using Spring?
>>> I'm
>>> using the NmsTemplate and allowing Spring to manage the underlying
>>> messaging
>>> context. I'm setting NmsTemplate.Persistent = true. I expected that to
>>> do
>>> it, but no dice. 
>> 
>> I'd expect that to work but I don't know much about the NmsTemplate so
>> I'd have to look at their source.  What version are you using and what
>> version of NMS and NMS.ActiveMQ does it include?
>> 
>>> 
>>> I also tested setting NMSPersistent = true like this:
>>> 
>>> ...
>>> template.ConvertAndSendWithDelegate(requestMessage, delegate(IMessage
>>> message)
>>>                 {
>>>                     message.NMSPersistent = true;
>>>                     return message;
>>>                 });
>> 
>> Setting the property on the message will have no effect as it going to
>> be overwritten by the MessageProducer during the send operation.  To
>> override the producer you need to call the MessageProducer send method
>> that accepts a deliveryMode parameter.  
>> 
>> Regards
>> Tim.
>> 
>>> 
>>> but that didn't do it either.
>>> 
>>> I'm going to look into it further now, but if you have the answer that
>>> would
>>> be outstanding.
>>> 
>>> Thanks again.
>>> 
>>> 
>>> bsnyder wrote:
>>> > 
>>> > On Wed, Mar 17, 2010 at 2:02 PM, jumbro <jum...@fortress.com> wrote:
>>> >>
>>> >> Hello,
>>> >>
>>> >> I have been trying to get persistence working and have been humbled
>>> by
>>> >> the
>>> >> experience.
>>> >>
>>> >> Here is my setup:
>>> >>
>>> >> * AMQ 5.3
>>> >> * Monitoring via AMQ web console deployed in jetty
>>> >> * Using Spring.NET 1.2 / Apache.NMS
>>> >> * Tried each of the available AMQ persistence schemes (see attached
>>> >> activemq.xml)
>>> >> * Set both NmsTemplate.Persistent = true and
>>> >> Apache.NMS.Message.NMSPersistent = true on the producer
>>> >> * My preference is to use  journaledJDBCAdaptor against Sql Server
>>> 2008
>>> >>
>>> >> Test performed:
>>> >> * start AMQ
>>> >> * start my message producer (creates dynamic topic by default)
>>> >> * observe messages enqueued to topic via web console
>>> >> * stop and start AMQ
>>> >>
>>> >> Here are the issues I'm having (consider journaledJDBC case):
>>> >>
>>> >> 1) I first noticed that nothing appears to be getting written to my
>>> >> journal
>>> >> 2) When restarting AMQ, the output tells me (when starting the
>>> journal
>>> >> persistence adapter): "Journal Recovered: 0 message(s) in
>>> transactions
>>> >> recovered" http://old.nabble.com/file/p27937557/activemq.xml
>>> activemq.xml
>>> >> 3) When AMQ restarts, the topic and messages have been deleted
>>> >>
>>> >> I did do some tests (days/weeks ago) where I saw some messages being
>>> >> logged
>>> >> to Sql Server. But at no time did I have a successful test of
>>> recycling
>>> >> AMQ
>>> >> and seeing the existing queue/topic with pending messages populated.
>>> >>
>>> >> Live message production/consumption works great for me, both pub/sub
>>> and
>>> >> request reply. I just can't get persistence working. Please help!
>>> > 
>>> > I know that you are using .NET, but have you walked through the Java
>>> > examples first? Just to make sure you understand how it should work.
>>> > Here is some info about the examples:
>>> > 
>>> > http://activemq.apache.org/examples.html
>>> > 
>>> > The examples are very simple and straightforward. The only change you
>>> > will need to make in order to send persistent messages is to use the
>>> > following command when sending:
>>> > 
>>> > $ ant producer -Ddurable=true
>>> > 
>>> > The ProducerTool class will pick up the durable property and mark the
>>> > messages as persistent when it sends them. This will allow you to shut
>>> > down ActiveMQ, start up ActiveMQ and still see the 2000 messages in
>>> > the queue.
>>> > 
>>> > Bruce
>>> > -- 
>>> > perl -e 'print
>>> > unpack("u30","D0G)u8...@4vyy9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
>>> > );'
>>> > 
>>> > ActiveMQ in Action: http://bit.ly/2je6cQ
>>> > Blog: http://bruceblog.org/
>>> > Twitter: http://twitter.com/brucesnyder
>>> > 
>>> > 
>>> 
>> 
>> -- 
>> Tim Bish
>> 
>> Open Source Integration: http://fusesource.com
>> ActiveMQ in Action: http://www.manning.com/snyder/
>> 
>> Follow me on Twitter: http://twitter.com/tabish121
>> My Blog: http://timbish.blogspot.com/
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/AMQ-persistence-not-working-for-me-tp27937801p27949458.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to