2009-06-04 10 views

Respuesta

3

Creo que encontrará que la mayoría de la gente discute Redhat sobre Windows para mayor confiabilidad. Glassfish en sí debería funcionar igual en cualquiera de los dos.

Usted probablemente debería pedir esto en Server Fault

16

Si marca la fuente glassfish, específicamente ./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.java, podrás ver todas las contorsiones que Glassfish atraviesa para eliminar/renombrar archivos y directorios en Windows.

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

Hay todo tipo de trucos, incluso solicitar un GC de la JVM varias veces con la esperanza de cerrar la secuencia de archivos, el cambio de nombre "pseudo", los bucles sleep-try.

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 borked despliegues o redistribuciones en Windows, ya que algunos archivos no se pueden eliminar o mover y llegar a ser dejado atrás. De las 50 o más instancias de Glassfish que corro, nunca he tenido un problema en Solaris 10 y siempre tengo problemas relacionados con esto en Windows.

En resumen, cualquier * NIX será mejor solo por esta razón, aparte de otras consideraciones administrativas de la plataforma.