转自http://www.csdnjava.com/forum.php?mod=viewthread&tid=58526
为什么会产生java.net.SocketTimeoutException: Read timed out:
产生此题目的根本原因是客户端在发送请求的过程中,服务器只接受了很少的一部分参数,但是此后客户端没有再发数据导致服务器接受的数据并不完整,所以wls在等待了30秒后 idle timeout,连接治理器将连接杀掉,服务器抛错。
那为什么会产生超时呢?原因很多,但无非以下几种:
首先,就要说到网络题目,固然此说法并不让人信服,但这是客观存在的题目,当然这主要是看频率,假如一个月出几次,那也只能回于网络传输的题目。
其次,不得不说客户真个题目,用户在处理请求的过程中强行封闭浏览器,os操纵系统题目,网卡或交换机硬件题目等等。总之,是客户真个题目导致了连接的异常,应用是无法解决此类题目。
再次,假如此超时发生在sevlet和ejb之间就是web或者app其他的处理超时,也就是txbean的超时,比如app拿回的结果集过大,又要对每个结果进行远程校验,web上载的过程中做了较长时间的解析等等。但都是web或app应用程序处理时间的题目或者sql的题目。
此外请留意,此超时可能由于很多原因,很多程序的异常都可能引起。例如同步提交等等
解决方案:
假如发生在web和客户段之间,也就是前端和servlet之间:
1,此题目大都发生在使用频率很大,如查询(query和dep都是查询的功能,且使用频率很大)的功能上,但是应用是无法控制客户真个行为,故此类题目,应用是无法用代码解决的。
只能在生产抛错时找到对应的客户端,但此类题目并发量大,客户端并不轻易找。假如一周异常控制在一定数目内是无需关注的。
2,假如此类题目大批量发生,那就要找到发生题目集中的客户端群,检查物理交换机或者网卡等硬件的连通题目,或者客户端os。
假如发生在sevlet和ejb之间:
1,将tras的bean的时间调长,可以解决部分题目,但不推荐,也不是解决题目的根本途径。
2,调优sql减少查询时间,减少db层带来的题目。
3,对应用的处理过程进行优化,降低处理的时间,假如应用处理的时间无法减少,可考虑采用异步的方式,发请求,返回请求,处理,返回数据。
4,其他类型引起的就要查程序流程,看处理的是否得当,具体要分析程序了
分享到:
相关推荐
标题中的“java.net.SocketTimeoutException: Receive timed out”是一个Java编程中常见的异常,通常发生在进行网络通信时,接收数据超时。这个异常是由于Socket在等待接收数据时超过了预设的超时时间,没有接收到...
### Java.io.Reader与Java.io.InputStream的关键差异解析 在深入探讨`java.io.Reader`与`java.io.InputStream`的具体差异之前,我们首先需要理解这两者在Java I/O操作中的基础角色。`java.io.Reader`和`java.io....
Exception in thread “main” redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out at redis.clients.util.RedisInputStream.ensureFill...
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out 该异常的原因有: 1. 读写超时设置的过短:可以调整读写超时的设置,以满足实际情况。 2. 命令本身...
code:500 msg: java.net.SocketTimeoutException: connect timed out at com.alibaba.nacos.client.naming.net.NamingProxy.callServer(NamingProxy.java:424) at ...
广东外语外贸大学思科信息学院计算机专业JAVA课程专业中的一小段代码
如果在指定的时间内没有接收到数据,`read()`方法会抛出一个`SocketTimeoutException`,从而强制退出阻塞状态。示例代码如下: ```java Socket socket = new Socket(host, port); socket.setSoTimeout(100); // ...
在Java中,这通常通过`java.net.Socket`类或`java.net.SocketTimeoutException`来实现。下面是一个基本的远程端口扫描示例: ```java import java.io.IOException; import java.net.InetAddress; import java.net....
在Java编程中,Apache POI库是处理Excel文件的常用工具,尤其在数据分析、自动化报告生成等领域有着广泛的应用。本程序"poi处理excel文件的小程序"就是基于Apache POI实现的,用于读取和操作Excel数据。 1. **...
- 缓存时间可以通过系统属性`sun.net.dns.cache.timeout`进行设置,默认值为60秒。 3. **DNSSEC(DNS Security Extensions)**: - Java支持DNSSEC,可以验证DNS查询响应的来源和完整性。这通过`java.net.DNS...
import java.net.SocketTimeoutException; import java.net.UnknownHostException; public class ClientActivity extends Activity { public EditText messageEditText; @Override public void onCreate(Bundle...
4. **HTTP和HTTPS**:Java的`java.net.HttpURLConnection`类用于处理HTTP和HTTPS请求,这是Web应用中常见的网络通信方式。HTTP是超文本传输协议,用于传输超媒体信息;HTTPS是在HTTP基础上加入了SSL/TLS加密,提高了...
DFSOutputStream ResponseProcessor exception for block blk_1439491087566691588_6207 java.net.SocketTimeoutException: 69000 millisecond timeout while waiting for channel to be ready for read....
2. Java FTP库:Java标准库中的`java.net.FTPSClient`和`java.net.FTPClient`类提供了FTP功能。此外,Apache Commons Net库提供了更强大的`FTPClient`,支持FTP、FTPS(FTP over SSL/TLS)以及SFTP(SSH File ...
- `android.net`包:除了`java.net`中的类,还提供了额外的网络访问接口,如URI类。 - `android.net.http`包:处理SSL证书,支持安全的HTTPS连接。 - `android.net.wifi`包:用于管理WiFi相关的功能,如扫描、...
1. **设置超时**:Java的`Socket`类并不直接支持UDP的超时设置,但可以通过`SocketTimeoutException`来间接实现。我们可以在`DatagramSocket.receive()`方法上设置一个超时,如果在指定时间内没有接收到数据,就会抛...
在Java中,`java.net.Socket`类代表了TCP协议的Socket,而`java.net.ServerSocket`则用于创建监听客户端连接的服务器端Socket。 1. **创建服务器端Socket** - `ServerSocket(int port)`:创建一个监听指定端口的...