`

一个关于java.net.Socket的超时的问题

    博客分类:
  • JSP
阅读更多
从异常信息中,可以看到是read timed out,应该是Socket在读取Post过来的参数时“后继无人”,造成读取超时。因为底层实现是java.net.Socket
,而在Socket的read过程中SO_TIMEOUT参数是设置读取超时的。所以从这方面入手,提出以下几点建议供参考:

    1.启用native i/o
    2.增加Socket Readers,这是一个百分比,默认是33,从1-99,增加这个参数可以提高服务端接收客户端请求的速度和能力。
    3.增加执行队列。
    以上参数在server- >Configuration- >tuning中可以设置。

    注意:以上参数调整必须先从测试环境中以近似压力测试后有效再应用于生产环境。

======= 2007-07-06 09:28:22 您在来信中写道:=======

>各位老师,您好:
>
> 昨天中午到下午4点,医院端应用dump了3次,去年11月份二期切换的时候也频繁dump,最近有愈加频繁的趋势。
>
> 以下是现场发回的控制台日至,烦请各位老师帮助分析原因,谢谢!
>
>#### <2007-7-5 20时05分29秒 GMT+08:00 >  <Error >  <HTTP >  <loopback >  <his_managedServer1 >  <ExecuteThread: '2' for queue:
'weblogic.kernel.Default' >  < <WLS Kernel > >  < >  <BEA-101017 >  <[ServletContext(id=1681284293,name=his,context-path=/his)] Root cause
of ServletException.
>java.net.SocketTimeoutException: Read timed out
>        at java.net.SocketInputStream.socketRead0(Native Method)
>        at java.net.SocketInputStream.read(SocketInputStream.java(Compiled Code))
>        at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java(Compiled Code))
>        at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java(Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java(Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java(Compiled Code))
>        at com.neusoft.unieap.util.RequestUtil. <init >(RequestUtil.java(Inlined Compiled Code))
>        at com.neusoft.unieap.action.EAPDispatchAction.execute(EAPDispatchAction.java(Compiled Code))
>        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java(Inlined Compiled Code))
>        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java(Compiled Code))
>        at com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java(Compiled Code))
>        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java(Compiled Code))
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java(Compiled Code))
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java(Compiled Code))
>        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java(Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java(Compiled Code))
>        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))
>        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))
>--------------- nested within: ------------------
>weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request: '/his/DrugChargeAction.do' - with nested
exception:
>[java.net.SocketTimeoutException: Read timed out]
>        at weblogic.servlet.internal.ServletRequestImpl.mergePostParams(ServletRequestImpl.java(Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.parseQueryParams(ServletRequestImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.getParameter(ServletRequestImpl.java(Compiled Code))
>        at com.neusoft.unieap.util.RequestUtil. <init >(RequestUtil.java(Inlined Compiled Code))
>        at com.neusoft.unieap.action.EAPDispatchAction.execute(EAPDispatchAction.java(Compiled Code))
>        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java(Inlined Compiled Code))
>        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java(Compiled Code))
>        at com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java(Compiled Code))
>        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java(Compiled Code))
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
>        at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Compiled Code))
>        at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java(Compiled Code))
>        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java(Compiled Code))
>        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java(Inlined Compiled Code))
>        at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java(Compiled Code))
>        at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java(Compiled Code))
>        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java(Compiled Code))
>        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java(Compiled Code))

分享到:
评论
1 楼 fjjiaboming 2011-12-29  
Socket在读取Post过来的参数时“后继无人”

怎么看不懂这话... ?

相关推荐

    java.net.SocketException Connection reset 解决方法

    java.net.SocketException Connection reset 解决方法

    java.net包socket通信

    java.net包socket通信,基础客户端 和 服务端的通信传输实现

    System.Net.FtpClient.dll

    C#的FTP操作类库,支持FTP...如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用。 那就是System.Net.FtpClient,链接地址:https://netftp.codeplex.com

    JavaAWT简单Socket多人聊天程序(简单明了)

    JavaAWT简单Socket聊天程序,做的粗糙,但基本意思已经有了,支持多个client同时发消息,某个client退出不影响,重在socket通信和异常处理

    C#socket通讯两个最经典错误解决方案

    经典错误1 无法访问已释放的对象。 对象名:“System.Net.Sockets.Socket”;解决方案 经典错误2 "远程主机强迫关闭了一个现有的连接。"解决方案

    org.apache.commons.net.ftp jar包及FTP调用例子

    net 包是一个用于操作Internet基础协议(Finger,Whois,TFTP,Telnet,POP3,FTP,NNTP,以及SMTP)的底层API。Net包不仅支持对各种低层次协议的访问,而且还提供了一个高层的抽象。它使得开发者不再需要直接面对...

    项目源码-java网络五子棋游戏

    import java.net.Socket; import java.net.UnknownHostException; import java.sql.Time; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; /** * 登录面板 ...

    java socket线程cmd命令执行结合,可仿木马程序

    2、把解压后的5个java类复制进去,修改包路径 3、先运行服务器类MJServer.java,再运行客户端类MyClient.java 4、提示连接成功后,在服务类的控制台输入cmd命令,例如ping 127.0.0.1 5、控制台可以看到客户端返回的...

    Java Socket 操作 Demo

    Java Socket 操作 Demo import java.awt.Color; import java.awt.Dimension;...import java.net.Socket; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane;

    java网络编程示例

    OutputStream oStream = socket.getOutputStream(); DataOutputStream dataOutputStream = new DataOutputStream(oStream); dataOutputStream.writeUTF("Hello"); } catch (UnknownHostException e) { ...

    java调用net开发的webservice实例

    at java.net.Socket.connect(Socket.java:519) at java.net.Socket.connect(Socket.java:469) at java.net.Socket.(Socket.java:366) at java.net.Socket.(Socket.java:240) at org.apache.commons.httpclient....

    Android中socket通信简单实现

    socket通信需要有一个服务器和客户端,可以把同一个APP作为服务器跟客户端,也可以分开成两个APP。 先上个图: 这里以一个APP作为服务器跟客户端为示例 1、添加网络访问权限 2、写服务器,在APP上启动 import ...

    计算机网络实验报告 获取MAC socket通信

    java.net.ServerSocket ss = new java.net.ServerSocket(9000); java.net.Socket sk = ss.accept(); //DataOutputStream 处理数据 数据的输出流 java.io.OutputStream os = new java.io.DataOutputStream( ...

    Java聊天室—-多线程实现群聊、私聊、系统消息 (服务端完整代码奉上)

    是不是试了很多次都没有达到自己想要的效果呢? 没关系,看到这你就已经有收获了 文章目录一、动图效果展示二、服务端代码(核心)三、bug吐槽四、分享交流 ...import java.net.Socket; import java.util.conc

    C# .NET中Socket简单实用框架的使用教程

    最近一个项目因为要用到Socket传输问题,所以决定学习一下,将自己学习的内容总结分享出来,下面这篇文章主要给大家介绍了关于C# .NET中Socket简单实用框架使用的相关资料,文中通过示例代码介绍的非常详细,需要的...

    java和.net的socket通信

    java和.net的socket通信。 还不怎么完善,还望见谅

    java上的即时通信

    import java.net.Socket; import java.awt.BorderLayout; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing....

    Java Socket常见异常处理

    在java网络编程Socket通信中,通常会遇到以下异常情况:  第1个异常是 java.net.BindException:Address ...只需要找一个没有被占用的端口能解决该问题了。  第2个异常是java.net.ConnectException: Connection

    基于socket手机网络象棋开发

    import java.net.Socket; import java.util.HashMap; import java.util.Map; /** * @author sean * * @since 2009/06/18 * * 1.create serversocket * 2. wait for new connection * 3. start thread to ...

    基于JAVA的聊天系统的设计于实现

    在java中使用套接口相当简单,Java API为处理套接口的通信提供了一个类java.net.Socket.,使得编写网络应用程序相对容易.服务器采用多线程以满足多用户的请求,通过JDBC与后台数据库连接,并通过创建一个...

Global site tag (gtag.js) - Google Analytics