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 
this.

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


Mime
View raw message