In AIR 3.x, a socket write()+flush() on a client will hang app if peer adverts TCP ZERO WINDOW

In AIR 3.x, a socket write() + flush() on a client will hang (and freeze the entire app) if the socket peer advertises a ZERO TCP Window, i.e. no space available in peer receiver's socket buffer.
AIR on Windows insists that the developer flush() the socket in order to write (any data at all).  When the peer (receiver) advertises a 0 byte tcp window, the client flush() call can sometimes take 10 seconds (i.e. 10000 milliseconds), whereas normally it should take 10 to 50 milliseconds.
Additionally, AIR stayed in hung position.  Since the socket had TCP KEEPALIVE option enabled (at the server), the socket stayed open.  I let it stay hung overnight.  The next day when I rebooted the server, the socket got closed and finally the AIR program "RETURNED FROM the sock.flush()" call.  A timestamp before and after the call to flush() showed that the flush() call was in hung state for 56472475 milliseconds, i.e. 15.7 hours!  After it returned from the flush() call the AIR app was responsive and seemed to work properly.  Thus proving that it was indeed stuck (or blocked) on the flush() call for 15 hours trying to drain the data to a socket with zero tcp window condition.
A tcp zero window condition on 1 socket hanging an entire app sounds concerning.
Solution Suggestions:
(1) What is needed is for the OutputProgress event to include a field for 'bytes that can be written safely without blocking on the socket', i.e. 'space available in underlying platform socket buffer' which would account for the socket send buffer size.
(2) An alternative solution would be for AIR to provide a write-timeout setsockopt (or a writeTimeout() method on the socket), and return flush with an error (or EWOULDBLOCK), and call the OUTPUTPROG event only when there is enough space available.
If there are any other workarounds, please let me know.
Thank you.

Question:  Does Adobe AIR expose the getsockopt() and setsockopt() calls on a socket?  It would be useful to apps to tune the io buffer sizes.
Additional Details:
RTT = 100+ milliseconds
TCP Window Scaling enabled
Secure Socket
Hard to reproduce with plain TCP socket, but occurs without fail with SecureSocket.  Not knowing the underlying code base, am wondering if it is because the SSL encryption overhead (bytes) throws off the buffer available size compution in secure_sock.flush() .
Thanks.

Similar Messages

  • Two Socket errors: Socket write and Socket reset

    does anyone know the reasons and remedies for the error
    java.net.SocketException: Software caused connection abort: socket write error
    and
    java.net.SocketException: Connection reset by peer: socket write error
    please reply if someone knows
    thanks

    These are basically the same error triggered in different places.
    This occurs when the other end of the connection closes while the client is still writing to it.

  • Rmi - connection aborted:socket write error

    Weblogic 5.1 is running on my localhost and a remote object successfully registered on the weblogic. There is an applet trying to establish a connection and after the client is registered in the client list I get the following exception
    Thu Jan 25 11:29:06 PST 2001:<E> <ServletContext-General> Servlet failed with Ex
    ception
    java.net.SocketException: Connection aborted by peer: socket write error
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
    at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:88)
    at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutput
    StreamImpl.java:121)
    at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(Servlet
    OutputStreamImpl.java:444)
    at weblogic.servlet.ClasspathServlet.sendResource(ClasspathServlet.java:
    114)
    at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:87)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:105)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:742)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:686)
    at weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
    ContextManager.java:247)
    at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
    a:361)
    at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    And the java console shows this message:
    java.lang.NoClassDefFoundError
    at weblogic/rmi/extensions/BasicRequest.init (BasicRequest.java)
    at weblogic/rmi/extensions/BasicRequest.<init> (BasicRequest.java:18)
    at weblogic/rmi/extensions/AbstractRemoteObjectReference.getRequest (AbstractRemoteObjectReference.java:71)
    at weblogic/jndi/internal/RemoteContextFactoryImpl_WLStub.getContext (RemoteContextFactoryImpl_WLStub.java:77)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newRemoteContext (WLInitialContextFactoryDelegate.java:316)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newContext (WLInitialContextFactoryDelegate.java:242)
    at weblogic/jndi/WLInitialContextFactoryDelegate.getInitialContext (WLInitialContextFactoryDelegate.java:205)
    at weblogic/jndi/Environment.getContext (Environment.java:122)
    at weblogic/jndi/Environment.getInitialContext (Environment.java:105)
    at weblogic/rmi/Naming.getContext (Naming.java:225)
    at weblogic/rmi/Naming.lookup (Naming.java:67)
    at AppletTest.init (AppletTest.java:30)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java
    Can someone help solve this problem.
    Thansk in advance,
    Nirmal R.

    The point where the failure occurs in in the initialization of the transaction framework, so I would guess that you do not have the plug-in for the applet.
    Nirmal R wrote:
    Weblogic 5.1 is running on my localhost and a remote object successfully registered on the weblogic. There is an applet trying to establish a connection and after the client is registered in the client list I get the following exception
    Thu Jan 25 11:29:06 PST 2001:<E> <ServletContext-General> Servlet failed with Ex
    ception
    java.net.SocketException: Connection aborted by peer: socket write error
    at java.net.SocketOutputStream.socketWrite(Native Method)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
    at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:88)
    at weblogic.servlet.internal.ServletOutputStreamImpl.flush(ServletOutput
    StreamImpl.java:121)
    at weblogic.servlet.internal.ServletOutputStreamImpl.writeStream(Servlet
    OutputStreamImpl.java:444)
    at weblogic.servlet.ClasspathServlet.sendResource(ClasspathServlet.java:
    114)
    at weblogic.servlet.ClasspathServlet.doGet(ClasspathServlet.java:87)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:105)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:742)
    at weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletCon
    textImpl.java:686)
    at weblogic.servlet.internal.ServletContextManager.invokeServlet(Servlet
    ContextManager.java:247)
    at weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.jav
    a:361)
    at weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:261)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    And the java console shows this message:
    java.lang.NoClassDefFoundError
    at weblogic/rmi/extensions/BasicRequest.init (BasicRequest.java)
    at weblogic/rmi/extensions/BasicRequest.<init> (BasicRequest.java:18)
    at weblogic/rmi/extensions/AbstractRemoteObjectReference.getRequest (AbstractRemoteObjectReference.java:71)
    at weblogic/jndi/internal/RemoteContextFactoryImpl_WLStub.getContext (RemoteContextFactoryImpl_WLStub.java:77)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newRemoteContext (WLInitialContextFactoryDelegate.java:316)
    at weblogic/jndi/WLInitialContextFactoryDelegate.newContext (WLInitialContextFactoryDelegate.java:242)
    at weblogic/jndi/WLInitialContextFactoryDelegate.getInitialContext (WLInitialContextFactoryDelegate.java:205)
    at weblogic/jndi/Environment.getContext (Environment.java:122)
    at weblogic/jndi/Environment.getInitialContext (Environment.java:105)
    at weblogic/rmi/Naming.getContext (Naming.java:225)
    at weblogic/rmi/Naming.lookup (Naming.java:67)
    at AppletTest.init (AppletTest.java:30)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java
    Can someone help solve this problem.
    Thansk in advance,
    Nirmal R.

  • Seeburger sFTP receiver adapter error: Socket Write Error, EOF Received

    Hello experts,
    We have a sFTP to sFTP scenario for which we are getting below error every time the scenario is executed.
    Error Messages are as follows:
    Put File: Could not connect to remote host, Reason: Unexpected termination; software caused connection abort; socket write error[unknown cause].
    Sometimes below error occurs :
    Put File: Could not connect to remote host, Reason: EOF received from remote side [unknown cause].
    Every time after restart of sFTP adapter on XI box, failed messages are sent successfully to receiver sFTP server.
    There is no error for sender sFTP channel. This error occurs only for the receiver sFTP channel.
    On receiver sFTP side, we are using Public key-private key authentication.
    Can anyone please let me know what could be the cause of connection failure. ?
    Thanks a lot in advance!
    (I searched many threads on SDN but could not find anything relevant to this particular situation, so posting a separate question.)
    Minal

    Thanks Naveen for the reply..
    I missed to mention that we are working on XI3.0 with SP19 and seeburger sFTP is 1.7.4
    Looks like key exchange is working properly as after every restart of adapter all failed messages are processed successfully..
    It is observed that if there is an idle time of 8-10 hours between last data transfer and current data transfer then this error occurs.
    We have increased connection timeout and transmission timeout parameters also for sFTP properties in visual admin.
    Thanks,
    Minal
    Edited by: Minal Vaidya on Oct 5, 2011 8:46 AM

  • Urgent helep: socket write error

              Hi All,
              My application is continuously writing the following error message to the domain
              log of WLS eventhough app is running ok
              javax.servlet.ServletException: Connection aborted by peer: socket write error
                   <<no stack trace available>>
              My major concern is that,it will fill up the heap soon.
              Did anybody run into similar issue?
              Thanks in advance.
              RC
              

    Please do not cross-port.
              RC wrote:
              > Hi All,
              > My application is continuously writing the following error message to the domain
              > log of WLS eventhough app is running ok
              >
              > javax.servlet.ServletException: Connection aborted by peer: socket write error
              > <<no stack trace available>>
              >
              > My major concern is that,it will fill up the heap soon.
              > Did anybody run into similar issue?
              > Thanks in advance.
              >
              > RC
              Rajesh Mirchandani
              Developer Relations Engineer
              BEA Support
              

  • JCOM throwing SocketException: Connection reset by peer: socket write error

    I have an ejb which is calling a simple ActiveX component using JCOM.
    Ocassionally the ejb loses the ability to connect to the ActiveX component. Any attempt to call a method results in a java.net.SocketException: Connection reset by peer: socket write error.
    However the ActiveX component continues to run correctly. I can still connect to it using a vb test client. This is using com to connect, not DCOM as used by JCOM(JIntegra).
    The application server and the ActiveX component are running on the same server.
    Any suggestions as to why the JIntegra DCOM request could be failing?
    Thanks,
    Greg.

    I have an ejb which is calling a simple ActiveX component using JCOM.
    Ocassionally the ejb loses the ability to connect to the ActiveX component. Any attempt to call a method results in a java.net.SocketException: Connection reset by peer: socket write error.
    However the ActiveX component continues to run correctly. I can still connect to it using a vb test client. This is using com to connect, not DCOM as used by JCOM(JIntegra).
    The application server and the ActiveX component are running on the same server.
    Any suggestions as to why the JIntegra DCOM request could be failing?
    Thanks,
    Greg.

  • Simple Webserver SocketException: socket write error

    I'm stuck and need some help solving this problem.
    When I try to get the 404 message with the webserver, I get this in the output console:
    "HttpRequest - java.net.SocketException: Connection reset by peer: socket write error"
    I have found the part that makes the problem, but I can't find a solution.
    I hope someone can help me with this!
                try
                    outputStream.writeBytes(entityBody);
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public final class WebServer
        public static void main(String[] args) throws Exception
            //Port number
            int port = 8080;
            // Establish the listen socket.
            ServerSocket webSocket = new ServerSocket(port);
            // Process HTTP service requests in an infinite loop.
            while(true)
                // Listen for a TCP connection request
                Socket tcpSocket = webSocket.accept();
                HttpRequest httpRequest = new HttpRequest(tcpSocket);
                Thread thread = new Thread(httpRequest);
                thread.start();
    import java.io.*;
    import java.net.*;
    import java.util.*;
    public class HttpRequest implements Runnable
        final static String CRLF = "\r\n";
        private Socket socket;
        private String path = "public_html/";
        public HttpRequest(Socket socket)
            this.socket = socket;
        public void run()
            try
                processReguest();
            catch(Exception ex)
                System.err.println(ex);
        private void processReguest() throws Exception
            // Get a reference to the socket's input and output streams.
            InputStreamReader inputReader = new InputStreamReader(socket.getInputStream());
            DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
            BufferedReader buffReader = new BufferedReader(inputReader);
            String requestLine = buffReader.readLine();
            System.out.println();
            System.out.println(requestLine);
            String headerLine = null;
            while((headerLine = buffReader.readLine()).length() != 0)
                System.out.println(headerLine);
            // Extract the filename from the request line
            StringTokenizer tokens = new StringTokenizer(requestLine);
            tokens.nextToken();
            String fileName = tokens.nextToken();
            //Prepend a "." so that the file request is within the current directory
            fileName = path + "." + fileName;
            //Open the request file
            FileInputStream fileInputStream = null;
            boolean fileExists = true;
            try
                fileInputStream = new FileInputStream(fileName);
            catch(FileNotFoundException ex)
                fileExists = false;
            //Construct the response message.
            String statusLine = null;
            String connection = null;
            String contentLength = null;
            String contentTypeLine = null;
            String entityBody = null;
            String contentType = contentType(fileName);
            if(!requestLine.startsWith("GET") && !requestLine.startsWith("HEAD"))
                statusLine = "HTTP/1.0 405 Method Not Allowed" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>405 - Method Not Allowed</TITLE></HEAD><BODY>405 - Method Not Allowed</BODY></HTML>";
                fileInputStream = null;
                fileExists = false;
            else if(fileExists && !contentType.equals("application/octet-stream"))
                statusLine = "HTTP/1.0 200 OK" + CRLF;
                contentTypeLine = "Content-type: " + contentType(fileName) + CRLF;
                connection = "Connection: close" + CRLF;
                contentLength = "Content-Length: " + Integer.toString(fileInputStream.available()) + CRLF;
            else if(fileExists && contentType.equals("application/octet-stream"))
                statusLine = "HTTP/1.0 415 Unsupported Media Type" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>415 - Unsupported Media Type</TITLE></HEAD><BODY>415 - Unsupported Media Type</BODY></HTML>";
                fileInputStream = null;
                fileExists = false;
            else
                statusLine = "HTTP/1.0 404 Bad Request" + CRLF;
                contentLength = "Content-Length: 0" + CRLF;
                connection = "Connection: close" + CRLF;
                contentTypeLine = "Content-type: " + "text/html" + CRLF;
                entityBody = "<HTML><HEAD><TITLE>404 - Not Found</TITLE></HEAD><BODY>404 - Not Found</BODY></HTML>";
            // Send the status line
            outputStream.writeBytes(statusLine);
            // Send the connection status
            outputStream.writeBytes(connection);
            // Send the Content-Length
            outputStream.writeBytes(contentLength);
            // Send the content type line
            outputStream.writeBytes(contentTypeLine);
            //Send a blank line to indicate the end of the header lines.
            outputStream.writeBytes(CRLF);
            // Send the enity body
            if(fileExists)
                //Den här funkar??
                sendBytes(fileInputStream, outputStream);
                fileInputStream.close();
            else
                try
                    outputStream.writeBytes(entityBody);
                catch(SocketException ex)
                    System.out.println(ex);
            socket.close();
            inputReader.close();
            outputStream.close();
            buffReader.close();
        private void sendBytes(FileInputStream fileInputStream, DataOutputStream outputStream) throws IOException
            //Construct a 1k buffer to hold bytes on their way to the socket
            byte[] buffer = new byte[1024];
            int bytes = 0;
            // Copy request file inte socket's output stream
            while((bytes = fileInputStream.read(buffer)) != -1)
                outputStream.write(buffer,0, bytes);
        private String contentType(String fileName)
            if(fileName.endsWith(".htm") || fileName.endsWith(".html"))
                return "text/html";
            else if(fileName.endsWith(".jpg") || fileName.endsWith(".jpeg"))
                return "image/jpeg";
            else if(fileName.endsWith(".gif"))
                return "image/gif";
            else if(fileName.endsWith(".png"))
                return "image/png";
            else if(fileName.endsWith(".txt"))
                return "text/plain";
            return "application/octet-stream";
    }

    You've told the client that the content length is zero bytes so I presume it closes the connection as soon as it finishes receiving headers. It depends what client you're using of course but that seems reasonable behaviour...

  • Socket write error

    Java.net.SocketException; connection reset by peer. socket write error
    Java.SQLException; cannot open anymore tables.
    I am getting this error when i'm using Tomcat 3.3 server. I am using servlet classes and access database.This error comes in 1-2 days and then it shows an sql exception that it cannot open any more tables. I am using an access database thru an ODBC datasource.
    The problem is solved when tomcat is restarted.
    If anybody knows the solution pl.let me know, anita

    Thanks 4 ur response. I am connecting to the database through JDBC which in turn uses an ODBC data source. The connection has been declared as global and is thus supposed to exist till the servlet is not destroyed.
    We r using an access D/B which is inturn accessed through ODBC.
    So it is not restarted or disturbed.
    Pl. help

  • Persistent socket connection - socket write error

    I'm connecting to a server using sockets. My application acts like a client, sending requests, and also like a server, listenning for notifications. I was using a client socket for the first task (send a message when required) and a server socket for the second (permanently listen for incoming messages). This needs to be some kind of persistent connection.
    It happens now I'm required to send and receive using the same port. The only way I found to do this is to have a single socket (client) bound to a certain port. It connects to the server and one thread keeps listenning for incoming messages (by reading the input stream) while another process is launched whenever I need to send a message (by writing to the socket's output stream). The socket is created only once (when the application starts) and its output/input streams reused whenever needed.
    This works well for a while. However, when I try to send a message after some idle time (lets say 20 minutes) strange things happen. The first attempt to send a message returns success (although nothing is actually received by the server). The second attempt returns java.net.SocketException: Software caused connection abort: socket write error. I don't understand this behaviour. Can there be a timeout? I only write to the socket after testing if it's connected.. So why is this failing? Also, any other ideas on how to send and receive using the same port? A different and better approach maybe..
    Thanks in advance

    Socket.isConnected just tells you whether you have personally called Socket.connect() or new Socket(host, port,...). It doesn't tell you anything about the state of the connection.
    You should certainly issue periodic application 'pings' at suitable intervals, and many application protocols do this. For example, Java RMI reuses connections that are less than 15 seconds old but only if they pass a ping test.
    In general however you can't insist on a persistent connection over TCP/IP, especially if you have this kind of hardware in the circuit. What you can do is recognize when the connection has been lost and form a new one. The network is going to fail somewhere some time and your program has to be robust against that.

  • Random "socket write error"

    Hello,
    We are running CF 9.01 standard on IIS 6 (Windows server 2003) on mutiple servers.
    I've noticing a few instances of these errors on every server, almost on a daily bases:
    10/28 13:32:26 error Error while reading header HTTPREFERER
    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)
    NOTE: the header name can be anything, but the stack always starts like this.
    A few times, yesterday for example, a server can suddenly show tons of these errors and then it becomes unresponsive, with queued CFM requests. Only a restart of the service frees this condition.
    Our CFM pages perform a lot of CFHTTP calls, 99% of the time to localhost; in any case the local network is very solid. At the same time CFM is having these issues other pages, for example .NET pages, work perfectly.
    any insight? this problem is affecting our production website. thanks!

    I think, this is nothing to do with Oracle or Ur applications.
    It is totally N/W issue. Contact the N/W support.

  • Oracle Application Server crashes due to Socket Write Error

    I am using Oracle Application Server 9.0.3. Simple JSP application is running on it. We are using the application server connection pooling functionality. Following errors are occuring on it frequently and it causes the application server crash.
    First application response gets slow and eventually application server gets lock and it wont respond and we have to restart the application server. Our application is in production mode and we need to solve this issue immediately.
    ----------------Error1---------------------
    com.evermind.server.http.HttpIOException: Connection aborted by peer: socket write error
         at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:249)
         at com.evermind.server.http.EvermindJSPWriter.writeOut(EvermindJSPWriter.java:424)
         at com.evermind.server.http.EvermindJSPWriter.jspflush(EvermindJSPWriter.java:341)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:490)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:415)
         at schedule.schedulehome._jspService(_schedulehome.java:542)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:560)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:148)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:479)
    ------------Error2---------------------
    com.evermind.server.http.HttpIOException: Connection aborted by peer: socket write error
         at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:249)
         at com.evermind.server.http.EvermindJSPWriter.writeOut(EvermindJSPWriter.java:424)
         at com.evermind.server.http.EvermindJSPWriter.jspflush(EvermindJSPWriter.java:341)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:490)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:415)
         at schedule.schedulehome._jspService(_schedulehome.java:557)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:560)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:148)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:479)

    I am using Oracle Application Server 9.0.3. Simple JSP application is running on it. We are using the application server connection pooling functionality. Following errors are occuring on it frequently and it causes the application server crash.
    First application response gets slow and eventually application server gets lock and it wont respond and we have to restart the application server. Our application is in production mode and we need to solve this issue immediately.
    ----------------Error1---------------------
    com.evermind.server.http.HttpIOException: Connection aborted by peer: socket write error
         at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:249)
         at com.evermind.server.http.EvermindJSPWriter.writeOut(EvermindJSPWriter.java:424)
         at com.evermind.server.http.EvermindJSPWriter.jspflush(EvermindJSPWriter.java:341)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:490)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:415)
         at schedule.schedulehome._jspService(_schedulehome.java:542)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:560)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:148)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:479)
    ------------Error2---------------------
    com.evermind.server.http.HttpIOException: Connection aborted by peer: socket write error
         at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:249)
         at com.evermind.server.http.EvermindJSPWriter.writeOut(EvermindJSPWriter.java:424)
         at com.evermind.server.http.EvermindJSPWriter.jspflush(EvermindJSPWriter.java:341)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:490)
         at com.evermind.server.http.EvermindJSPWriter.write(EvermindJSPWriter.java:415)
         at schedule.schedulehome._jspService(_schedulehome.java:557)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(JAZNFilter.java:283)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:560)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:148)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:72)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:479)

  • "endpoint" encountered a socket write error.

    Blazesds: 3.0.0.544
    Flex:flex sdk 3
    Sever-side: 1. managing the accepted MessageClient.
    2. broadcasting the received message to every client.
    3. all the communication via streaming channel.
    After several about 20 clients connected to the server, a warning message popped out.
    'Endpoint with id'my-streaming-amf' is closing the streaming connection to FlexClient with id'xxxx' because endpoint encountered a socket write error, possibly due to an unreponsive FlexClient.
    Actually, nobody closed the client.
    My question is when the session was destroyed.
    a. no session timeout, caused the channel was lasted for about 2 seconds before it was interrupted.
    b. all the test was done in the inner network(LAN).
    c. this issue can be reproduced all the time.

    This is the warning that is at a point being given:
    Endpoint with id 'xxx-streaming-amf' is closing the streaming connection to FlexClient with id '3CFBFCA1-DC1D-FEDF-A70D-A08A520892CF' because endpoint encountered a socket write error, possibly due to an unresponsive FlexClient.
    Tried debugging things, but it seems as certain clients fail to completely subscribe to messages from the server and the Login remote call also seems to never even get to the server. Because of this, the loading dialog that is displayed during the authentication process, never gets removed ( since no reseponse from the server ever comes back ). This is really frustrating and there is no information anywhere that could shed some light on this problem.

  • Socket write error(code=10053)

    Ive seen many many messages on the newsgroup board about this error. I havnt seen any solutions. It randomly happenes a random amount of time. Can you tell me the problem and a way to fix it?
              

    Hi,
    Might be related to the following post Re: Exception "Socket write error" with large BLOB Which release of JDBC drivers are you using? Try using the latest JDBc jars ( ojdbc14.jar).
    Kuassi

  • Sockets write/close operations hangs application

    Hi!
    I've got a trouble with my web-application. It'a s chat system, that uses Keep-Alive connections for messages output and that recieves messages through another socket.
    Everything is fine with receiving messages. But after message is received, I need to send it to all recepients. So, I use Socket.write() method. If writing is failed, or user is logged off, I use Socket.close().
    Problem is, that sometimes Socket.write() and Socket.close() are blocking their threads.
    How can I avoid such a blocking behaviour?
    If I'll rewrite everything to use not sockets, but socket channels, can it help to solve my problem?
    Thanks.

    If writes are blocking it can only mean that readers aren't reading. Fix that, and forget about the syncrhonization suggestion which is nonsense.
    You can also use NIO in non-blocking mode to avoid blocking in writes, and it does lead to more scalable applications, but be prepared for about a 10x increase in complexity.

  • Connection reset by peer : Socket write

    Hi, everybody
    I am working with weblogic5.1 with servicepack 8. Our server is running for
    24X7X365 but i got some weired error this morning saying that "IO Exception
    :Connection reset by peer : Socket write
    error". I believe this has to do with weblogic.
    Can somebody guide me on this issue.
    Any help would be appreciated.
    Thanks
    Gautam

    Pretty difficult to track such kind of things if it is not easily
    reproducible. Could you also try it out with SP9? Also, try posting it
    on the JDBC newsgroup. Maybe, Joe Weinstein might have more answers.
    Shiva.
    "G.........." wrote:
    LoggingService is one of class that calls db methods.well, we get
    connection from pool and return it pool .we are refreshing connection
    pool regularly, following is some of the entries in properties
    file initialCapacity=5,\
    maxCapacity=10,\
    capacityIncrement=1,\
    allowShrinking=true,\
    shrinkPeriodMins=15,\
    refreshMinutes=10,\ No this message is not easily
    reproductible.JDK version 1.2.2 and os is windows NT4.0 ThanksGautam
    "Shiva Paranandi" <[email protected]> wrote in message
    news:[email protected] does this
    "com.gdaxs.util.LoggingService.logSystemErrorMsg" do? How is
    your pool usage? Do you use the connection pools for a long
    time? Also, can you check if this happens after a pool
    refresh or not? Is this message easily reproducable? What is
    the jdk version you are using and what OS?
    Shiva.
    "G.........." wrote:
    Here is complete stack trace.
    Io exception: Connection reset by peer: JVM_recv in socket
    input stream read
    Stack trace:
    java.sql.SQLException: Io exception: Connection reset by
    peer: JVM_recv in socket input stream read
    at
    com.gdaxs.util.LoggingService.logSystemErrorMsg(LoggingService.java:309)
    at
    com.gdaxs.DBManager.DataRetrieverBean.getCloseOrders(DataRetrieverBean.java:2208)
    at
    com.gdaxs.DBManager.DataRetrieverBeanEOImpl.getCloseOrders(DataRetrieverBeanEOImpl.java:2656)
    at
    com.gdaxs.DBManager.DataRetrieverBeanEOImpl_ServiceStub.getCloseOrders(DataRetrieverBeanEOImpl_ServiceStub.java:343)
    at
    com.gdaxs.closedOrdersBean.init(closedOrdersBean.java:95)
    at
    jsp_servlet._closedorders._jspService(_closedorders.java:236)
    at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:106)
    at
    weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:907)
    at
    weblogic.servlet.internal.ServletContextImpl.invokeServlet(ServletContextImpl.java:851)
    at
    weblogic.servlet.internal.ServletContextManager.invokeServlet(ServletContextManager.java:252)
    at
    weblogic.socket.MuxableSocketHTTP.invokeServlet(MuxableSocketHTTP.java:364)
    at
    weblogic.socket.MuxableSocketHTTP.execute(MuxableSocketHTTP.java:252)
    at
    weblogic.kernel.ExecuteThread.run(ExecuteThread.java:129)
    and after it series of exception like below
    Io exception: Connection reset by peer: socket write error
    Stack trace:
    java.sql.SQLException: Io exception: Connection reset by
    peer: socket write error
    at
    com.gdaxs.util.LoggingService.logSystemErrorMsg(LoggingService.java:309)
    at
    com.gdaxs.traderadministrator.LDAPInterfaceBean.getTradingAccounts(LDAPInterfaceBean.java:285)
    at
    com.gdaxs.traderadministrator.LDAPInterfaceBean.getTraderCredentials(LDAPInterfaceBean.java:137)
    at
    com.gdaxs.traderadministrator.LDAPInterfaceBeanEOImpl.getTraderCredentials(LDAPInterfaceBeanEOImpl.java:99)
    at
    com.gdaxs.traderadministrator.LDAPInterfaceBeanEOImpl_ServiceStub.getTraderCredentials(LDAPInterfaceBeanEOImpl_ServiceStub.java:109)
    at
    com.gdaxs.traderadministrator.TraderAdministrator.onMessage(TraderAdministrator.java:278)
    at
    progress.message.jclient.Session.ew_(progress/message/jclient/Session.java)
    at
    progress.message.jclient.QueueSession.run(progress/message/jclient/QueueSession.java)
    at
    progress.message.jclient.sl.run(progress/message/jclient/Session$SessionThread.java)
    Thanks
    Gautam"Shiva Paranandi" <[email protected]> wrote in
    message news:[email protected]...> Could you
    post the entire exception?
    Shiva.
    "G.........." wrote:
    Hi, everybody
    I am working with weblogic5.1 with servicepack 8. Our
    server is running for
    24X7X365 but i got some weired error this morningsaying that "IO Exception
    :Connection reset by peer : Socket write
    error". I believe this has to do with weblogic.
    Can somebody guide me on this issue.
    Any help would be appreciated.
    Thanks
    Gautam
    [att1.html]

Maybe you are looking for

  • How can i download photos to my IPhone after Disable and Delete ICloud Photo Library?

    I`ve started to use Icloud Photo Library, but i`ve decided to not use anymore because just a few photos were uploaded to the cloud. So, I`ve turned off my ICloud Photo Library entirely at Manage Storage section of ICloud Settings. After that i`ve bee

  • How do I set up my C6380 to print on Vellum?

    I am trying to print on Vellum.  I'm running Windows 7 Ultimate and use Microsoft Publisher 2010.  So far the only printer option that recognizes the Vellum on my C6380 is the Transparency setting from the Printing Preferences / Features / Paper Type

  • Removing hyperlink border around image/auto forward

    I made an image on a webpage into a hyperlink. However, I would like to remove the visual hyperlink border...the one that is blue before you visit it, and purple afterwards. How can I do this? And on a related note, how can I set the hyperlink to aut

  • LDAP In OBIEE 11g

    Hi All , Where we need to configure LDAP in OBIEE 11g Admin Console or in rpd . Thanks In Advance , Anto Qujes

  • Regarding when we are implimenting mm in sap bw?

    Hi bw gems i had one dought, that is when we are implimenting mm in sap bw on have some standard settings in R/3  what is that settins and why we are doing that settings plz           its very urgent..