[英]J2EE app running on Glassfish v3 is not responding to HTTP requests. App logs success but no data sent back over HTTP
我正在支持其他供應商的遺留應用程序。
這是在Glassfish v3.1.2.2上運行的J2EE應用程序。 它具有使用JAX-RS實現的REST API。 我對應用程序和源的了解有限。
症狀是:
對於遠程調用以及在localhost上使用curl進行的調用均會發生這種情況。
如果我們通過HTTPS向其他端口發出相同的請求,則它們將成功。 我們不願意在不知道根本原因的情況下將呼叫移至另一個端口。 這些昨晚斷斷續續地失敗了,而今天卻不斷失敗。
請求的數據包捕獲顯示:-TCP開銷/握手-GET請求-從應用程序返回到調用者的單個ACK-之后沒有任何響應
什么會導致Glassfish v3成功處理和處理HTTP請求,但不返回任何數據?
Glassfish v3中是否存在刷新或重置HTTP偵聽器及其關聯線程池的機制?
由於這是在向本地主機的同一服務器上的curl請求上發生的,因此我認為可以排除網絡問題。
使用的端口直接與Glassfish通信。 調用方和應用服務器之間沒有代理(如Apache或Nginx)。
我應該在Glassfish中啟用日志記錄或監視設置,以觀察HTTP偵聽器相對於應用程序和網絡堆棧的作用嗎?
我混淆了一些顯示症狀的示例:
Glassfish訪問日志:
"0:0:0:0:0:0:0:1" "NULL-AUTH-USER" "25/Oct/2018:11:21:02 -0500" "GET /api/obfuscated/by/me HTTP/1.1" 200 9002
對該調用的卷曲響應:
* Trying OFBBFUSCATED
* Connected to hostname.local (OFBBFUSCATED) port 11080 (#0)
> GET /api/obfuscated/by/me HTTP/1.1
> Host: hostname.local:11080
> User-Agent: curl/7.43.0
> Accept: */*
> Authorization: Basic asdfdsfsdfdsfsdafsdafsdafw==
>
* Empty reply from server
* Connection #0 to host hostname.local left intact
更新我更改了HTTP網絡偵聽器的超時設置。 我將其從30秒提高到了35秒,因為我看到一個數據包捕獲,其中該應用在30秒后發送了FIN。 進行更改后,它又開始工作。
目前尚不清楚這是否以某種方式沖洗或重置了某些東西,或者我是否處於某種競賽狀態。
明顯的根本原因是運行這些服務的系統上的I / O高。 這些應用程序通常使用50MB /秒的速度,一個新的過程將其使用速度提高到250MB /秒。 解決I / O問題后,所有HTTP錯誤都會消失,並且不會再出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.