2009-06-04 9 views

答えて

3

ほとんどの人が信頼性のためにWindows上でRedhatを主張すると思います。 Glassfish自体もどちらでも同じように動作する必要があります。あなたは具体的には、./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.javaをGlassFishのソースを確認した場合

あなたはおそらく、あなたがよ、Server Fault

16

でこれを頼む必要がありますGlassfishがWindows上のファイルやディレクトリの削除や名前を変更するために行うすべての歪みを参照してください。

これはWindowsの問題で、開いているファイルの削除と名前の変更に制限があります。

ファイルストリームを閉じるためにGCを複数回JVMから要求すること、「擬似」名前変更、スリープ・トゥループを含む、あらゆる種類のトリックがあります。

いくつかの例:実際には

/** 
*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上での展開や再デプロイをborkedに変換されます。私が走っているGlassfishのインスタンス数が50程度になると、Solaris 10で問題が発生することはありませんでしたが、これに関してはWindowsで常に問題があります。

要するに、* NIXはこの理由だけで、他のプラットフォームの管理上の考慮事項を除いて、より良いでしょう。

関連する問題