Glassfish
Windows 上的 GlassFish 與 RedHat
我有一個基本的三層 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 都會因為這個原因而變得更好,除了其他平台管理員的考慮。