[Spread-users] possible number of clients and SpreadGroup Management

christian.wohanka at systemagmbh.de christian.wohanka at systemagmbh.de
Thu Oct 31 08:33:34 EST 2002


hello list,

to see how many client  connections can be handled by one deamon we wrote a
small java application which does the following:

// main
.....
for (int i=0; i<numberOfClients;i++)
{
      NUM_ClientTest client = new NUM_ClientTest(i,host,port);
      client.printStatus();
}
.....
// constructor
public NUM_ClientTest(int clientNumber, String host, int port)
{
      this.clientNumber = clientNumber;
      this.username = new String("test_"+clientNumber);
      try
      {
            // establish the connection
            this.connection = new SpreadConnection();
            // connect to the deamon

this.connection.connect(InetAddress.getByName(host),port,username,false,false);
            connection.add(this);         // register as
basicMessageListener - NUM_ClientTest implements BasicMessageListener
      }
      catch (SpreadException se)
      {
            System.err.println("Unable to connect to the deamon.");
            System.err.println(se);
            se.printStackTrace();
            System.exit(1);
      }
      catch (UnknownHostException uhe)
      {
            System.err.println("Unable to find host "+host);
            System.err.println(uhe);
            System.exit(1);
      }
      try
      {
            // joining the group username                   // join the
same group as the private inbox is,
            this.usergroup = new SpreadGroup();             //  just
without the machine name so the client
            this.usergroup.join(connection, username);            // can be
reached by it's username

            // joining the group allusers
            this.allusers = new SpreadGroup();
            this.allusers.join(connection, "all_users");
      }
      catch (SpreadException se)
      {
            System.err.println("Unable to join group.");
            System.err.println(se);
            System.exit(1);
      }
}
.....

our spread.conf looks like the following:

Spread_Segment 225.100.100.255:4803 {

      linux2                  128.0.0.111
      helm_la                 128.0.0.112
      rt_02             128.0.0.113
      rt_01             128.0.0.114
}

we use spread-bin-3.17.0

and we got the following problems:

On a  Windows NT4  machine (600 MHz, 512 MB) it is possible to establish
639 connections with full functionality.
With 640 connections there is no error but there is no functionality
anymore (no sending no receiving, testet with sptuser).
With 641 connections there is an NT4 errormessage: spread.exe - Application
Error "the command in "0x33365f74 points to memory at 0x33365f74. The read
task could not be done at the memory ....". Then the spread deamon is
killed by NT4.
I looked at this on a Linux machine with spmonitor and the following
happens:
If I choose 640 connections the monitor shows 640 sessions with 641 groups,
thats obviosly right. If I now kill NUM_ClientTest the monitor reports that
the sessions are 0 but the number of groups is further on 641. At 639
connections after killing the application both number of groups and the
number of sessions is 0.

On a Linux machine (SuSe Linux 8, 1600 MHz, 1024 MB, no  other load) it is
possible to establish 312 connections with full functionality.
With 313 connections there is no functionality anymore. (the number of
sessions and groups at spmonitor are ok)
With 314 connections the monitor shows 314 sessions but 316 groups thats
one more as I expected.
If I increase the number of connections the number of sessions is always
ok, but the number of groups increases much more than it should.

Does anybody know  where this problem comes from or had the same before?

regards, christian






More information about the Spread-users mailing list