You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "james strachan (JIRA)" <ji...@apache.org> on 2007/03/08 13:56:21 UTC

[jira] Created: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

allow consumers to pull messages by ID or by correlationID
----------------------------------------------------------

                 Key: AMQ-1196
                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
             Project: ActiveMQ
          Issue Type: New Feature
            Reporter: james strachan
             Fix For: 4.3.0


and add methods on consumer like

receiveById(String id);
receiveByCorrelationID(id)

with nowait/timeout versions

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


[jira] Updated: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

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

Bruce Snyder updated AMQ-1196:
------------------------------

    Fix Version/s:     (was: AGING_TO_DIE)
                   NEED_REVIEWED

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: James Strachan
>             Fix For: NEED_REVIEWED
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "james strachan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38742 ] 

james strachan commented on AMQ-1196:
-------------------------------------

BTW just to be 100% absolutely clear. This feature will not in any way impact the normal broker operation. If users don't use this feature it will in no way affect the broker.

The only way to even start to use this feature is to set prefetch to zero and call receive() methods.

Right now if you have a prefetch of zero and call a receive*() method on a consumer, a message is pulled using MessagePull. This feature purely extends the pull operation to be able to apply an additional optional selector on messageId or correlationId (something which you can do today already using the JMS API via a selector). The only difference is this new 'selector' (matching messageId or correlationId) is transient for the duration of the single receive*() method call (i.e. it travels in the MessagePull command and is then discarded) 

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "Maxim Fateev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38728 ] 

Maxim Fateev commented on AMQ-1196:
-----------------------------------

I think it is a dangerous feature that puts very strict constrains on a broker implementation choices.
I'd be interested to hear how you are planning to support this API in cluster and "network of brokers" modes?

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "james strachan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38729 ] 

james strachan commented on AMQ-1196:
-------------------------------------

Whether using a store/forward network of brokers or using master/slave, the JMS client is capable of creating a browser to iterate through all pending messages. Currently with a selector, we iterate through all pending messages looking for matching messages.

Think of this feature as a way of adding a kinda dynamic selector when pulilng messages (i.e. so only in the case of prefetch = 0 and clients explicitly pull messages on demand).

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "Maxim Fateev (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38731 ] 

Maxim Fateev commented on AMQ-1196:
-----------------------------------

I see. So If there is multimillion message backlog broker potentially ends up with a full scan of their ids for every receiveById called. I cannot imagine real life use of feature with such performance characteristics. At least make it limitations clear in documentation, please.



> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "james strachan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38741 ] 

james strachan commented on AMQ-1196:
-------------------------------------

Any JMS provider already has to support potentially scanning multimillion message backlog due to selectors (you could have a very strict selector on a massive queue). But yes we'll make sure we document the potential performance issues with this feature.

One of the interesting and tricky things about MOM is that there are so many different use cases and scenarios (e.g. tons of messages flying around crazy fast versus very few messages at all which are pulled on demand - never mind all the various degrees of freedom (topic/queue, persistence/transient, master/slave, store/forward, selectors/wildcards, inband-out-of-band, etc etc).



> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Updated: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

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

Gary Tully updated AMQ-1196:
----------------------------

    Fix Version/s: 5.3.0
                       (was: 5.2.0)

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: James Strachan
>             Fix For: 5.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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


[jira] Commented: (AMQ-1196) allow consumers to pull messages by ID or by correlationID

Posted by "james strachan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/activemq/browse/AMQ-1196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38724 ] 

james strachan commented on AMQ-1196:
-------------------------------------

Version 3 of OpenWire (for ActiveMQ 5.x) now has optional messageId and correlationId headers to be able to implement this

> allow consumers to pull messages by ID or by correlationID
> ----------------------------------------------------------
>
>                 Key: AMQ-1196
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1196
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: james strachan
>             Fix For: 4.3.0
>
>
> and add methods on consumer like
> receiveById(String id);
> receiveByCorrelationID(id)
> with nowait/timeout versions

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