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