我这里有一个WebService负责接收客户端的请求,之后要把客户端要的数据返回给客户端。有一个问题,现在Service会报java.net.SocketException: There is no process to read data written to a pipe.
到网上查了一下说是连接太多了,有的就超时断了现在Service接收的请求的确很多,而且每个请求的数据处理都需要一定时间,这样怎么才能保证每一个请求都安全的执行完并且返回呢?能不能让Service阻塞在那里呢?
到网上查了一下说是连接太多了,有的就超时断了现在Service接收的请求的确很多,而且每个请求的数据处理都需要一定时间,这样怎么才能保证每一个请求都安全的执行完并且返回呢?能不能让Service阻塞在那里呢?
你可以写一个排队的东西 嗯,我想过,可是排队了客户端还在那等着收呢,我都是同步返回结果的,排队之后我就不知道怎么搞啦
嗯,我再说清楚一点!
有很多客户端会同时到Service取数据,Service根据客户端的要求从数据库取每个表的数据并转成XML发给客户端。
这些数据我是采用同步的方式发给客户端的,也就是在客户端调用的这个方法上返回的,而且用完数据库连接就关了。
现在的问题是,很多客户端都来取数据,我在把每个结果集打包成XML的时候总是会出现“Closed Connection: next ”以及“There is no process to read data written to a pipe.”这样的错。
在网上查了一下大概是说连接太多了所以就想让Service处理完一个再处理下一个。