[
https://issues.apache.org/activemq/browse/AMQ-1917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-1917.
-----------------------------
Resolution: Fixed
fixed in rev 690144
Problem: new messages paged in during addSubscription() doPageIn() may not get
dispatched using the recovery dispatch mechanism if selectors are present.
These messages need to be remembered in the pagedInPendingDispatch list. hense
the fix.
Initial though was to always add newly pagedIn messages to the pagedInPending
but this breaks QueueBrowsing which depends on the recoveryDispatch, and
results in duplicates on the browse queue which breaks the enumeration.
QueueBrowsing may need some separate treatment at a later date.
for future reference, the relevant subset of tests are:
mvn -o test
-Dtest=JmsQueueWildcardSendReceiveTest,JMSUsecaseTest,JmsQueueCompositeSendReceiveTest,LargeStreamletTest,MessageListenerRedeliveryTest,PublishOnQueueConsumedMessageInTransactionTest,MarshallingBrokerTest,AMQ1917Test,CursorQueueStoreTest,JmsTempDestinationTest,RollbacksWhileConsumingLargeQueueTest,StompTest
> Broker Client with spring jmsTemplate drops messages (if reveiveTimeout is
> used) or blocks (if receiveTimeout is not specified.) under heavy load.
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-1917
> URL: https://issues.apache.org/activemq/browse/AMQ-1917
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.1.0
> Environment: all
> Reporter: Gary Tully
> Assignee: Gary Tully
> Fix For: 5.2.0
>
>
> doing request reply with spring jms template results in a hang or loss of
> messages when there are multiple concurrent requests, ie: when under load.
> the problem is seen with servicemix-jms jmsProviderEndpoint which uses spring
> jmsTemplate based client to talk to ActiveMQ and blocks under heavy load
> after certain time on receiving message. Message can be seen on the queue but
> sprinjms based client using receiveSelected() call to receive message based
> on JMSCorrelationID based selector waits for the message and eventually will
> timeout (if one set) or block indefinitely.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.