2014-03-26 81 views
10

我在GlassFish服務器上的java中部署了2個Web應用程序。我正在使用Glassfish Server 3.1.2.2。他們都有從他們接收http請求的java servlet頁面,代碼也是相同的,只有不同的參數(針對不同的客戶端)。第一個很好,另一個處理http請求的時間很長。之後,我注意到下一件事:GRIZZLY0023 Glassfish警告

我在Netbeans的Glassfish輸出中不斷得到這個警告。

WARNING: GRIZZLY0023: Interrupting idle Thread: http-thread-pool-9990 

任何人都可以解釋爲什麼我得到這個警告,以及如何解決它。

回答

12

如果HTTP請求超時,則會發生此警告。 Glassfish默認超時時間爲15分鐘

這可能發生在不同的情況下,例如,當一個請求調用一個在超時時間內沒有返回任何響應的長時間運行的動作時,如果通過HTTPS向服務器發出一個請求並且它只支持HTTP(反之亦然),或者如果沒有可用的連接在HTTP連接池中。

你的情況中的具體原因只能被猜測,但通常這個問題的一個解決方案是增加默認的HTTP請求超時。您可以在GlassFish管理GUI下這個值(http://localhost:4848):

server-config - >Network Config - >Network Listeners - ><your listener>

領域Request Timeout設置爲900(15分鐘),在默認情況下,只是增加該值。不幸的是,您不能將其設置爲-1,因爲Glassfish 3.1.2以來沒有限制。

您也可以與asadmin工具這樣設置:

asadmin set configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.request-timeout-seconds=x 
+0

我的請求超時設置爲-1(沒有限制),在我的GlassFish和問題就消失了。謝謝您的幫助。 – AdrianES

4

當服務器處於空閒狀態發生這種情況。當服務器在一段時間處於閒置狀態,然後它開始產生

GRIZZLY0023:中斷空閒線程:在日誌文件中

警告,我們要重新啓動服務器。我們在Glassfish 3.1.2.2 build 5中觀察到了這一點。我們從未在較老的Glassfish中觀察到這一點。

這表明GF 3.1.2.2版本中存在一些錯誤。

+0

我們的確切版本有同樣的問題。但玻璃魚不應該殺死連接。這個參數還有什麼想法,以及爲什麼它不會消除閒置連接? – jan

+1

我們觀察到,只有當服務器不在調試模式下運行時,纔會發生這種情況!這就是爲什麼我們只在生產中看到這一點,而不是在測試中。 – jan

+0

我會第二次@jan說,如此令人沮喪,只有當*不*在調試模式時纔會發生。 –

1

您需要在GlassFish管理,以增加或禁用請求超時

server-config -> Network Config -> Network Listeners -> <LISTENER> -> HTTP 

值-1將禁用它。

在測試:GlassFish應用服務器版3.1.2.2