Problema con socket
Publicado por Angel Flores (1 intervención) el 18/05/2010 04:26:38
Que tal:
Estoy trabajando en una aplicacion web de struts montada en un servidor JBoss. El problema es que el día de ayer instalaron una tarjeta de red nueva en el servidor y desde entonces han estado apareciendo mensajes de socketTimeoutException y al ejecutar un action el sistema casi se paraliza. Si se desactiva la tarjeta el problema desaparece. El codigo del action es este:
public class CreaAtencionLlamadaApplet extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
>>> Aqui es donde el trace de la excepcion marca el socketTimeout <<<
response.setContentType("application/octet-stream");
try {
ObjectInputStream bufferentrada = new ObjectInputStream(request.getInputStream());
Llamada datos = (Llamada)bufferentrada.readObject();
bufferentrada.close();
ObjectOutputStream buffersalida = new ObjectOutputStream(response.getOutputStream());
Object retorno = creaAtencionLlamadaApplet(datos, session);
buffersalida.writeObject(retorno);
buffersalida.flush();
buffersalida.close();
} catch(Exception e) {
AlertaLogger.exceptionLogger(e,"CreaAtencionLlamadaApplet");
}
return null;
}
---------------------------------------------------------------------------
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
| Exception
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
| causa = null
| clase = class java.net.SocketTimeoutException
| mensaje = Read timed out
| localizacion = Read timed out
|-----------------------------------------------
| StackTrace = java.net.SocketInputStream.socketRead0(Native Method)
| java.net.SocketInputStream.read(SocketInputStream.java:129)
| org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:747)
| org.apache.coyote.http11.InternalInputBuffer.InputStreamInputBuffer.doRead(InternalInputBuffer.java:777)
| org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:115)
| org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:712)
| org.apache.coyote.Request.doRead(Request.java:427)
| org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:283)
| org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:379)
| org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:298)
| org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:180)
| java.io.ObjectInputStream.PeekInputStream.read(ObjectInputStream.java:2266)
| java.io.ObjectInputStream.PeekInputStream.readFully(ObjectInputStream.java:2279)
| java.io.ObjectInputStream.BlockDataInputStream.readShort(ObjectInputStream.java:2750)
| java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
| java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
| com.promad.alerta.emergencias.web.struts.actions.CreaLlamadaEmergenciaEventoApplet.execute(CreaLlamadaEmergenciaEventoApplet.java:56)
| org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
| org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
| org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
| org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| com.promad.alerta.emergencias.web.struts.filters.Message.doFilter(Message.java:19)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| com.promad.alerta.emergencias.web.struts.filters.Timer.doFilter(Timer.java:14)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| org.apache.coyote.http11.Http11Protocol.Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
| org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| java.lang.Thread.run(Thread.java:619)
|
|-----------------------------------------------
| extraInfo = CreaLlamadaEmergenciaEventoApplet
Estoy trabajando en una aplicacion web de struts montada en un servidor JBoss. El problema es que el día de ayer instalaron una tarjeta de red nueva en el servidor y desde entonces han estado apareciendo mensajes de socketTimeoutException y al ejecutar un action el sistema casi se paraliza. Si se desactiva la tarjeta el problema desaparece. El codigo del action es este:
public class CreaAtencionLlamadaApplet extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
HttpSession session = request.getSession();
>>> Aqui es donde el trace de la excepcion marca el socketTimeout <<<
response.setContentType("application/octet-stream");
try {
ObjectInputStream bufferentrada = new ObjectInputStream(request.getInputStream());
Llamada datos = (Llamada)bufferentrada.readObject();
bufferentrada.close();
ObjectOutputStream buffersalida = new ObjectOutputStream(response.getOutputStream());
Object retorno = creaAtencionLlamadaApplet(datos, session);
buffersalida.writeObject(retorno);
buffersalida.flush();
buffersalida.close();
} catch(Exception e) {
AlertaLogger.exceptionLogger(e,"CreaAtencionLlamadaApplet");
}
return null;
}
---------------------------------------------------------------------------
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
| Exception
|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
| causa = null
| clase = class java.net.SocketTimeoutException
| mensaje = Read timed out
| localizacion = Read timed out
|-----------------------------------------------
| StackTrace = java.net.SocketInputStream.socketRead0(Native Method)
| java.net.SocketInputStream.read(SocketInputStream.java:129)
| org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:747)
| org.apache.coyote.http11.InternalInputBuffer.InputStreamInputBuffer.doRead(InternalInputBuffer.java:777)
| org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:115)
| org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:712)
| org.apache.coyote.Request.doRead(Request.java:427)
| org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:283)
| org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:379)
| org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:298)
| org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:180)
| java.io.ObjectInputStream.PeekInputStream.read(ObjectInputStream.java:2266)
| java.io.ObjectInputStream.PeekInputStream.readFully(ObjectInputStream.java:2279)
| java.io.ObjectInputStream.BlockDataInputStream.readShort(ObjectInputStream.java:2750)
| java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
| java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
| com.promad.alerta.emergencias.web.struts.actions.CreaLlamadaEmergenciaEventoApplet.execute(CreaLlamadaEmergenciaEventoApplet.java:56)
| org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
| org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
| org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
| org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
| javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| com.promad.alerta.emergencias.web.struts.filters.Message.doFilter(Message.java:19)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| com.promad.alerta.emergencias.web.struts.filters.Timer.doFilter(Timer.java:14)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| org.apache.coyote.http11.Http11Protocol.Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
| org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| java.lang.Thread.run(Thread.java:619)
|
|-----------------------------------------------
| extraInfo = CreaLlamadaEmergenciaEventoApplet
Valora esta pregunta


0