Windows 上的 GlassFish 与 RedHat

Windows 上的 GlassFish 与 RedHat

我有一个基本的三层 Web 应用程序,我想使用 GlassFish。假设管理技能相同,主机操作系统是 Windows 2003 Server 还是 RedhHat 有什么区别?

答案1

由于 Windows 文件锁定问题,您在 Win2K3 上部署时迟早会遇到问题。但无论如何,您都会学会解决它。

另请参阅问题:

在其他条件相同的情况下,我不会选择 Windows 作为 glassfish 的服务器操作系统,但我也不强烈建议不要使用 Win2K3。

答案2

我支持 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 都会仅因为这个原因而变得更好。

答案3

假设规格相同,我不确定是否存在任何巨大差异。我听一些管理员说在 Linux 上运行应用程序客户端容器 (ACC) 速度更快。

相关内容