Mac OS X: Yosemite 10.10.5
長5倍直到最近我一直在使用:Glassfish的/似鯖水狼牙魚:爲什麼會大量Web應用程序部署到GlassFish-4.1.1(或似鯖水狼牙魚服務器4.1.1.163)採取比Glassfish的4.1
NetBeans8.1beta
Glassfish4.1
Mojarra 2.2.7
使用我最近調查:
NetBeans8.1
Glassfish4.1.1
Mojarra 2.2.12.
具有非常大的JSF Web應用程序(與ObjectDB爲JPA持久性提供者)我遇到大規模再部署時間,從而Glassfish4.1.1(超過10分鐘)比到Glassfish 4.1(約2分鐘)。這大約慢了5倍。
[編輯:2016年9月13日試圖與似鯖水狼牙魚163全(似鯖水狼牙魚服務器4.1.1.163),它用了20分鐘,比Glassfish4.1.1更慢,用幾乎相同的設置]
我不可能在這裏複製或提供大型網絡應用程序的例子。
Q1:有沒有人經歷與GlassFish 4.1和Glassfish-4.1.1 之間的相似,區別[編輯:或似鯖水狼牙魚服務器4.1.1.163],並在那裏我我可能尋找差異點?
(我已經嘗試使用NetBeans Profiler來研究它,但它不轉向了這麼容易還沒有找到原因。)
[編輯: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名稱聲明OK:
[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:我還能做些什麼來發現它爲什麼在那裏暫停/拖延了很久?
嘗試設置服務器的日誌記錄以先調試並檢查/比較時間 – Kukeltje
我在您的問題中沒有看到任何與'logging/timing'信息相關的JSF。 – Kukeltje
@Kukeltje在最近的時間診斷(現在包含在問題中)顯示它被「卡住」或「拖延」的時候,JSF確實可能不相關,我將刪除JSF標籤。 –