GlassFish en Windows frente a RedHat

GlassFish en Windows frente a RedHat

Tengo una aplicación web básica de tres niveles y quiero usar GlassFish. Suponiendo las mismas habilidades administrativas, ¿hay alguna diferencia entre que el sistema operativo host sea Windows 2003 Server o RedhHat?

Respuesta1

Tarde o temprano probablemente tendrá problemas al implementar en Win2K3 debido a problemas de bloqueo de archivos de Windows. Pero aprenderá a solucionarlo, de una forma u otra.

Ver tambiénestepregunta:

En igualdad de condiciones, no seleccionaría Windows como sistema operativo de servidor para Glassfish, pero tampoco desaconsejaría Win2K3.

Respuesta2

Yo segundo fredarin. Un engaño de una respuesta que publiqué en SO:

0 votos negativos

Si verifica la fuente de Glassfish, específicamente ./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.java, verá todas las contorsiones por las que pasa Glassfish para eliminar/cambiar el nombre. archivos y directorios en Windows.

Este es un problema de Windows, con sus restricciones para eliminar y cambiar el nombre de archivos abiertos.

Hay todo tipo de trucos, incluida la solicitud de un GC a la JVM varias veces con la esperanza de cerrar el flujo de archivos, el cambio de nombre "pseudo" y los bucles de prueba de suspensión.

Algunos ejemplos:

/**
 *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.

En la práctica, esto a veces se traduce en implementaciones o reimplementaciones fallidas en Windows, ya que algunos archivos no se pueden eliminar ni mover y terminan quedándose atrás. De todas las instancias de Glassfish que ejecuto, nunca he tenido problemas en Solaris 10 y siempre tengo problemas relacionados con esto en Windows.

En resumen, cualquier *NIX será mejor solo por esta razón, dejando de lado otras consideraciones del administrador de la plataforma.

Respuesta3

No estoy seguro de que haya grandes diferencias, suponiendo la misma especificación. He escuchado a algunos administradores decir que ejecutar Application Client Container (ACC) es más rápido en Linux.

información relacionada