Bug 593828 - QMF: python console needs ability to filter unsolicited events.
Summary: QMF: python console needs ability to filter unsolicited events.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-qmf
Version: Development
Hardware: All
OS: Linux
high
high
Target Milestone: 1.3
: ---
Assignee: Ken Giusti
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
Depends On:
Blocks: 587410 593831
TreeView+ depends on / blocked
 
Reported: 2010-05-19 19:23 UTC by Ken Giusti
Modified: 2011-08-12 16:02 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-10-22 10:26:58 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
simple qmf console (3.78 KB, application/octet-stream)
2010-05-19 19:27 UTC, Ken Giusti
no flags Details

Description Ken Giusti 2010-05-19 19:23:42 UTC
Description of problem:

During scale testing, it was found that adding or removing a qmf console caused all other qmf consoles to receive broker events (clientConnect, queueDeclare, bind, etc).  These events are the management events generated by the broker, and are of no concern to the console application.  

As we scale up the number of consoles, the cpu load on the consoles & broker incurred by these unnecessary messages becomes a limiting scale factor.


Version-Release number of selected component (if applicable):
trunk

How reproducible:
100%

Steps to Reproduce:
1. start a broker
2. add a number of python qmf consoles.
3. watch the cpu activity of the consoles.
4. start or stop a console
5. a short burst of cpu activity is seen across all consoles.
  
Actual results:

Causes load on unrelated consoles.


Expected results:

Unrelated consoles should not be affected.

Additional info:

A qmf console should be able to indicate to the broker which events it is interested in receiving.

Comment 1 Ken Giusti 2010-05-19 19:27:54 UTC
Created attachment 415236 [details]
simple qmf console

Comment 2 Ken Giusti 2010-05-20 21:48:23 UTC
Committed revision 946801.

New qmf console api added:  Session.addEventFilter().

Takes arguments:

   package="<schema package string>, 
   event="<specific event>"

event is optional.

Allows console to only receive those events from the given package.  

Example:


    session = Session(console,
                      rcvObjects=opts.objects,
                      rcvEvents=opts.events,
                      rcvHeartbeats=opts.heartbeats,
                      manageConnections=opts.manage_connections)


    # only want events from org.apache.qpid.broker and
    # org.apache.qpid.agent.example packages...

    session.addEventFilter(package="org.apache.qpid.broker")
    session.addEventFilter(package="org.apache.qpid.agent.example")

Must be called before first addBroker()....

Comment 4 Ken Giusti 2010-05-24 19:15:54 UTC
Upstream revision: 946801


Note You need to log in before you can comment on or make changes to this bug.