Introduction to D-BUS

Havoc Pennington hp at redhat.com
Mon Aug 28 06:45:23 PDT 2006



Jeroen T. Vermeulen wrote:
> 
> 1. IIRC there is some provision for inter-bus routing.  How does this
> work--especially the addressing?  (And is message ordering affected?)
> 

No provision. Was considered for a while, but didn't really come up with 
a good use-case and it seemed complicated.

> 2. Is there any kind of support for failover?  Let's say you have a proxy,
> for an object you looked up using a well-known bus name, and the client
> providing that object dies.  Assume the client restarts (e.g. using
> activation), grabs the same well-known bus name, and once again creates
> that object you had a proxy to.  Is the proxy always dead at this stage,
> or is there a way (for objects that support it, obviously) to resume where
> things left off?

Binding-dependent. The GLib bindings offer two kinds of proxy; one is 
called "for name" and it simply doesn't pay any attention to the name's 
existence, just sends the method calls; if the name doesn't exist, the 
bus replies with an error. If the client restarts some of your calls 
might get errors while it's down. The other kind of proxy is "for name 
owner" and when you create the proxy it looks up the current name owner 
and then binds the proxy to the unique name ":NN-NN" - which means the 
proxy only ever talks to the one current client, and will break 
permanently if the client restarts.

More sophisticated handling (e.g. what to do when either of these 
proxies returns an error) has to be done by the application.

> 3. It's okay for objects to receive method invocation messages, queue
> them, and process them in an order of its own liking, right?

Yep.

Havoc



More information about the dbus mailing list