You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Suneel Papineni <Su...@mettoni.com> on 2011/07/20 15:24:44 UTC

Connection close not working when Usage Manager Store is reached Full.

Hi,

 

I am using ActiveMQ-CPP (v 3.4.0) and ActiveMQ server (v 5.5.0). I am
checking what is going to happen when "StoreUsage" memory limit is
reached 100%. For this I configured "storeUsage" limit as "1 mb" and
tried to send a message. On calling sendMessage, my application got
struck and it is hung state for 10 seconds. After that it thrown an
error saying "No valid response received for command ....."

(I did configure connection.sendTimeout=10000)

 

When I try to send message, I could see a INFO message on ActiveMQ which
is shown below

"Usage Manager Store is Full, 100% of 1048576. Stopping producer..."

 

At this point as there is an error, I thought of closing connection.
When I called Connection.close() method, application got hung again for
15 seconds and thrown an error "No valid response received for command:
RemoveInfo {.....", thus making connection not closed properly. I could
see in browser as the connection still exists. Without closing
connection properly,  I am unable to reconnect from the application
unless application is closed physically (which in my case is not
possible as the application performs some other operations).

 

Could someone please let me know why connection is not getting closed at
this time. Also please let me know how should I solve this issue.

 

Thanks & Regards

Suneel

 


RE: Connection close not working when Usage Manager Store is reached Full.

Posted by Suneel Papineni <Su...@mettoni.com>.
Hi Tim,

Thanks for your quick reply. I would like to ask another question before entering into Jira.

Here all the messages are set with expiration time as 5 seconds (message.setCMSExpiration(5000)). As there are couple of Durable Consumers across brokers, messages are supposed to be delivered within 5 seconds or has to be deleted after that.

So my question is how come memory is running out even after the expiry time of last message. (I tried to send another message after 1 hour, still it shows Memory store full 100%)

You can say after expiry messages are going to DLQ, but I configured as not to process expired messages. Here is the config..
<destinationPolicy>
            <policyMap>
                <policyEntries>
                    <policyEntry queue=">" producerFlowControl="false">
                        <deadLetterStrategy>
                          <sharedDeadLetterStrategy processExpired="false" />
                        </deadLetterStrategy>
                    </policyEntry>
                    <policyEntry topic=">" producerFlowControl="false">
						<deadLetterStrategy>
							<sharedDeadLetterStrategy processExpired="false" />							
						</deadLetterStrategy>
                    </policyEntry>
                </policyEntries>
            </policyMap>
        </destinationPolicy>

Please let me know if there is any modification required in configuration. If everything is right, then as you suggested I might need to open a Jira.


Note: I am using Network of Brokers here (static brokers) a single topic.

Thanks & Regards
Suneel


-----Original Message-----
From: Timothy Bish [mailto:tabish121@gmail.com] 
Sent: 20 July 2011 15:41
To: users@activemq.apache.org
Subject: Re: Connection close not working when Usage Manager Store is reached Full.

On Wed, 2011-07-20 at 14:24 +0100, Suneel Papineni wrote:
> Hi,
> 
>  
> 
> I am using ActiveMQ-CPP (v 3.4.0) and ActiveMQ server (v 5.5.0). I am
> checking what is going to happen when "StoreUsage" memory limit is
> reached 100%. For this I configured "storeUsage" limit as "1 mb" and
> tried to send a message. On calling sendMessage, my application got
> struck and it is hung state for 10 seconds. After that it thrown an
> error saying "No valid response received for command ....."
> 
> (I did configure connection.sendTimeout=10000)
> 
>  
> 
> When I try to send message, I could see a INFO message on ActiveMQ which
> is shown below
> 
> "Usage Manager Store is Full, 100% of 1048576. Stopping producer..."
> 
>  
> 
> At this point as there is an error, I thought of closing connection.
> When I called Connection.close() method, application got hung again for
> 15 seconds and thrown an error "No valid response received for command:
> RemoveInfo {.....", thus making connection not closed properly. I could
> see in browser as the connection still exists. Without closing
> connection properly,  I am unable to reconnect from the application
> unless application is closed physically (which in my case is not
> possible as the application performs some other operations).
> 
>  
> 
> Could someone please let me know why connection is not getting closed at
> this time. Also please let me know how should I solve this issue.
> 
>  

If yuor broker is running out of memory then it might not be able to
respond to the remove commands from the client.  This shouldn't prevent
the client from closing its socket connection though so there could be a
bug, however it may just be that the broker is unable to process
anything because its out of memory and that's why your connection still
shows in the console.  It may also be the cause for not being able to
reconnect if the broker cannot process the connection commands due to a
lack or resources.

Some broker logs might help in this instance.  You can open a new Jira
issue if you believe there is a bug.

Regards

-- 
Tim Bish
------------
FuseSource
Email: tim.bish@fusesource.com
Web: http://fusesource.com
Twitter: tabish121
Blog: http://timbish.blogspot.com/




Re: Connection close not working when Usage Manager Store is reached Full.

Posted by Timothy Bish <ta...@gmail.com>.
On Wed, 2011-07-20 at 14:24 +0100, Suneel Papineni wrote:
> Hi,
> 
>  
> 
> I am using ActiveMQ-CPP (v 3.4.0) and ActiveMQ server (v 5.5.0). I am
> checking what is going to happen when "StoreUsage" memory limit is
> reached 100%. For this I configured "storeUsage" limit as "1 mb" and
> tried to send a message. On calling sendMessage, my application got
> struck and it is hung state for 10 seconds. After that it thrown an
> error saying "No valid response received for command ....."
> 
> (I did configure connection.sendTimeout=10000)
> 
>  
> 
> When I try to send message, I could see a INFO message on ActiveMQ which
> is shown below
> 
> "Usage Manager Store is Full, 100% of 1048576. Stopping producer..."
> 
>  
> 
> At this point as there is an error, I thought of closing connection.
> When I called Connection.close() method, application got hung again for
> 15 seconds and thrown an error "No valid response received for command:
> RemoveInfo {.....", thus making connection not closed properly. I could
> see in browser as the connection still exists. Without closing
> connection properly,  I am unable to reconnect from the application
> unless application is closed physically (which in my case is not
> possible as the application performs some other operations).
> 
>  
> 
> Could someone please let me know why connection is not getting closed at
> this time. Also please let me know how should I solve this issue.
> 
>  

If yuor broker is running out of memory then it might not be able to
respond to the remove commands from the client.  This shouldn't prevent
the client from closing its socket connection though so there could be a
bug, however it may just be that the broker is unable to process
anything because its out of memory and that's why your connection still
shows in the console.  It may also be the cause for not being able to
reconnect if the broker cannot process the connection commands due to a
lack or resources.

Some broker logs might help in this instance.  You can open a new Jira
issue if you believe there is a bug.

Regards

-- 
Tim Bish
------------
FuseSource
Email: tim.bish@fusesource.com
Web: http://fusesource.com
Twitter: tabish121
Blog: http://timbish.blogspot.com/