You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ji...@apache.org on 2004/05/22 07:13:01 UTC

[jira] Closed: (JAMES-283) James should use default backLog value when creating a ServerSocket

Message:

   The following issue has been closed.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JAMES-283

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JAMES-283
    Summary: James should use default backLog value when creating a ServerSocket
       Type: Improvement

     Status: Closed
   Priority: Major
 Resolution: FIXED

    Project: James
 Components: 
             James Core
   Fix Fors:
             2.2.0RC4
   Versions:
             2.2.0RC3

   Assignee: Noel J. Bergman
   Reporter: Hes Siemelink

    Created: Wed, 12 May 2004 8:08 AM
    Updated: Fri, 21 May 2004 10:12 PM

Description:
We have a test where we send 100 messages simultaneously. James does not handle this well. With a standard setup 40-70 messages are NOT handled. After tweaking the config file (allocating more threads and connections) still 10-30 messages are not picked up.

We discovered that James specifies a very tight 'backLog' value when creating a ServerSocket. This happens in org.apache.james.core.AbstractJamesService.initialize() on line 302:

  ServerSocket serverSocket = factory.createServerSocket(port, 5, bindTo);

(Sorry no time to do a proper diff)

We suppose that eventually a java.net.ServerSocket is created with this value. According to the javadoc of ServerSocket, the default value is 50. This can be specified by setting the backLog parameter to 0. See http://java.sun.com/j2se/1.4.2/docs/api/java/net/ServerSocket.html

We changed the above line in AbstractJamesService to

  ServerSocket serverSocket = factory.createServerSocket(port, 0, bindTo);

With this fix all 100 messages are accepted (on Windows 2000 Server).

We advise that James uses the default value for the backLog parameter. If there is a special reason why the default value should be 5, please make it a parameter we can specify in the config file.

Thanks

    Hes.



---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org