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/12 19:45:57 UTC
[jira] Updated: (JAMES-283) James should use default backLog value when creating a ServerSocket
The following issue has been updated:
Updater: Noel J. Bergman (mailto:noel@devtech.com)
Date: Wed, 12 May 2004 10:44 AM
Comment:
Patch to add configurable connection backlog.
Changes:
Attachment changed to backlog-patch.txt
---------------------------------------------------------------------
For a full history of the issue, see:
http://issues.apache.org/jira/browse/JAMES-283?page=history
---------------------------------------------------------------------
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: Unassigned
Priority: Major
Project: James
Components:
James Core
Versions:
2.2.0RC3
Assignee:
Reporter: Hes Siemelink
Created: Wed, 12 May 2004 8:08 AM
Updated: Wed, 12 May 2004 10:44 AM
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