Return-Path: X-Original-To: apmail-qpid-users-archive@www.apache.org Delivered-To: apmail-qpid-users-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 29353F4FD for ; Wed, 3 Apr 2013 15:43:44 +0000 (UTC) Received: (qmail 17448 invoked by uid 500); 3 Apr 2013 15:43:43 -0000 Delivered-To: apmail-qpid-users-archive@qpid.apache.org Received: (qmail 17422 invoked by uid 500); 3 Apr 2013 15:43:43 -0000 Mailing-List: contact users-help@qpid.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@qpid.apache.org Delivered-To: mailing list users@qpid.apache.org Received: (qmail 17406 invoked by uid 99); 3 Apr 2013 15:43:43 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Apr 2013 15:43:43 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=RCVD_IN_DNSWL_NONE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of fraser.adams@blueyonder.co.uk designates 81.103.221.49 as permitted sender) Received: from [81.103.221.49] (HELO mtaout03-winn.ispmail.ntl.com) (81.103.221.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 Apr 2013 15:43:35 +0000 Received: from know-smtpout-1.server.virginmedia.net ([62.254.123.4]) by mtaout03-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20130403154314.BWPN1579.mtaout03-winn.ispmail.ntl.com@know-smtpout-1.server.virginmedia.net> for ; Wed, 3 Apr 2013 16:43:14 +0100 Received: from [82.38.114.236] (helo=[192.168.1.103]) by know-smtpout-1.server.virginmedia.net with esmtpa (Exim 4.63) (envelope-from ) id 1UNPpb-0007cN-94 for users@qpid.apache.org; Wed, 03 Apr 2013 16:42:35 +0100 Message-ID: <515C4DEA.4030809@blueyonder.co.uk> Date: Wed, 03 Apr 2013 16:42:34 +0100 From: Fraser Adams User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130308 Thunderbird/17.0.4 MIME-Version: 1.0 To: users@qpid.apache.org Subject: Re: Questions from a novice References: <5159B3F1.3030804@redhat.com> <240816474.280610.1364848314232.JavaMail.root@redhat.com> <9E48CFDF-DBA7-4193-A39A-FFCED58EC104@blueyonder.co.uk> <1922558928.614074.1364909212961.JavaMail.root@redhat.com> <3D826D6B-C2BC-43E3-82CE-A97C47E24FB1@blueyonder.co.uk> <392911768.879183.1364937760035.JavaMail.root@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Cloudmark-Analysis: v=1.1 cv=AUhbpHVS+xhHrj9wLCYAQoYnFLYUZdbP8UM0GmH2jwk= c=1 sm=0 a=ha7hkxcCzSMA:10 a=3NElcqgl2aoA:10 a=8nJEP1OIZ-IA:10 a=8nHYmf0VWv6G37OK7cEA:9 a=wPNLvfGTeEIA:10 a=Zvoq7SGjd-4AedC5:21 a=P_HLQWUZSuqB2c-O:21 a=HpAAvcLHHh0Zw7uRqdWCyQ==:117 X-Virus-Checked: Checked by ClamAV on apache.org On 03/04/13 14:45, Bill Freeman wrote: > > And, in fact, my broker has those exchanges, For info I think that every qpid version from at least 0.8 has supported QMF2 ()in the C++ broker) so these exchanges are almost certain to be present unless you have really old brokers around (and if you do I'd recommend you suggest to whoever owns them to upgrade) > and console.py finds them and > sets the Broker instance's brokerSupportsV2 attribute to True. And the > brokerAgent it gets has isV2 True. And it creates its v2 queues, > binds/subscribes them, etc. > > So I'm guessing that the rcvOjbects flag to the Session constructor only > gets me V1 updates, and I would have to subscribe explicitly to the queues > that I care about in order to get v2 updates. Does that sound right? My guess is that if the initial Broker object set up has successfully queried for the presence of QMF2 exchanges then you'd get V2 updates. Actually I've looked at "class Session:" and the following code in _bindingKeys suggests to me that for the case of asynchronous receipt of broker data pushes the class is setting up subscriptions to both QMF1 and QMF2 topics def _bindingKeys(self): v1KeyList = [] v2KeyList = [] v1KeyList.append("schema.#") # note well: any binding that starts with 'agent.ind.heartbeat' will be # bound to the heartbeat queue, otherwise it will be bound to the # unsolicited indication queue. See _decOutstanding() for the binding. if not self.userBindings: if self.rcvObjects and self.rcvEvents and self.rcvHeartbeats: v1KeyList.append("console.#") v2KeyList.append("agent.ind.data.#") v2KeyList.append("agent.ind.event.#") v2KeyList.append("agent.ind.heartbeat.#") else: # need heartbeats for V2 newAgent()/delAgent() v2KeyList.append("agent.ind.heartbeat.#") if self.rcvObjects: v1KeyList.append("console.obj.#") v2KeyList.append("agent.ind.data.#") else: v1KeyList.append("console.obj.*.*.org.apache.qpid.broker.agent") if self.rcvEvents: v1KeyList.append("console.event.#") v2KeyList.append("agent.ind.event.#") else: v1KeyList.append("console.event.*.*.org.apache.qpid.broker.agent") if self.rcvHeartbeats: v1KeyList.append("console.heartbeat.#") else: # mandatory bindings v1KeyList.append("console.obj.*.*.org.apache.qpid.broker.agent") v1KeyList.append("console.event.*.*.org.apache.qpid.broker.agent") v1KeyList.append("console.heartbeat.#") # no way to turn this on later v2KeyList.append("agent.ind.heartbeat.org_apache.qpidd.#") return (v1KeyList, v2KeyList) and later in bindClass() I see: for broker in self.brokers: if broker.isConnected(): broker.amqpSession.exchange_bind(exchange="qpid.management", queue=broker.topicName, binding_key=v1key) if broker.brokerSupportsV2: # data indications should arrive on the unsolicited indication queue broker.amqpSession.exchange_bind(exchange="qmf.default.topic", queue=broker.v2_topic_queue_ui, binding_key=v2key) Which looks like it first binds from the QMF1 qpid.management topic exchange to some queue with the v1key then if brokerSupportsV2 is set binds from the QMF2 qmf.default.topic exchange to some other queue with the v2key I couldn't say for sure without looking at the code in more detail but my guess is that data is being pushed from the broker in both QMF1 and QMF2 format and is probably being placed on both of the queues above, in your case the data is being read off the QMF2 queue and I'd bet that the QMF1 queue just fills up and circulates (it's a ring queue) you could probably check this by monitoring the depth of the queue whose name starts "topic-", the QMF2 topic queue starts "qmfc-v2-ui-". I'm no expert on this code, so it's just a guess on my part, I'm kind of curious myself now :-) Frase --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org For additional commands, e-mail: users-help@qpid.apache.org