2012-12-17 27 views
0

配置: 我們之前部署在Linux機器上的WebSphere Portal 6.1羣集(2)坐的iPlanet Web服務器。的WebSphere HTTP 500在複製10 GB的文件

當用戶試圖跨文件系統(NFS掛載)複製10 GB文件時,我們使用java運行時將文件複製到不同的NFS掛載,希望它比使用任何其他java庫。

proc = rt.exec("cp " + fileName + " " + outFileName); 

部署的應用程序是一個JSF portlet應用程序。
一)會話超時是應用程序服務器和應用程序
B)我們從客戶端頁面調用Ajax永葆

用戶接收3分鐘內HTTP 500會議60分鐘,而我們的日誌顯示該文件仍在複製。不確定爲什麼WebSphere發送HTTP 500?

10分鐘後,所以文件被複制,當他點擊刷新,他可以繼續。

不知道是什麼原因造成這個HTTP 500

回答

1

Web容器線程不應該被用於長期的任務。 3分鐘後他得到了500,因爲這是WebSphere決定掛起線程的時間。

你應該使用WorkManager來執行長期任務和客戶端可以輪詢,檢查任務的狀態做。

如果你考慮升級到WAS V8 /在不久的將來V8.5一個好主意,使用起來會Asynchronous Servlets

+0

謝謝你的迴應。 – napa77

1

您的客戶端幾分鐘可能發生於後收到HTTP 500錯誤的原因有幾個原因。如果沒有堆棧跟蹤和一些相關的日誌記錄,就不可能知道WebSphere內部的哪個組件在3分鐘後「醒來」並停止了所有事情。它可能是Web容器線程池的WebSphere超時設置,或者可能是其他一些超時 - 應該從日誌中輕鬆推斷出來。

爲了解決這個問題,您可以執行下列操作之一:

  • 調整相關的超時值(這也是取決於對超時它到底)。
  • 更改您的設計,以便在後臺執行長時間運行的任務。您可以使用WebSphere的Work Manager API或異步bean/servlet。