You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Susan Macey (Created) (JIRA)" <ji...@apache.org> on 2011/10/11 18:39:11 UTC

[jira] [Created] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

Virtual Topic Subscriber and Individual Dead Letter Queue Handling
------------------------------------------------------------------

                 Key: AMQ-3536
                 URL: https://issues.apache.org/jira/browse/AMQ-3536
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.5.0
         Environment: Windows XP
Fuse Message Broker version ActiveMQ trunk 
            Reporter: Susan Macey


Summary: 
Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.

Steps to create issue:

Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
Send messages to Virtual Topic
Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.

Result:
Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.


Resolution:
Patch and unit test are are attached.
This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.

Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
  
<deadLetterStrategy>
	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
        	<property name="useQueueForQueueMessages" value="true"></property>
                <property name="processNonPersistent" value="true"></property>
                <property name="processExpired" value="false"></property>
                <property name="enableAudit" value="false"></property>
        </bean>
</deadLetterStrategy>
		



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

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

Susan Macey updated AMQ-3536:
-----------------------------

    Attachment: VirtualDLQPatch.patch

Patch + Unit test
                
> Virtual Topic Subscriber and Individual Dead Letter Queue Handling
> ------------------------------------------------------------------
>
>                 Key: AMQ-3536
>                 URL: https://issues.apache.org/jira/browse/AMQ-3536
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP
> Fuse Message Broker version ActiveMQ trunk 
>            Reporter: Susan Macey
>         Attachments: VirtualDLQPatch.patch
>
>
> Summary: 
> Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.
> Steps to create issue:
> Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
> Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
> Send messages to Virtual Topic
> Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.
> Result:
> Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.
> Resolution:
> Patch and unit test are are attached.
> This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.
> Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
>   
> <deadLetterStrategy>
> 	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
>         	<property name="useQueueForQueueMessages" value="true"></property>
>                 <property name="processNonPersistent" value="true"></property>
>                 <property name="processExpired" value="false"></property>
>                 <property name="enableAudit" value="false"></property>
>         </bean>
> </deadLetterStrategy>
> 		

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

Posted by "Susan Macey (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13127182#comment-13127182 ] 

Susan Macey edited comment on AMQ-3536 at 10/14/11 12:40 AM:
-------------------------------------------------------------

Hi Timothy, I've attached the file activemq_dlq.xml.
                
      was (Author: smacey):
    config file required for unit test
                  
> Virtual Topic Subscriber and Individual Dead Letter Queue Handling
> ------------------------------------------------------------------
>
>                 Key: AMQ-3536
>                 URL: https://issues.apache.org/jira/browse/AMQ-3536
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP
> Fuse Message Broker version ActiveMQ trunk 
>            Reporter: Susan Macey
>         Attachments: VirtualDLQPatch.patch, activemq_dlq.xml
>
>
> Summary: 
> Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.
> Steps to create issue:
> Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
> Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
> Send messages to Virtual Topic
> Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.
> Result:
> Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.
> Resolution:
> Patch and unit test are are attached.
> This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.
> Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
>   
> <deadLetterStrategy>
> 	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
>         	<property name="useQueueForQueueMessages" value="true"></property>
>                 <property name="processNonPersistent" value="true"></property>
>                 <property name="processExpired" value="false"></property>
>                 <property name="enableAudit" value="false"></property>
>         </bean>
> </deadLetterStrategy>
> 		

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

Posted by "Timothy Bish (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQ-3536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13127146#comment-13127146 ] 

Timothy Bish commented on AMQ-3536:
-----------------------------------

The patch seems to reference a file "activemq_dlq.xml" that doesn't exist on trunk.  Think you can update the patch to add a complete file, or attach the necessary file here?
                
> Virtual Topic Subscriber and Individual Dead Letter Queue Handling
> ------------------------------------------------------------------
>
>                 Key: AMQ-3536
>                 URL: https://issues.apache.org/jira/browse/AMQ-3536
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP
> Fuse Message Broker version ActiveMQ trunk 
>            Reporter: Susan Macey
>         Attachments: VirtualDLQPatch.patch
>
>
> Summary: 
> Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.
> Steps to create issue:
> Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
> Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
> Send messages to Virtual Topic
> Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.
> Result:
> Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.
> Resolution:
> Patch and unit test are are attached.
> This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.
> Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
>   
> <deadLetterStrategy>
> 	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
>         	<property name="useQueueForQueueMessages" value="true"></property>
>                 <property name="processNonPersistent" value="true"></property>
>                 <property name="processExpired" value="false"></property>
>                 <property name="enableAudit" value="false"></property>
>         </bean>
> </deadLetterStrategy>
> 		

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

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

Timothy Bish resolved AMQ-3536.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 5.6.0

Patch applied, thanks for the great test case.
                
> Virtual Topic Subscriber and Individual Dead Letter Queue Handling
> ------------------------------------------------------------------
>
>                 Key: AMQ-3536
>                 URL: https://issues.apache.org/jira/browse/AMQ-3536
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP
> Fuse Message Broker version ActiveMQ trunk 
>            Reporter: Susan Macey
>             Fix For: 5.6.0
>
>         Attachments: VirtualDLQPatch.patch, activemq_dlq.xml
>
>
> Summary: 
> Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.
> Steps to create issue:
> Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
> Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
> Send messages to Virtual Topic
> Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.
> Result:
> Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.
> Resolution:
> Patch and unit test are are attached.
> This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.
> Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
>   
> <deadLetterStrategy>
> 	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
>         	<property name="useQueueForQueueMessages" value="true"></property>
>                 <property name="processNonPersistent" value="true"></property>
>                 <property name="processExpired" value="false"></property>
>                 <property name="enableAudit" value="false"></property>
>         </bean>
> </deadLetterStrategy>
> 		

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (AMQ-3536) Virtual Topic Subscriber and Individual Dead Letter Queue Handling

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

Susan Macey updated AMQ-3536:
-----------------------------

    Attachment: activemq_dlq.xml

config file required for unit test
                
> Virtual Topic Subscriber and Individual Dead Letter Queue Handling
> ------------------------------------------------------------------
>
>                 Key: AMQ-3536
>                 URL: https://issues.apache.org/jira/browse/AMQ-3536
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.5.0
>         Environment: Windows XP
> Fuse Message Broker version ActiveMQ trunk 
>            Reporter: Susan Macey
>         Attachments: VirtualDLQPatch.patch, activemq_dlq.xml
>
>
> Summary: 
> Transactional Acknowledgement with Virtual Topic / Subscriber Queues does not indicate which subscriber had a problem consuming the messages. Messages are simply delivered to Topic specific DLQ rather than to the Subscriber/Consumer specific DLQ.
> Steps to create issue:
> Configure the Individual Dead Letter Queue policy in Fuse Message Broker. 
> Next create an ActiveMQ Virtual Topic with Subscriber Queue(s).
> Send messages to Virtual Topic
> Rollback/abort ack for one message (consistently) until this message gets delivered to the dead letter queue.
> Result:
> Message is sent to the Topic Specific Dead Letter Queue rather than to the DLQ specific to the Subscriber Queue.
> Resolution:
> Patch and unit test are are attached.
> This test verifies that all undelivered messages sent to a consumers listening on a queue associated with a virtual topic with be forwarded to separate DLQ's.
> Note that the broker config, Individual Dead Letter Strategy, needs to have the enable audit set to false to allows duplicate messages sent from a topic to individual consumers to be forwarded to the DLQ's.
>   
> <deadLetterStrategy>
> 	<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy">
>         	<property name="useQueueForQueueMessages" value="true"></property>
>                 <property name="processNonPersistent" value="true"></property>
>                 <property name="processExpired" value="false"></property>
>                 <property name="enableAudit" value="false"></property>
>         </bean>
> </deadLetterStrategy>
> 		

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira