On 11 Dec 2008, at 06:34, PankajGugnani wrote:


Hi rajdavies,

Thanks for the quick reply.
In my project, I want to throw an exception if timeout occured. But for this, I need to know what happened to the message. Is it published or is it discarded. And also, is there way by which I can get an acknowledgement of
what happend to the message(like added to the queue or discarded)

You might be better off using advisories to achieve what you need. The publishing is decoupled from the dispatch of the message - see: http://activemq.apache.org/advisory-message.html for 5.2. There needs to be some better documentation around that - so you can grok how to configure them - will try remember to do that when I'm not on vacation (and the wife has just woken up - so I'm in trouble working on my day off :))

rajdavies wrote:


On 11 Dec 2008, at 06:08, PankajGugnani wrote:


Hi,

can u please explain the behaviou in this particular case after the
TimeOut.
will there be an exception thrown if the timeout occurs.

Thanks in advance

rajdavies wrote:

Not currently - I'm afraid there's no difference between a successful
send and a request that timed out - perhaps someone should raise a
jira for that one ?



On 11 Dec 2008, at 01:38, emc2family wrote:


Hi,

when a broker starts to block producers as a result of producer flow
control, is there an elegant way for a producer to timeout as a
result of
this? i was thinking of setting the message's timetolive to achieve
this.
i suppose i could also use maxinactivityduration. i think both will
throw a
jmsexception.  which leads me to my next question.  is there a
specific
error code for a timetolive or maxinactivityduration exceptions?
thanks a
bunch.
--
View this message in context:
http://www.nabble.com/how-to-best-implement-a-producer-timeout-tp20947923p20947923.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Not elegant - but one of these - if you are sending with default
delivery mode (PERSISTENT):

When you create your MessageProducer - cast it to an
org.apache.activemq.ActiveMQMessageProducer and set it via the
setSendTimeout(int ) method
or


set the sendTimeout property on the ActiveMQConnection

or set the sendTimeout on the ActiveMQConnectionFactory - either
directly or via a property

or my favourite:

Set the sendTimeout as a property on the destination used to create
the producer - e.g. if you want to send on a Topic called "foo" -
call

Destination dest= session.createTopic("foo?
producer.sendTimeout="5000");
MessageProducer producer = session.createProducer(dest);



cheers,

Rob

Rob Davies
http://fusesource.com
http://rajdavies.blogspot.com/









--
View this message in context:
http://www.nabble.com/how-to-best-implement-a-producer-timeout-tp20947923p20949967.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.





--
View this message in context: 
http://www.nabble.com/how-to-best-implement-a-producer-timeout-tp20947923p20950155.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Reply via email to