You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by rpratt <rp...@optionshouse.com> on 2008/07/23 17:22:44 UTC

consumer receives on stopped connection

I have a bunch of servers running software listening on the same queues for
load balancing. The app goes through a startup period where it creates the
connection, creates queues and consumers, thread pools, etc and then
eventually calls start on the JMS connection. However, the consumer threads
call receive on their consumer object before the call to start is made on
the connection. I am expecting this to block until the connection is
started. However, I am seeing that the messages are seen (I get the
"Received a message on a connection which is not yet started. Have you
forgotten to call Connection.start()? Connection" warning) before the call
to start, and those message are then actually consumed. By consumed I mean
that even though the receiver doesn't get the message returned to it, that
message is removed from the queue...thus is not handled by any of the other
servers that are already fully running and could correctly receive and
handle the message.

Is this something I can fix with a configuration/URL connect option? Or do I
have to put logic in place that won't actually call receive on any consumer
objects until the connection has been started? Thanks

Ryan
-- 
View this message in context: http://www.nabble.com/consumer-receives-on-stopped-connection-tp18613290p18613290.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: consumer receives on stopped connection

Posted by Joe Fernandez <jo...@ttmsolutions.com>.
Try the following settings for your connection factory

This will turn off the warning message
warnAboutUnstartedConnectionTimeout = -1

alwaysSessionAsync = false

See the following page to read about these options. 

http://activemq.apache.org/connection-configuration-uri.html

Hope this helps,
Joe
www.ttmsolutions.com



rpratt wrote:
> 
> I have a bunch of servers running software listening on the same queues
> for load balancing. The app goes through a startup period where it creates
> the connection, creates queues and consumers, thread pools, etc and then
> eventually calls start on the JMS connection. However, the consumer
> threads call receive on their consumer object before the call to start is
> made on the connection. I am expecting this to block until the connection
> is started. However, I am seeing that the messages are seen (I get the
> "Received a message on a connection which is not yet started. Have you
> forgotten to call Connection.start()? Connection" warning) before the call
> to start, and those message are then actually consumed. By consumed I mean
> that even though the receiver doesn't get the message returned to it, that
> message is removed from the queue...thus is not handled by any of the
> other servers that are already fully running and could correctly receive
> and handle the message.
> 
> Is this something I can fix with a configuration/URL connect option? Or do
> I have to put logic in place that won't actually call receive on any
> consumer objects until the connection has been started? Thanks
> 
> Ryan
> 

-- 
View this message in context: http://www.nabble.com/consumer-receives-on-stopped-connection-tp18613290p18614531.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.