You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Brian Desai (JIRA)" <ji...@apache.org> on 2008/06/10 16:55:00 UTC

[jira] Created: (AMQ-1787) Too many expired queue messages on intermittent consumer causes ActiveMQ to hang

Too many expired queue messages on intermittent consumer causes ActiveMQ to hang
--------------------------------------------------------------------------------

                 Key: AMQ-1787
                 URL: https://issues.apache.org/activemq/browse/AMQ-1787
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.1.0
         Environment: Linux
Sun JDK 1.6.0
            Reporter: Brian Desai


I have a case where a queue consumer may become inactive for periods of time.  If too may messages are sent to this queue, and they eventually expire (setting the TTL) before the consumer comes back online, then once the consumer does come online, I see many of the following messages printed to the broker console.

{quote}Failed to fire message expired advisory{quote}

Once this happens, it seems that no more messages go to any queues, not just the queue whose consumer was down for a while.  I've looked at the web console, both before and after this occurs, and the message counts for all queues stop.  It appears that the broker just gets hung.  I have to kill the broker, and wipe out the data storage in order to get back to a working state.

I've tried various memory settings, with the same result.  My TTL was fairly low (60 seconds), as I was testing out the ability to expire messages.  The number of messages in the queue that were expired were in the 1000+ range.  With a low number of expired messages (< 100), there was no problem.

As a work around, I can disable sending of the advisory messages, and turn off processing of expired messages, but this is not ideal.

{code:xml}
<beans>
  ....
  <broker  ...  advisorySupport="false">
    <destinationPolicy>
        <policyMap>
            <policyEntries>
                <policyEntry queue=">">
                    <deadLetterStrategy>
                        <sharedDeadLetterStrategy processExpired="false"/>
                    </deadLetterStrategy>
                </policyEntry>
                ...
            </policyEntries>
        </policyMap>
    </destinationPolicy>
    ...
  </broker>
</beans>
{code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (AMQ-1787) Too many expired queue messages on intermittent consumer causes ActiveMQ to hang

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies reassigned AMQ-1787:
-------------------------------

    Assignee: Rob Davies

> Too many expired queue messages on intermittent consumer causes ActiveMQ to hang
> --------------------------------------------------------------------------------
>
>                 Key: AMQ-1787
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1787
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: Linux
> Sun JDK 1.6.0
>            Reporter: Brian Desai
>            Assignee: Rob Davies
>
> I have a case where a queue consumer may become inactive for periods of time.  If too may messages are sent to this queue, and they eventually expire (setting the TTL) before the consumer comes back online, then once the consumer does come online, I see many of the following messages printed to the broker console.
> {quote}Failed to fire message expired advisory{quote}
> Once this happens, it seems that no more messages go to any queues, not just the queue whose consumer was down for a while.  I've looked at the web console, both before and after this occurs, and the message counts for all queues stop.  It appears that the broker just gets hung.  I have to kill the broker, and wipe out the data storage in order to get back to a working state.
> I've tried various memory settings, with the same result.  My TTL was fairly low (60 seconds), as I was testing out the ability to expire messages.  The number of messages in the queue that were expired were in the 1000+ range.  With a low number of expired messages (< 100), there was no problem.
> As a work around, I can disable sending of the advisory messages, and turn off processing of expired messages, but this is not ideal.
> {code:xml}
> <beans>
>   ....
>   <broker  ...  advisorySupport="false">
>     <destinationPolicy>
>         <policyMap>
>             <policyEntries>
>                 <policyEntry queue=">">
>                     <deadLetterStrategy>
>                         <sharedDeadLetterStrategy processExpired="false"/>
>                     </deadLetterStrategy>
>                 </policyEntry>
>                 ...
>             </policyEntries>
>         </policyMap>
>     </destinationPolicy>
>     ...
>   </broker>
> </beans>
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (AMQ-1787) Too many expired queue messages on intermittent consumer causes ActiveMQ to hang

Posted by "Dong Pak (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dong Pak reopened AMQ-1787:
---------------------------

    Regression: [Regression]

With a producer producing object messages with message expiration set to 5 seconds, we are seeing no messages sent to consumer when messages start to expire and put into DLQ.  Due to some issue between the ActiveMQ RA and SJSAS 9.1, our consumer's prefetch is set to 100.  We are using a queue, which the prefetch should be defaulted to 1000.  We are seeing this "hanging" appearance in 5.3.1.

> Too many expired queue messages on intermittent consumer causes ActiveMQ to hang
> --------------------------------------------------------------------------------
>
>                 Key: AMQ-1787
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1787
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: Linux
> Sun JDK 1.6.0
>            Reporter: Brian Desai
>            Assignee: Rob Davies
>             Fix For: 5.2.0
>
>
> I have a case where a queue consumer may become inactive for periods of time.  If too may messages are sent to this queue, and they eventually expire (setting the TTL) before the consumer comes back online, then once the consumer does come online, I see many of the following messages printed to the broker console.
> {quote}Failed to fire message expired advisory{quote}
> Once this happens, it seems that no more messages go to any queues, not just the queue whose consumer was down for a while.  I've looked at the web console, both before and after this occurs, and the message counts for all queues stop.  It appears that the broker just gets hung.  I have to kill the broker, and wipe out the data storage in order to get back to a working state.
> I've tried various memory settings, with the same result.  My TTL was fairly low (60 seconds), as I was testing out the ability to expire messages.  The number of messages in the queue that were expired were in the 1000+ range.  With a low number of expired messages (< 100), there was no problem.
> As a work around, I can disable sending of the advisory messages, and turn off processing of expired messages, but this is not ideal.
> {code:xml}
> <beans>
>   ....
>   <broker  ...  advisorySupport="false">
>     <destinationPolicy>
>         <policyMap>
>             <policyEntries>
>                 <policyEntry queue=">">
>                     <deadLetterStrategy>
>                         <sharedDeadLetterStrategy processExpired="false"/>
>                     </deadLetterStrategy>
>                 </policyEntry>
>                 ...
>             </policyEntries>
>         </policyMap>
>     </destinationPolicy>
>     ...
>   </broker>
> </beans>
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] Resolved: (AMQ-1787) Too many expired queue messages on intermittent consumer causes ActiveMQ to hang

Posted by "Rob Davies (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/activemq/browse/AMQ-1787?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Davies resolved AMQ-1787.
-----------------------------

    Fix Version/s: 5.2.0
       Resolution: Duplicate

The same underlying problem as was fixed for https://issues.apache.org/activemq/browse/AMQ-1774

> Too many expired queue messages on intermittent consumer causes ActiveMQ to hang
> --------------------------------------------------------------------------------
>
>                 Key: AMQ-1787
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1787
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: Linux
> Sun JDK 1.6.0
>            Reporter: Brian Desai
>            Assignee: Rob Davies
>             Fix For: 5.2.0
>
>
> I have a case where a queue consumer may become inactive for periods of time.  If too may messages are sent to this queue, and they eventually expire (setting the TTL) before the consumer comes back online, then once the consumer does come online, I see many of the following messages printed to the broker console.
> {quote}Failed to fire message expired advisory{quote}
> Once this happens, it seems that no more messages go to any queues, not just the queue whose consumer was down for a while.  I've looked at the web console, both before and after this occurs, and the message counts for all queues stop.  It appears that the broker just gets hung.  I have to kill the broker, and wipe out the data storage in order to get back to a working state.
> I've tried various memory settings, with the same result.  My TTL was fairly low (60 seconds), as I was testing out the ability to expire messages.  The number of messages in the queue that were expired were in the 1000+ range.  With a low number of expired messages (< 100), there was no problem.
> As a work around, I can disable sending of the advisory messages, and turn off processing of expired messages, but this is not ideal.
> {code:xml}
> <beans>
>   ....
>   <broker  ...  advisorySupport="false">
>     <destinationPolicy>
>         <policyMap>
>             <policyEntries>
>                 <policyEntry queue=">">
>                     <deadLetterStrategy>
>                         <sharedDeadLetterStrategy processExpired="false"/>
>                     </deadLetterStrategy>
>                 </policyEntry>
>                 ...
>             </policyEntries>
>         </policyMap>
>     </destinationPolicy>
>     ...
>   </broker>
> </beans>
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.