
У меня есть базовое трехуровневое веб-приложение, и я хочу использовать GlassFish. Предполагая те же навыки администратора, есть ли разница в том, будет ли хостовая ОС Windows 2003 Server или RedhHat?
решение1
Рано или поздно вы, вероятно, столкнетесь с проблемами при развертывании на Win2K3 из-за проблем с блокировкой файлов Windows. Но вы научитесь обходить это — так или иначе.
Также смэтотвопрос:
При прочих равных условиях я бы не стал выбирать Windows в качестве серверной ОС для Glassfish, но и не стал бы категорически против Win2K3.
решение2
Я поддерживаю fredarin. Дубликат ответа, который я разместил на SO:
0 голосов «против»
Если вы проверите исходный код Glassfish, а именно ./appserv-commons/src/java/com/sun/enterprise/util/io/FileUtils.java, вы увидите все искажения, которые применяет Glassfish для удаления/переименования файлов и каталогов в Windows.
Это проблема Windows с ее ограничениями на удаление и переименование открытых файлов.
Там есть всевозможные трюки, включая многократный запрос GC из JVM в надежде закрыть поток файлов, «псевдо» переименование, циклы sleep-try.
Некоторые примеры:
/**
*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
Я не уверен, что есть какие-то большие различия, если предположить, что спецификации одинаковы. Я слышал, как некоторые администраторы говорят, что запуск Application Client Container (ACC) быстрее на Linux.