私は次のような 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: Read timed out」エラーが発生します。このエラーの後、プログラムは追加のデータの読み取りや追加の要求への対応に失敗します。サーバー (JBoss) を再起動する必要があります。
私の最初のアイデアは、setReadTimeOut を 15 に増やすことでした。大きなデータセットに対する同時要求のエラーが引き続き発生します。
他のオプションは何ですか? 読み取りタイムアウト エラーから回復するにはどうすればよいですか?
上記のコードは java.net.* を使用しています。
どんな助けにも感謝..WM