dev@grizzly.java.net

FW: help: server socket close/timeout

From: James L. Gustafson <jgustafson_at_gestalt-llc.com>
Date: Fri, 14 Sep 2007 12:45:50 -0500

 

We're using Grizzly: v1.5.1, JDK 1.5.0_08 and it appears that the server
is closing the socket connection after @30seconds.

 

Code:

public class GrizzlyInputChannel implements IInputChannel {

 

            private Integer port = 7556;

 

            private LinkedBlockingQueue<InputMessage> queue;

 

    private Controller controller = new Controller();

    private TCPSelectorHandler tcpHandler = new TCPSelectorHandler();

    private IProtocolChainInstanceHandler chainHandler = new
ProtocolChainHandler(queue);

 

    public void setPort(Integer port) {

            this.port = port;

    }

 

            public void
setProcessingQueue(LinkedBlockingQueue<InputMessage> queue) {

                        this.queue = queue;

            }

 

            public void setController(Controller controller) {

                        this.controller = controller;

            }

 

            public void setTCPSelectorHandler(TCPSelectorHandler
tcpHandler) {

                        this.tcpHandler = tcpHandler;

            }

 

            public void
setProtocolChainInstanceHandler(IProtocolChainInstanceHandler
chainHandler) {

                        this.chainHandler = chainHandler;

            }

 

            public void start() {

                        chainHandler.setQueue(queue);

                        tcpHandler.setPort(port);

 
controller.setProtocolChainInstanceHandler(chainHandler);

                controller.addSelectorHandler(tcpHandler);

                try {

                                    controller.start();

                        } catch (IOException e) {

                             e.printStackTrace();

                        }

            }

 

            public void stop() {

                        try {

                                    controller.stop();

                        } catch (IOException e) {

                             e.printStackTrace();

                        }

            }

 

 

 

 

  On the client side we get:

java.net.SocketException: Software caused connection abort: socket write
error

        at java.net.SocketOutputStream.socketWrite0(Native Method)

        at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)

        at
java.net.SocketOutputStream.write(SocketOutputStream.java:136)

        at
java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)

        at
java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)

        at
sun.nio.cs.StreamEncoder$CharsetSE.implFlush(StreamEncoder.java:410)

        at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:152)

        at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:213)

        at java.util.logging.StreamHandler.flush(StreamHandler.java:225)

        at
java.util.logging.SocketHandler.publish(SocketHandler.java:172)

        at java.util.logging.Logger.log(Logger.java:452)

        at java.util.logging.Logger.doLog(Logger.java:474)

        at java.util.logging.Logger.log(Logger.java:497)

        at java.util.logging.Logger.info(Logger.java:1016)

        at
com.gestalt.nettoolkit.network.listener.ProtocolFilter.filterPacket(Prot
ocolFilter.java:62)

        at
com.gestalt.nettoolkit.network.listener.NetworkListener.processData(Netw
orkListener.java:83)

        at
com.gestalt.nettoolkit.network.listener.NetworkListener.main(NetworkList
ener.java:26)

 

 

 

  We've tried tcpHandler.setServerTimeout(0) and
tcpHandler.setSocketTimeout(0) but it continued to close/timeout.

 

  Any help/suggestions would be greatly appreciated. In the mean time
we're going to try to use Grizzly 1.6.0 to see if we have any better
luck

 

 

Thanks

Jim