[ 
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)

Reply via email to