Glassfish

Windows 上的 GlassFish 與 RedHat

  • October 19, 2009

我有一個基本的三層 Web 應用程序,我想使用 GlassFish。假設管理員技能相同,主機作業系統是 Windows 2003 Server 還是 RedhHat 有什麼區別?

由於 Windows 文件鎖定問題,您遲早會在 Win2K3 上部署時遇到問題。但是您將學會解決它 - 一種或另一種方式。

另請參閱問題:

在其他條件相同的情況下,我不會選擇 Windows 作為 glassfish 的伺服器作業系統,但我也不會強烈建議反對 Win2K3。

我第二個fredarin。來自我在 SO 上發布的答案的欺騙:

0 票否決

如果您檢查 glassfish 源,特別是 ./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.java,您會看到 Glassfish 為刪除/重命名而經歷的所有扭曲Windows 上的文件和目錄。

這是一個 Windows 問題,它限制刪除和重命名打開的文件。

裡面有各種各樣的技巧,包括多次從 JVM 請求 GC 以希望關閉文件流、“偽”重命名、休眠嘗試循環。

一些例子:

/**
*Attempts to delete files that could not be deleted earlier and were not overwritten.
*<p>
*On Windows, the method requests garbage collection which may unlock locked
*files. (The JarFile finalizer closes the file.)

/*
    *On Windows, as long as not all leftover files have been cleaned and we have not
    *run the max. number of retries, try again to trigger gc and delete
    *each remaining leftover file.
    */

/**
* Windows has BIG issues renaming a directory that is open somnewhere -- e.g. if
* a DOS box is opened anywhere in that directory.
* This method will try to do a "virtual renaming" if there are problems
* I.e. it attempts to do a simple rename, if that fails it will copy everything under
* the original directory to the renamed directory.  Then it will delete everything
* under the original directory that the OS will allow it to.

在實踐中,這有時會轉化為 Windows 上的部署或重新部署,因為某些文件無法刪除或移動,最終會被遺忘。在我執行的所有 Glassfish 實例中,我在 Solaris 10 上從未遇到過問題,並且在 Windows 上總是遇到與此相關的問題。

簡而言之,任何 *NIX 都會因為這個原因而變得更好,除了其他平台管理員的考慮。

引用自:https://serverfault.com/questions/19841