You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by fatcat <by...@gmail.com> on 2009/02/24 00:58:04 UTC

onMessage long execution

hi, 
i have a listener onMessage() that sometimes will take a while to
complete(expensive), so what happen seems like, while if there is a ongoing
onMessage is being executed, no other message will be processed by our code.
is that true that activeMQ only use on thread to dispatch the onMessage call
? is there any configuration parameter can be used such that, an expensive
onMessage execution will not block the other onMessage call?

Also not sure it is related, but if we send another activeMQ message to
another Q through the input's message's reply address, during a long
exeuction of onMessage, the reply message will never got received in the
other queue, although the send method is really being called.

any pointer?


-- 
View this message in context: http://www.nabble.com/onMessage-long-execution-tp22172993p22172993.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: onMessage long execution

Posted by Dejan Bosanac <de...@nighttale.net>.
Regarding the second question, can you check whether the message hit the
broker (using JConsole or Web console)? Also, if you're in transaction, did
you commit it?

Cheers
--
Dejan Bosanac

Open Source Integration - http://fusesource.com/
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Tue, Feb 24, 2009 at 9:21 AM, Meise, Christoph <
Christoph.Meise@immobilienscout24.de> wrote:

> Hi,
>
> Concerning our first question, the effect that only one message is
> processed is perfectly explainable. A JMS Message Listener belongs to a JMS
> Session and each JMS Session is a single threaded context (see JMS Spec). So
> you should decouple long lasting computations from the session.
>
> -christoph
>
> -----Ursprüngliche Nachricht-----
> Von: fatcat [mailto:byflam@gmail.com]
> Gesendet: Dienstag, 24. Februar 2009 00:58
> An: users@activemq.apache.org
> Betreff: onMessage long execution
>
>
> hi,
> i have a listener onMessage() that sometimes will take a while to
> complete(expensive), so what happen seems like, while if there is a ongoing
> onMessage is being executed, no other message will be processed by our code.
> is that true that activeMQ only use on thread to dispatch the onMessage
> call ? is there any configuration parameter can be used such that, an
> expensive onMessage execution will not block the other onMessage call?
>
> Also not sure it is related, but if we send another activeMQ message to
> another Q through the input's message's reply address, during a long
> exeuction of onMessage, the reply message will never got received in the
> other queue, although the send method is really being called.
>
> any pointer?
>
>
> --
> View this message in context:
> http://www.nabble.com/onMessage-long-execution-tp22172993p22172993.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>

AW: onMessage long execution

Posted by "Meise, Christoph" <Ch...@ImmobilienScout24.de>.
Hi,

Concerning our first question, the effect that only one message is processed is perfectly explainable. A JMS Message Listener belongs to a JMS Session and each JMS Session is a single threaded context (see JMS Spec). So you should decouple long lasting computations from the session.

-christoph

-----Ursprüngliche Nachricht-----
Von: fatcat [mailto:byflam@gmail.com] 
Gesendet: Dienstag, 24. Februar 2009 00:58
An: users@activemq.apache.org
Betreff: onMessage long execution


hi,
i have a listener onMessage() that sometimes will take a while to complete(expensive), so what happen seems like, while if there is a ongoing onMessage is being executed, no other message will be processed by our code.
is that true that activeMQ only use on thread to dispatch the onMessage call ? is there any configuration parameter can be used such that, an expensive onMessage execution will not block the other onMessage call?

Also not sure it is related, but if we send another activeMQ message to another Q through the input's message's reply address, during a long exeuction of onMessage, the reply message will never got received in the other queue, although the send method is really being called.

any pointer?


--
View this message in context: http://www.nabble.com/onMessage-long-execution-tp22172993p22172993.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.