Java - Problema con socket

   
Vista:

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con socket

Publicado por aitor (86 intervenciones) el 18/05/2010 21:10:44
fijate que el metodo del servlet llamado execute tiene un throws exception y el error te lo marca el log a una llamada anterior fijate:

com.promad.alerta.emergencias.web.struts.actions.CreaLlamadaEmergenciaEventoApplet.execute(CreaLlamadaEmergenciaEventoApplet.java:56)

esa es la clase que lo causa: (CreaLlamadaEmergenciaEventoApplet.java
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con socket

Publicado por paco (1 intervención) el 20/05/2010 10:43:28
Hola Angel:

¿Has lanzado la excepcion sobre el analizador de trazas de lady4j?

Me suena que este tema es recurrente en los foros.

http://www.lady4j.com/solveStack.jsp
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar