2009-06-04 15 views

Odpowiedz

3

Uważam, że większość ludzi będzie dyskutować z firmą Redhat za pośrednictwem Windowsa o niezawodność. Sam Glassfish powinien działać tak samo.

Powinieneś raczej zapytać o to Server Fault

16

Jeśli zaznaczysz GlassFish źródła, specjalnie ./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.java, będziesz zobacz wszystkie wykrzywienia, które przechodzi Glassfish, aby usunąć/zmienić nazwy plików i katalogów w systemie Windows.

Jest to problem z systemem Windows, z ograniczeniami usuwania i zmieniania nazw otwartych plików.

Istnieje wiele rodzajów sztuczek, w tym wielokrotne żądanie przesłania GC z JVM w nadziei zamknięcia strumienia plików, "pseudo" zmiana nazwy, pętle sleep-try.

Kilka przykładów:

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

W praktyce czasami przekłada się borked wdrożeń lub przesunięć w systemie Windows, ponieważ niektóre pliki nie mogą być usuwane lub przenoszone i kończy się pozostać w tyle. Z 50 lub podobnych instancji Glassfish, z których korzystam, nigdy nie miałem problemu z Solaris 10 i zawsze mam problemy z tym związane w systemie Windows.

W skrócie, każdy * NIX będzie lepszy tylko z tego powodu, poza innymi względami administratora platformy.