Hello Arnaud/Ted/Qpid Gurus,
So far, I have exposed all the attributes and methods of all the classes of
Qpid as MBeans on JMX console. And whatever methods we invoke of these
classes, changes reflect in the Qpid C++ Broker.
I have a few questions and I am expecting their answers very quickly as
GSoC is about to finish.
1. What is the "cluster" ? what should be the "clusterName" (parameter) in
the invocation of "joinCluster" method of "broker" class. What value of
this argument should I pass?
2. I never receive the Configuration and Instrumentation Content Messages
for "agent" class. Infact, I cannot see the agent class by using the python
tool "qpid-tool"
Its like this when I use the "list" command
----------
qpid: list
Management Object Types:
ObjectType Active Deleted
==================================
qpid.binding 10 2
qpid.bridge 0 1
qpid.broker 1 0
qpid.connection 3 40
qpid.exchange 6 0
qpid.link 2 0
qpid.queue 5 1
qpid.session 1 42
qpid.system 1 0
qpid.vhost 1 0
qpid:
Remark: I was not able to see the link and bridge classes in the begining,
but when I invoked the "connect" method of the "connection" class then I
got the "link" class. Furthermore, when i invoked the "bridge" method of
the "link" class then I got the "bridge" class.
So am I missing something which i need to perform so that i can see the
"link" class in the above list and then broker will start automatically
sending the messages for "agent" class and then I will be able to expose it
on JMX as well.
3. I have got very strange values for "tag" attribute of "Bridge" class.
I have got the following Configuration values in my property file (these
values are send by Broker):
-----
#Mon Aug 25 03:44:03 CEST 2008 dest= #Mon Aug 25 03:44:03 CEST 2008
linkRef=281475060596766 #Mon Aug 25 03:44:03 CEST 2008 srcIsQueue=0 #Mon
Aug 25 03:44:03 CEST 2008 channelId=1 #Mon Aug 25 03:44:03 CEST 2008
excludes= #Mon Aug 25 03:44:03 CEST 2008
tag=anagement\ttestQueue\ttestQueue\u0005hello\u0005world\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000
#Mon Aug 25 03:44:03 CEST 2008 src= #Mon Aug 25 03:44:03 CEST 2008
durable=0 #Mon Aug 25 03:44:03 CEST 2008 key=\n
------
On the qpid-tool, I am getting the format like this:
-----
qpid: show 191
Object of type qpid.bridge: (last sample time: 01:42:13)
Type Element 191
=====================================================================================================================================
property linkRef 139
property channelId 1
property durable False
property src
property dest
property key
property srcIsQueue False
property srcIsLocal False
property tag anagement testQueue testQueuehelloworld
property excludes
qpid: list
----------
I am very much suspicious about the values of "tag" element. I am decoding
these incoming values by using the following piece of code:
----
// for bridge
public void getBridgeConfigurationAttributes()
{
long linkRef = decoder.readUint64();
bridgeConfMap.put("linkRef",linkRef);
int channelId =decoder.readUint16();
bridgeConfMap.put("channelId",channelId);
int durable=decoder.readUint8();
bridgeConfMap.put("durable",durable);
String src=decoder.readStr8();
bridgeConfMap.put("src",src);
String dest=decoder.readStr8();
bridgeConfMap.put("dest",dest);
String key=decoder.readStr8();
bridgeConfMap.put("key",key);
int srcIsQueue=decoder.readUint8();
bridgeConfMap.put("srcIsQueue",srcIsQueue);
int srcIsLocal=decoder.readUint8();
bridgeConfMap.put("srcIsLocal",srcIsLocal);
String tag=decoder.readStr8();
bridgeConfMap.put("tag",tag);
String excludes=decoder.readStr8();
bridgeConfMap.put("excludes",excludes);
printMap(bridgeConfMap,"bridge");
}
---------------
Note: I passed the following values in the "bridge" method of the "link"
class before getting these above mentioned values for the "bridge" class.
arg names values
----------------------------------
durable 0
src management
dest testQueue
key testQueue
tag hello
excludes world
srcIsQueue 0
srcIsLocal 0
where src and dest are the "management" and "testQueue" queues
respectively. I am not sure about the "tag" and "excludes" elements.
Thanks in advance for looking into these details and giving me some
solutions.
Arnaud, I will upload the most-up-to-date code very soon as I have some
hard-code in the programs (objectID of the "qpid classes") as I am
receiving the "Configuration and Instrumentation Content Messages" for the
classes and invoking the methods of the "classes" based on the objectIDs.
Do you also know if there is some method that gives the active objectIDs of
the class?
BR,
Rahul