Why I am geting “The page cannot be diplayed”error from time to time in Muse applications?

This a known/intermittent behavior of some old browsers, like Internet Explorer 6.

By default, Muse HTTP Server closes client sockets as soon as it finishes sending out the response, in order to recycle sockets as soon as possible. However, there are some problems with certain browsers (like IE6) that send data after the socket was closed by the server. Since the socket was already closed by the server, the browser displays the “The page cannot be displayed” error instantly.

To work around this, Muse Http Server was adapted to wait a configurable amount of time after sending all the data back to the browser and before closing the socket. This amount of time is configurable through thesocketCloseDelay parameter for the desired Connector in ${MUSE_HOME}/http/conf/contexts.xml file. The value for socketCloseDelay parameter is specified in milliseconds.

Note: This value represents the time that the server waits before closing down the socket to the client. Setting a too high value for this parameter can degrade performance of the Muse Http Server. In general, this value should never be set higher than 100 milliseconds.

To activate the socket close delay for Muse HTTP Server please follow the next steps:

1. Stop the Muse HTTP Server;
2. Edit the "${MUSE_HOME}/http/conf/contexts.xml" file and add the following line:

after the lines (port 8000 below can be any port that Muse HTTP Server was set to run on):
<Connector className="com.edulib.muse.http.connectors.TcpConnector">
<Parameter name="handler" value="com.edulib.muse.http.handlers.HttpConnectionHandler"/>
<Parameter name="port" value="8000"/>

3. start the Muse HTTP Server.

If the problem still persists, a tunning is necessary till a proper value is found (please consider the note above):
1. Shutdown the Muse HTTP Server;
2. Change the value of the “socketCloseDelay” parameter;
3. Start the Muse HTTP Server;
4. Run new tests.