Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C6F1510C49 for ; Thu, 6 Feb 2014 23:55:22 +0000 (UTC) Received: (qmail 23356 invoked by uid 500); 6 Feb 2014 23:55:20 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 23214 invoked by uid 500); 6 Feb 2014 23:55:19 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 23199 invoked by uid 99); 6 Feb 2014 23:55:19 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Feb 2014 23:55:19 +0000 Date: Thu, 6 Feb 2014 23:55:19 +0000 (UTC) From: "Timothy Bish (JIRA)" To: dev@activemq.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (AMQNET-470) Allow Setting Callback after sending command asynchronously via Transport. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/AMQNET-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894004#comment-13894004 ] Timothy Bish commented on AMQNET-470: ------------------------------------- If we wanted to add something like this I think we should go the route that was taken in: https://issues.apache.org/jira/browse/AMQ-3769 We could add a new send method to the NMS API that accepts a delegate to invoke on send completion. This is better than your suggested option as it ties the mechanics to specific transport and message objects. It would be better to make this an optional NMS API method where client's could throw OperationNotSupported or whatever the .NET exception is for that. > Allow Setting Callback after sending command asynchronously via Transport. > -------------------------------------------------------------------------- > > Key: AMQNET-470 > URL: https://issues.apache.org/jira/browse/AMQNET-470 > Project: ActiveMQ .Net > Issue Type: New Feature > Components: NMS > Reporter: Shani Elharrar > Assignee: Jim Gomes > Priority: Minor > Labels: easyfix, features, newbie > Original Estimate: 2h > Remaining Estimate: 2h > > Hi. > I have a "system" that processes a lot of messages (~3000 per second) asynchronously. I'm trying to move to ActiveMQ as the primary message broker. > My configuration is that I consume messages from ActiveMQ queue (Using individual Acks), I do some processing, And then send them to another queue (In the ActiveMQ). Transactions aren't so Important to me since I can handle message duplicates in case of crash. But I do want to Ack the messages only after I send them to the ActiveMQ. > So I want to have a Callback after sending the message Asynchronously to ActiveMQ. > I managed to edit NMS code to support this, What i've done is : > * Added "Callbackable" interface with one property (setter & getter) which is a delegate equivalent to Action (void, empty arguments). > * Modified Command and IActiveMQMessage to "extend" that interface > * Modified CommandBase to implement the interface (Trivial setter/getter) > * Modified TCPTransport.Oneway method to check if the callback isn't null and if not - invoke it (After it marshals the message). > And it worked flawlessly. > First of all, I need you to vote in/against the feature, And if it's accepted - I'm willing to create a patch for this. -- This message was sent by Atlassian JIRA (v6.1.5#6160)