[
https://issues.apache.org/jira/browse/FALCON-665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14128183#comment-14128183
]
Shwetha G S edited comment on FALCON-665 at 9/10/14 7:32 AM:
-------------------------------------------------------------
{quote}
I read the specs but it does not work that way. If the message is not ack'ed,
it will be kept around and when the subscriber comes back, it will resend all
the messages. I may stand corrected.
{quote}
my bad. You are right
{quote}
Are you not contradicting your previous statement.
{quote}
Copied these definitions from some docs. You probably read them as different
statements:
{noformat}
1. CLIENT_ACKNOWLEDGE => client acknowledges a message by calling the message's
acknowledge method. Acknowledging a consumed message automatically acknowledges
the receipt of all messages that have been delivered by its session.
2. ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE => Special version of the
CLIENT_​ACKNOWLEDGE mode which allows to cherry-pick messages to ACK.
Message.ack() only acks an individual message, as opposed to acting as a
cumulative ack.
{noformat}
{quote}
This is NOT available in javax.jms.Session
{quote}
Its in activemq-core. But we need this right? CLIENT_ACKNOWLEDGE will
acknowledge all messages till now which is not right in our case. Some earlier
message processing might have failed and one successful message processing
doesn't mean earlier message processing has succeeded. All messages are
independent. It probably works for usecases where message contains latest
status. So, old status doesn't matter as long as later one is available.
Can't we depend on activemq?
was (Author: shwethags):
{quote}
I read the specs but it does not work that way. If the message is not ack'ed,
it will be kept around and when the subscriber comes back, it will resend all
the messages. I may stand corrected.
{quote}
my bad. You are right
{quote}
Are you not contradicting your previous statement.
{quote}
Copied these definitions from some docs. You probably read them as different
statements:
{noformat}
1. CLIENT_ACKNOWLEDGE => client acknowledges a message by calling the message's
acknowledge method. Acknowledging a consumed message automatically acknowledges
the receipt of all messages that have been delivered by its session.
2. ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE => Special version of the
CLIENT_​ACKNOWLEDGE mode which allows to cherry-pick messages to ACK.
Message.ack() only acks an individual message, as opposed to acting as a
cumulative ack.
{noformat}
{quote}
This is NOT available in javax.jms.Session
{quote}
Its in activemq-core. But we need this right? CLIENT_ACKNOWLEDGE will
acknowledge all messages till now which is not right in our case. Some earlier
message processing might have failed and one successful message processing
doesn't mean earlier message processing has succeeded. All messages are
independent. It probably works for usecases where message contains latest
status. So, old status doesn't matter as long as later one is available.
Can't we depend on activemq?
> Handle message consumption failures in JMSMessageConsumer
> ---------------------------------------------------------
>
> Key: FALCON-665
> URL: https://issues.apache.org/jira/browse/FALCON-665
> Project: Falcon
> Issue Type: Improvement
> Components: messaging
> Affects Versions: 0.6
> Reporter: Venkatesh Seetharam
> Priority: Critical
> Fix For: 0.6
>
> Attachments: FALCON-665-review.patch, FALCON-665-v1.patch
>
>
> Not sure which Queue ([~shwethags], [~shaik.idris])?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)