我正在修复 Java 代码,看起来像这样 -
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(POST);
connection.setRequestProperty("Content-Type", CONTENT_TYPE);
connection.setReadTimeout(5 * 60 * 1000);
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
wr.writeBytes(parameters);
wr.flush();
wr.close();
in = connection.getInputStream();
connection = null;
它适用于少量数据交换(包括并发请求)。如果数据很大或有并发请求(对于大数据),我会收到“java.net.SocketTimeoutException:读取超时”错误。在此错误之后,程序无法读取其他数据或满足其他请求。我必须重新启动服务器(JBoss)。
我最初的想法是将 setReadTimeOut 增加到 15。没有帮助,对于大型数据集的并发请求仍然会出错。
我还有哪些其他选择?如何从读取超时错误中恢复?
上面的代码使用 java.net.*。
感谢任何帮助..WM