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
thanksThese 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.)
MinalThanks 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...
-
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, anitaThanks 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 advanceSocket.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. -
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
GautamPretty 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
-
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..