[ https://issues.apache.org/jira/browse/AMQNET-470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894611#comment-13894611 ]
Timothy Bish commented on AMQNET-470: ------------------------------------- We'd have to think about what's the best way to implement it. I the Java and C++ client the async send takes instance of an object that defines two methods which looks something like: {code} public interface AsyncCallback { void onSuccess(); void onException(JMSException ex); } {code} This allows for notification of either a send completion or a failure in one. If we use delegate we either need to decide on a signature that allows for optional error indicators or we use two delegates, one for success and one for failure which is kind of ugly. This is one area where I prefer the object oriented approach but since it's C# I'm sure people will want to by more dot-nety. > 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)