2016-02-28 17 views
0
Mac OS X: Yosemite 10.10.5 

До недавнего времени я использую:Glassfish/скумбриевидный гидролик: почему может развертывание большого веб-приложения для Glassfish-4.1.1 (или скумбриевидный гидролик сервер 4.1.1.163) не принимают в 5 раз больше, чем Glassfish-4.1

NetBeans8.1beta 
Glassfish4.1 
Mojarra 2.2.7 

Я недавно исследовали с помощью:

NetBeans8.1 
Glassfish4.1.1 
Mojarra 2.2.12. 

с очень большой JSF веб-приложение (с ObjectDB как JPA поставщика сохраняемости) я испытываю массивно раза больше развертывания для Glassfish4.1.1 (более 10 минут), чем пожаловать в Glassfish 4.1 (около 2 минут). Это примерно в 5 раз медленнее.

[EDIT: 2016-09-13 Пробовал с скумбриевидный гидролик 163 Full (скумбриевидный гидролик сервера 4.1.1.163), и потребовалось более 20 минут, даже медленнее, чем на Glassfish4.1.1, с почти идентичной установки]

Я не могу воспроизвести здесь или представить примеры большого веб-приложения.

Q1: Кто-нибудь испытывал какие-либо подобное различие между Glassfish-4,1 и Glassfish-4.1.1 [EDIT: ИЛИ скумбриевидный гидролик сервера 4.1.1.163], и где я мог бы я искать точки разница?

(я уже пытаюсь исследовать его с помощью Profiler NetBeans, но не оказываясь так легко, но, чтобы найти причину.)


[EDIT: 2016-09 -15 временные тесты]

Я проверил тщательное сравнение по сторонам, используя запись в режиме скринкаста и сравнивая с таймингами в журнале.

В Payara41 (4.1.1.163) и Glassfish4.1.1 он «застревает», как показано ниже, в течение примерно 10 минут, и я не нашел никаких настроек журнала, которые дают здесь одну строку вывода, где возникает проблема, и запуск сервера в режиме DEBUG также не дает никакой дополнительной информации.

[2016-09-14T23:02:53.450+1000] [Payara 4.1] [INFO] [NCLS-LOGGING-00009] [javax.enterprise.logging] [tid: _ThreadID=19 _ThreadName=RunLevelControllerThread-1473858173343] [timeMillis: 1473858173450] [levelValue: 800] [[ 
    Running Payara Version: Payara Server 4.1.1.163 #badassfish (build 215)]] 

... работает нормально, через все шаги, а затем через десятки этих EJB JNDI деклараций имя:

[2016-09-14T23:03:48.823+1000] [Payara 4.1] [INFO] [AS-EJB-00054] [javax.enterprise.ejb.container] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858228823] [levelValue: 800] [[ 
    Portable JNDI names for EJB BeanName: [java:global/app-name/BeanName!com.example.BeanName, java:global/app-name/BeanName]]] 

дает эту WELD версия сообщение:

[2016-09-14T23:03:48.875+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Version] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858228875] [levelValue: 800] [[ 
    WELD-000900: 2.3.5 (Final)]] 

... потом занимает около 8 секунд до этого сообщения.

[2016-09-14T23:03:56.666+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Event] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858236666] [levelValue: 800] [[ 
WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.]] 

... Затем возьмите много минут (обычно около 10 минут) перед возобновлением этих иначе безвредные предупреждения ..

[2016-09-14T23:11:33.387+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Bootstrap] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858693387] [levelValue: 800] [[ 
WELD-001125: Illegal bean type java.util.Comparator<javax.persistence.metamodel.EntityType<?>> ignored on [EnhancedAnnotatedTypeImpl] public static class com.example.ElementManager$EntityTypeSorter]] 

[2016-09-14T23:11:59.736+1000] [Payara 4.1] [WARNING] [] [org.glassfish.jersey.internal.Errors] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858719736] [levelValue: 900] [[ 
The following warnings have been detected: WARNING: Parameter 1 of type T from public void com.example.NumberProperty.setDefaultValue(T) is not resolvable to a concrete type. 

]]

Подобные предупреждающие сообщения происходят в журнале Glassfish4.1, но нет длительной паузы/удержания.

Q2: Что еще я могу сделать, чтобы узнать, почему он приостанавливается/останавливается там целую вечность?

+0

Попробуйте установить регистрацию сервера для отладки в первую очередь и проверить/сравнить тайминги – Kukeltje

+0

Я не вижу ничего, что связано с JSF в информации о регистрации/времени в вашем вопросе. – Kukeltje

+0

@ Kukeltje В момент, когда недавняя диагностика времени (теперь включена в вопрос) показывает, что он «застрял» или «киосков», JSF действительно не подходит, я удалю тег JSF. –

ответ

1

Благодаря подробной помощи from the Payara team У меня есть ответ.

Настройки максимальной кучи были разными между моей старой установкой Glassfish4.1 (-Xmx2048m) и новыми установками Glassfish4.1.1 и Payara41 (-Xmx512m). При создании модели базы данных проекта веб-приложения при запуске она достигла предела в 512 м кучи и вызвала чрезмерную сборку мусора (как показал JVisualVM), что значительно замедляло развертывание.

я уже эти, как во время выполнения VMargs для проекта NetBeans веб-приложения:

-Xms2048m -Xmx2048m 

Но по установке NetBeans8.1 (с Glassfish4.1.1), а затем Payara41, я забыл также соответствовать это на новых серверах, чтобы освободить место для этого. При увеличении максимальной кучи и фиксированного минимума время развертывания составляет около 2 минут как для Glassfish4.1.1, так и для Payara41.

 Смежные вопросы

  • Нет связанных вопросов^_^