activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <>
Subject [jira] [Commented] (AMQNET-470) Allow Setting Callback after sending command asynchronously via Transport.
Date Thu, 06 Feb 2014 23:55:19 GMT


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:

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:
>             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

View raw message