[Spread-users] Help with configuration file

Jonathan Stanton jonathan at cnds.jhu.edu
Mon Mar 31 13:03:55 EST 2003

On Mon, Mar 31, 2003 at 11:40:18AM -0500, Kevin Carlson wrote:
> Is there anyone that can point me to a resource that would explain the 
> "Spread Segment" section of the configuration file other than the User's 
> guide?  I have read and re-read the section on configuration and can't 
> quite understand why each machine must be listed and what the different 
> segments represent.  Yes, I am a spread newbie. ;-)  I am very familiar 
> with other message bus technologies such as MQSeries, SwiftMQ, and other 
> JMS implementations but this seems to be a little different.
> What I am attempting to do is set up a spread daemon on a single machine 
> that other machines both on and off the local network can connect to.  I 

In this case, all your Spread_Segment needs to contain is the one
machine that will run a daemon. For example:

Spread_Segment  1.2.3..255:4803 {


Then any spread client can connect to the daemon running on the machine
myhost.mydomain.com and messages it sends to other clients will be
forwarded to those other clients who are also connected to

> gather that each segment is informing the daemon where it must broadcast 
> data to, but why the need for each machine is confusing.  Is this to 

Ah. I see the confusion. In Spread the Segment defines a set of daemons
who will communicate together, it says nothing about where the actual
clients are who connect to the daemons. Commonly you will run a number
of daemons (maybe one on each machine that is participating with a
client, maybe on fewer) and so the Segment section lists all of the
machines that will be running a daemon process. The list of machines is
needed for both protecting the daemons and for the protocols to work, as
they need to know the entire set of "potential" daemons who may run,
even if not all of them are executing all the time.

The clients actually connect individually over TCP or local IPC sockets
to the daemon, the daemon does not "broadcast" at the UDP level to all
of the clients. 

> control access to the spread daemon?  Am I even on the right track?

The spread.conf doesn't itself specify any access control limits on
clients (i.e. restricting a client from connecting to a daemon) it only
specifies which daemons will listen to each other (if a daemon starts
running on a machine who is NOT in the Segment section, then the other
daemons will ignore it.) You can implement access control for the
clients by using the built in Access Control API. You can find
documentation on it in the paper:



Jonathan R. Stanton         jonathan at cs.jhu.edu
Dept. of Computer Science   
Johns Hopkins University    

More information about the Spread-users mailing list