Mac OS X: Yosemite 10.10.5
最近まで私は使用してきました:
NetBeans8.1beta
Glassfish4.1
Mojarra 2.2.7
私は最近、以下を使用して調査しました。
NetBeans8.1
Glassfish4.1.1
Mojarra 2.2.12.
非常に大きな JSF Web アプリ (JPA 永続化プロバイダーとして ObjectDB を使用) では、Glassfish4.1 (約 2 分) よりも Glassfish4.1.1 (10 分以上) へのデプロイ時間が大幅に長くなります。それは約5倍遅いです。
[編集: 2016-09-13 Payara 163 Full (Payara Server 4.1.1.163) で試したところ、Glassfish4.1.1 よりもさらに遅く、ほぼ同じ設定で 20 分以上かかりました]
ここで再現したり、大規模な Web アプリの例を提供したりすることはできません。
Q1: Glassfish-4.1 と Glassfish-4.1.1 [編集: または Payara Server 4.1.1.163]の間で同様の違いを経験した人はいますか?違いのポイントはどこで探すことができますか?
(私はすでに NetBeans Profiler を使用して調査しようとしていますが、原因を見つけるのはまだ簡単ではありません。)
[編集: 2016 年 9 月 15 日のタイミング テスト]
スクリーンキャストの記録を使用して慎重に並べて比較し、ログのタイミングと比較しました。
Payara41 (4.1.1.163) と Glassfish4.1.1 では、以下に示すように約 10 分間「スタック」します。問題が発生した場所で 1 行の出力を提供するログ設定が見つかりませんでした。 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: 何年もの間そこで一時停止/失速している理由を調べるには、他に何ができますか?