Hi Angus,

Agreed, the doxygen comments are lacking.  I've created a jira to address that:

https://issues.apache.org/jira/browse/QPID-3257

The method call model is a request-response pattern that really only provides 
for a single response to the request.  As you suggested, you can use events to 
augment that pattern.   Specifically, the agent may start issuing events in 
response to the method call, either before or after the response is sent.  
Depending on your needs, you could have the equivalent of a "Start 
Events"/"Stop Events" method pair, or hold off the response until all events 
are doing being generated.

One minor point - the correlation id that is returned to the client is 
guaranteed to be unique only for the method call/response period.  Once the 
response is received, that id _may_ be recycled for future requests (very 
unlikely, but I wouldn't recommend counting on it).  So I would suggest that 
your method call take a unique identifier that your application provides.  All 
events that correlate to that method call could contain that identifier, so you 
don't rely on having the correlation id be unique over the lifetime of your 
application.

Does that make sense?

thanks,

-K

----- Original Message -----
> On Fri, May 06, 2011 at 01:48:08PM -0400, Ken Giusti wrote:
> > Apologies for not getting back to you sooner...
> >
> > callMethodAsync() returns a unique 32 bit correlation id that
> > corresponds to the request. The ConsoleEvent that contains the
> > method response has a getCorrelator() method which returns the
> > correlation id that will match the value returned by the initiating
> > callMethodAsync().
> >
> Cool, thanks. The function could do with a doxygen comment. I assumed
> it
> was an error status.
> 
> Another question, can you send multiple responses for one request?
> Or would these need to be events?
> 
> 
> Thanks for the help.
> 
> -Angus
> 
> >
> >
> > -K
> >
> > ----- Original Message -----
> > > Hi
> > >
> > > We are trying to do multiple async requests on a single qmf
> > > function.
> > > Then we need to match the response to the request in the
> > > ConsoleEvent
> > > handler. Now we could add an In-Out parameter but it seems like
> > > this
> > > is something that should be handled by QMF. Since if you had a QMF
> > > function that you were calling with callMethod() then you changed
> > > to callMethodAsync() you would not have this IO parameter.
> > >
> > > Now if the server processes these in a non serial way (like we
> > > intend
> > > doing)
> > > the responses will comeback out of order and we will have no way
> > > of knowing which request the response was for.
> > >
> > > Is there a way to do this currently?
> > >
> > > Regards
> > > Angus Salkeld
> > >
> > >
> > > ---------------------------------------------------------------------
> > > Apache Qpid - AMQP Messaging Implementation
> > > Project: http://qpid.apache.org
> > > Use/Interact: mailto:[email protected]
> >
> > ---------------------------------------------------------------------
> > Apache Qpid - AMQP Messaging Implementation
> > Project: http://qpid.apache.org
> > Use/Interact: mailto:[email protected]
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project: http://qpid.apache.org
> Use/Interact: mailto:[email protected]

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to