Вызвано: java.net.SocketTimeoutException: Тайм-аут чтения - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть приложение весенней загрузки 2.x, которое выполняет мыльный вызов, используя JaxWsProxyFactoryBean для выполнения вызовов. Все вызовы работают безупречно, за исключением одного, который получает «java.net.SocketTimeoutException: Read timed out». На заметку:

  • У моего приложения нет проблем с мыльными вызовами в моей сети.
  • Единственный мыльный вызов, имеющий проблему, находится вне моей сети, и эта проблема носит спорадический характер
  • Из сетевых трассировок также видно, что мое приложение повторно использует соединения (пул соединений)
  • Мое приложение выполняет миллионы вызовов в день как на внутреннюю (работающие мыльные службы), так и на внешнюю службу, которая имеетthe blips

Вопросы:

  • Как настроить пул http-соединений в весенней загрузке 2.0?
  • Возможно ли, что проблема исчезнет, ​​если яотключить пул HTTP-соединений?
  • Какой тип снижения производительности (оценка в мс) я смотрю, если отключить пул HTTP-соединений?
  • Какими могут быть причины моей проблемы, если она не связанав пул соединений?

Если вам нужны какие-либо другие данные, пожалуйста, дайте мне знать.

Частичная трассировка стека:

Caused by: java.net.SocketTimeoutException: Read timed out
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
 at java.net.SocketInputStream.read(SocketInputStream.java:171)
 at java.net.SocketInputStream.read(SocketInputStream.java:141)
 at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
 at sun.security.ssl.InputRecord.read(InputRecord.java:503)
 at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:975)
 at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:933)
 at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
 at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
 at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
 at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
 at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735)
 at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1587)
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
 at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
 at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
 at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:377)
 at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream$2.run(URLConnectionHTTPConduit.java:373)
 at java.security.AccessController.doPrivileged(Native Method)
 at org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:373)
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1597)  
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1625)
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1570) 
 at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1371)  ... 

Спасибо, Брайт

...