[ 
https://issues.apache.org/jira/browse/QPID-669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12539616
 ] 

Ted Ross commented on QPID-669:
-------------------------------

Earlier correspondence on this topic:

Rafi,

As you get ready to make changes to the python API, I've got some features I'd 
like to see implemented to support the management console.

The main issue is the need to maintain connectivity to multiple (possibly many) 
brokers simultaneously.  There's no assurance that all or any of the brokers 
will be reachable at any given time, even when first trying to contact them.  A 
broker may become disconnected and need to be re-connected.

I propose that the management console be responsible for maintaining the 
connections to the brokers.  To do this, it will need a non-blocking API for 
connection/session setup.

In the current API, the connection is established in Client.start.  Channel 
establishment and session-open follow.  There needs to be an option for this 
sequence of events to be non-blocking.  For example, if a callback is supplied 
in the "start" method, this could be an indication that asynchronous operation 
is requested.  The callback would then be invoked when either the connection 
was successfully established or failed (with the failure reason supplied).

Loss of connection could also be indicated with a callback, but this is less 
important since I could bounce a heartbeat off the broker periodically to see 
if it's still connected.

Session resume complicates matters in that it is desirable to reconnect to the 
same session after loss of connectivity to pick up management data that was 
generated during the outage.  Perhaps this is addressed simply by exposing the 
session_resume method in the API and allowing the client to attempt to resume 
after an outage (again in a non-blocking way). 

> Non-Blocking connection/session semantics for Python client
> -----------------------------------------------------------
>
>                 Key: QPID-669
>                 URL: https://issues.apache.org/jira/browse/QPID-669
>             Project: Qpid
>          Issue Type: Wish
>          Components: Python Client
>            Reporter: Ted Ross
>            Priority: Minor
>
> This is a request for non-blocking connection/session semantics in the Python 
> client API to support the management client.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to