技术文章 - CS290321
Windchill 的方法服务器需要 10-40 分钟才能启动。
已修改: 29-May-2026
适用于
- FlexPLM 11.0 to 13.0
- Windchill PDMLink 11.0 to 13.1
说明
- MethodServer 启动速度非常慢,或者即使过了很长时间应用程序也无法启动。
- Windchill 启动时卡在
Servlet engine ready; catalina.base=/opt/ptc/Windchill_11.0/Windchill/tomcat/instances/instance-8011 - 比较以下两行的时间戳可知,Tomcat 启动用了 30 分钟:
- 方法服务器启动速度非常慢,大约需要 600-700 秒。
- FlexPLM 启动并访问代码库中链接的图像文件夹需要近 9 个小时。
- 启用以下日志记录器后,可能会发现注释扫描速度较慢。
org.apache.tomcat.util.scan.StandardJarScanner ALL org.apache.catalina.startup.ContextConfig ALL - 根据文章CS115335 :如何在 Windchill 中使用 jstack 创建线程转储,在方法服务器启动期间捕获线程转储,展示了 Tomcat 启动期间的注解扫描:
Thread 27014: (state = IN_NATIVE) - java.io.UnixFileSystem.getBooleanAttributes0(java.io.File) @bci=0 (Compiled frame; information may be imprecise) - java.io.UnixFileSystem.getBooleanAttributes(java.io.File) @bci=2, line=242 (Compiled frame) - java.io.File.isDirectory() @bci=29, line=849 (Compiled frame) - org.apache.catalina.startup.ContextConfig. processAnnotationsFile (java.io.File, org.apache.tomcat.util.descriptor.web.WebXml, boolean) @bci=1, line=2021 (Compiled frame) - org.apache.catalina.startup.ContextConfig. processAnnotationsFile (java.io.File, org.apache.tomcat.util.descriptor.web.WebXml, boolean) @bci=93, line=2030 (Compiled frame) - org.apache.catalina.startup.ContextConfig. processAnnotationsFile (java.io.File, org.apache.tomcat.util.descriptor.web.WebXml, boolean) @bci=93, line=2030 (Interpreted frame) - org.apache.catalina.startup.ContextConfig. processAnnotationsUrl (java.net.URL, org.apache.tomcat.util.descriptor.web.WebXml, boolean) @bci=68, line=1972 (Interpreted frame) - org.apache.catalina.startup.ContextConfig. processAnnotations (java.util.Set, boolean) @bci=83, line=1923 (Interpreted frame) - org.apache.catalina.startup.ContextConfig.webConfig() @bci=210, line=1166 (Interpreted frame) - org.apache.catalina.startup.ContextConfig.configureStart() @bci=101, line=783 (Interpreted frame) - org.apache.catalina.startup.ContextConfig.lifecycleEvent(org.apache.catalina.LifecycleEvent) @bci=57, line=307 (Interpreted frame) - org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(java.lang.String, java.lang.Object) @bci=50, line=95 (Interpreted frame) - org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(java.lang.String, java.lang.Object) @bci=6, line=90 (Interpreted frame) - org.apache.catalina.core.StandardContext.startInternal() @bci=725, line=5212 (Interpreted frame) - org.apache.catalina.util.LifecycleBase.start() @bci=210, line=145 (Interpreted frame) - org.apache.catalina.core.ContainerBase.addChildInternal(org.apache.catalina.Container) @bci=170, line=753 (Interpreted frame) - org.apache.catalina.core.ContainerBase.addChild(org.apache.catalina.Container) @bci=26, line=729 (Interpreted frame) - org.apache.catalina.core.StandardHost.addChild(org.apache.catalina.Container) @bci=40, line=717 (Interpreted frame) - org.apache.catalina.startup.HostConfig.deployDescriptor(org.apache.catalina.util.ContextName, java.io.File) @bci=528, line=620 (Interpreted frame) - org.apache.catalina.startup.HostConfig$DeployDescriptor.run() @bci=113, line=1832 (Interpreted frame) - java.util.concurrent.Executors$RunnableAdapter.call() @bci=105, line=511 (Interpreted frame) - java.util.concurrent.FutureTask.run() @bci=194, line=266 (Interpreted frame) - java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=95, line=1142 (Interpreted frame) - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=106, line=617 (Interpreted frame) - java.lang.Thread.run() @bci=11, line=745 (Interpreted frame)
这是文章 290321 的 PDF 版本,可能已过期。最新版本 CS290321