WebSphere Liberty过多的启动时间

时间:2016-11-17 16:06:58

标签: startup websphere-liberty

我正在尝试配置IBM WebSphere Liberty服务器(16.0.0.3),以便我们的应用程序之一在那里运行,但除了明显不可靠之外,服务器还需要很长时间才能启动。 这在日志文件中很清楚:

[17-11-2016 15:54:16:231 GMT] 0000001c com.ibm.ws.webcontainer.security.ServletStartedListener      I CWWKS9122I:  For URL /* in application com.ibm.ws.jmx.connector.server.rest, the following HTTP methods are uncovered, and accessible: HEAD OPTIONS TRACE 
[17-11-2016 15:56:18:349 GMT] 0000001b org.jboss.weld.Event                                         I WELD-000411: Observer method [BackedAnnotatedMethod] public org.omnifaces.VetoAnnotatedTypeExtension.processAnnotatedType(@Observes ProcessAnnotatedType<T>) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.
[17-11-2016 15:56:19:798 GMT] 0000001b com.ibm.ws.ejbcontainer.osgi.internal.EJBRuntimeImpl         I CNTR4000I: The ALLPLEXEJBeans-v2.jar EJB module in the ECC application is starting.

正如你所看到的,将前两行分开超过2分钟,这是荒谬的,特别是考虑到它是一个非常小的应用程序。

在放弃Liberty个人资料之前,我该怎么做才能加快速度?

1 个答案:

答案 0 :(得分:4)

CDI是一种非常有用的跨领域技术,但作为其中的一部分,CDI引擎可能需要扫描应用程序中的每个类,以查看什么是CDI bean并且不是CDI bean以及解释其他注释等。

通过限制CDI扫描来改善Liberty启动时间

两种方法:

1。如果您希望在某些应用程序中使用CDI,而在其他应用程序中不使用

告诉CDI仅扫描包含 beans.xml 文件的应用程序。通过在服务器配置( server.xml )中包含它来禁用Liberty中的“隐式”bean归档

<cdi12 enableImplicitBeanArchives="false"/>

有关详细讨论,请参阅here

2。如果您根本不想使用CDI,请从服务器配置中删除CDI功能。

正如Brett Kail指出的那样,如果这是服务器中唯一的应用程序和/或您根本不需要或不需要CDI,则可以从cdi-1.2中完全删除<featureManager>功能。正如他也指出的那样,要注意webProfile-7.0javaee-7.0等功能,其中包含cdi-1.2功能。