簡體   English   中英

Java套接字超時異常,將導致那些錯誤的原因

[英]Java Socket TimeOut Exceptions, what would cause those errors

隨着IBM Websphere應用程序服務器上負載的增加,我們正在經歷套接字超時異常。 我們試圖查看超時是否是由於應用程序服務器上的速度過慢引起的。 或者,超時是僅基於套接字數據向我們的SOAP Web服務的傳輸活動引起的。 基本上,增加客戶端計算機上的負載會導致套接字超時嗎? 還是超時僅由服務器端的響應時間慢引起。 或兩者? 我首先想到的是,超時是由於服務器的響應時間太慢所致。

這是一個示例錯誤。 這是連接到Windows計算機C#Web服務的Java Web應用程序(客戶端)。

WebServicesFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultString: java.net.SocketTimeoutException: Async operation timed out
faultActor: null
faultDetail: 

java.net.SocketTimeoutException: Async operation timed out
                at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:283)
                at com.ibm.ws.webservices.engine.transport.http.HTTPSender.invoke(HTTPSender.java:725)
                at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:263)
                at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:263)
                at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:263)

IBM的Async operation timed out文檔歸咎於服務器:

當調用WebService調用且WebService提供程序花費的超時時間超過默認超時時間(300秒)來處理請求時,WebService客戶端(JAX-RPC)中發生WSWS3228E異常。

服務器需要超過5分鍾(300秒)的時間來響應請求。 最可能的情況是服務器上的負載很大。 另一個可能的罪魁禍首是對服務器的緩慢/無響應的后台服務(例如,數據庫或其他Web服務)。 可能是客戶端和服務器之間的鏈接。 您將需要從服務器獲取一些指標,以確定在哪里捕獲請求。

我可以建議閱讀Release It! 它列出了分布式系統出現故障的原因,並提出了解決方法。

在IBM應用程序服務器上調查了類似的異常“ java.net.SocketTimeoutException:異步操作超時”問題之后,我最終發現控制超時的JVM參數是(對於JAXWS調用):

"timeout" (read) & "write_timeout" (write)

我不建議您增加這些超時時間。 您首先需要找出為什么突然間您的電話需要5分鍾以上才能回復。 如果有充分理由增加它們,則可以通過以下方式將這些參數傳遞給Java程序:

java -classpath "/classpath/dir1/*:/classpath/dir2/" -Dtimeout=600 -Dwrite_timeout=600 ClassName arg1 arg2

IBM參考: https : //www.ibm.com/support/knowledgecenter/zh-CN/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/rwbs_httptransportprop.html#http_field15

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM