qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rajith Attapattu (JIRA)" <qpid-...@incubator.apache.org>
Subject [jira] Commented: (QPID-1677) Provide the ability to publish synchronously
Date Tue, 24 Feb 2009 18:37:02 GMT

    [ https://issues.apache.org/jira/browse/QPID-1677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676358#action_12676358

Rajith Attapattu commented on QPID-1677:

Appologies for not making my comment clear.
Certainly agree that the JMS spec implies that send() should be synchronous in AMQP terms
for PERSISTENT messages and we do have the system/connection URL prop sync_persistence for
What I intended to say was about transient messages and that synchronous publish for transient
messages could help in avoiding duplicates allthough it doesn't eliminate it completely during
a broker failover. For that you would need an idempotency barrier built into the client.

In the description I incorrectly used the definition for AUTO_ACK as a justification to introduce
the sync_publish. It is in that context I mentioned "Also the spec does not say anything about
the publish side".  If an idempotency barrier is built in the client then the publish side
does not have to synchronously publish to achieve exactly-once either. So my justification
for sync_publish was wrong.

On a separate note, JMS does not require to provide exactly-once semantics, it allows the
last consumed message to be duplicated.
But in our current implementation there could be two duplicate messages for a single producer/consumer
pair even when using synchronous publishing and synchronous acking on the consumer side.

> Provide the ability to publish synchronously
> --------------------------------------------
>                 Key: QPID-1677
>                 URL: https://issues.apache.org/jira/browse/QPID-1677
>             Project: Qpid
>          Issue Type: Improvement
>          Components: Java Client
>    Affects Versions: M4
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: M5
> In order for the producer to not replay the messages again (during failover) and prevent
duplicates,we need a way for the JMS client to sync on every publish. 
> To faciliate this, I have propose a System/Connection URLproperty called sync_publish={persistent|all}
which supercedes sync_persistent.
> (sync_persistent is deprecated but supported for a few releases with a warning printed
if used).
> In order to provide exactly-once semantics between a single JMS publisher-consumer pair
(when using AUTO_ACK on the consumer) we need to publish synchronously and ack synchronously

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

Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org

View raw message