qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gordon Sim <g...@redhat.com>
Subject Re: QMF2 protocol query only seems to support OBJECT target
Date Mon, 18 Jul 2011 09:50:23 GMT
On 07/17/2011 10:37 AM, fadams wrote:
> Hi again Gordon,
> I've taken to looking through the C++ broker code to figure some of this out
> and I'm afraid it's making my head EXPLODE :-)
> So I've found ./cpp/src/qpid/management/ManagementAgent.cpp and the method
> "handleGetQueryLH" does indeed say "Currently we only support OBJECT
> queries".
> handleGetQueryLH seems to be dispatched from dispatchAgentCommandLH which in
> turn is called from dispatchCommand which seems to be called from
> specialised Direct&  Topic Exchanges
> So far so good, but I also found
> ./cpp/src/qpid/agent/ManagementAgentImpl.cpp - looking at the headers this
> *appears* to inherit from ManagementAgent - though I'm not clear what
> behaviours it inherits..
> This has a method handleGetQuery which has a lot of similarities with
> handleGetQueryLH (though this seems to support "SCHEMA_ID" at least
> partially) this seems to be dispatched from a received method, though I
> couldn't figure out what calls that.
> So what's the relationship between ManagementAgent and ManagementAgentImpl?
> I grepped the code base and ManagementAgentImpl seems to be called by as a
> Singleton but the getInstance doesn't seem to be called anywhere except some
> testagent.cpp.
> Have I missed something or should I just focus on the ./src/qpid/management
> directory...

I'm not the expert on the QMF related code, however two points will 
probably help explain the bigger picture a little.

First, there are two versions of the QMF protocol. Version 1 had a 
custom message encoding scheme and really required that you use it 
through an API. Version 2 was designed to be easier to use as a 
messaging protocol in its own right, with map- and list- encodings for 
messages and simpler interactions.

The second point is that the QMF work has had a broader goal in mind 
than smply managing the broker. It was designed to be able to be a 
general management infrastructure. Therefore it is possible to implement 
arbitrary management agents, each with their own schemas and interact 
with them using QMF layered on AMQP.

I believe the qpid::agent code is an old API for QMFv1 based management 
agents (apart from the broker),but perhaps Ted or Ken can correct me on 

At present I believe that the qpid::management code is essentially the 
brokers own internal management agent. However in the QMFv1 protocol the 
broker was a more explicit intermediary in all agent communications so 
the distinction there is a little blurred. The code also has two 
parallel implementations for the two different versions and as you 
noted, the second version seems not yet to support querying of the schema.

Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org

View raw message