专业化管理 > 站点维护 > Windchill MBean
  
Windchill MBean
如前面所述,可从 JMX 客户端 (例如 JConsole) 的 com.ptc 节点访问 Windchill MBean。在树中选择 Windchill MBean 会显示和该 MBean 相关的信息。
以下部分将介绍一些较为重要的 Windchill MBean。所含的 MBean 按字母顺序以升序列出,对于出现在 JMX 客户端树显示的 Monitors 节点下方的 MBean,将包含名称 (Monitors)
ActiveUsers (Monitors)
ActiveUsers MBean 显示当前系统中活动用户的相关信息。
以下属性提供活动用户的信息:
属性
说明
ActiveUserCount
登录正在处理此信息的 MBean 请求的方法服务器节点的唯一用户数量。
ActiveUsers
登录正在处理此信息的请求的方法服务器节点的用户的用户名列表。
TotalActiveUserCount
登录任何方法服务器节点的唯一用户数量。如果您的系统只有一个方法服务器,则此数量与 ActiveUserCount 属性中显示的数量相同。
TotalActiveUsers
登录任何方法服务器节点的用户的用户名列表。
由于 Windchill 中没有注销功能,因此已登录的用户除非在指定的时间段 (默认情况下为 30 分钟) 内没有操作记录,否则会一直被认为是活动用户。经过指定时间后若没有进行任何操作,用户将被从活动用户列表中移除,活动用户数将减少一个。存储在 wt.properties 中的 wt.session.sessionUsers.timeout 属性用于控制超时时间。
此外,审计报告可以提供指定时间段内访问过 Windchill 的用户数量的历史记录。审计服务在数据库中记录登录/注销审计事件信息,在使用报告中显示用户信息。有关审计和使用报告的信息,请参阅关于审计管理
此外,审计报告可以提供指定时间段内访问过 Windchill 的用户数量的历史记录。审计服务在数据库中记录登录/注销审计事件信息,在使用报告中显示用户信息。有关审计和使用报告的信息,请参阅“Windchill 帮助中心”提供的审计联机帮助。
DirContexts (Monitors)
DirContexts MBean 监控系统发出的 JNDI 请求。其用途与 servlet 请求和方法上下文监控 MBean 类似。通过 Loader MBean 控制 MethodServers MBean 的存在性、生命周期和配置永久性。
Dumper
Dumper MBean 提供:
将堆栈追踪、所有或选定 MBean 的属性 MBean (以 XML 形式) 或文本文件内容转储到 jconsole 中的新窗口的操作。
通过电子邮件将任意数据发送到单个电子邮件地址或 Emailer MBean 管理的邮件列表的操作。
提供将 XSLT 样式表应用到 MBean 属性 XML 的功能。
执行实际电子邮件发送的 Emailer MBean。
默认用于 MBean 属性 XML 样式定制的 DefaultXsltStylesheet 属性,它可能是文件、URL 或对 XSLT 样式表的 Java 资源路径引用。出厂时此属性默认为简单 XSLT 样式表,该样式表能生成容易阅读的 HTML。
Emailer
Emailer MBean 提供:
所有其他 MBean 都可使用的基础电子邮件发送功能。
当要在任何 Java 进程中都可使用这些电子邮件发送功能时,它们不使用 Windchill 的永久队列;然而,它们确实会在后台发送电子邮件,同时提供了一个重试功能,即允许在放弃 (并将错误写入日志) 之前,按照可配置的间隔,以可配置次数重新发送某个消息。
管理电子邮件列表,以供其他 MBean 用于向一组电子邮件地址发送电子邮件。
在 jconsole 中的 Emailer MBean 之下嵌套显示的 EmailList MBeans 对这些电子邮件列表进行了描述。
用于配置要使用的适当电子邮件服务器、端口等的属性。
默认情况下从 wt.properties 或 Java 系统属性中读取这些属性,但可在此处对其进行覆盖。
要配置 EmailList,请参阅设置 JMX 环境中的“填充 Jmx-administrators 列表”一节。
GarbageCollection (Monitors)
GarbageCollection MBean 在可配置的持续时间间隔内监控花费在无用单元收集上的总体时间百分比。如果该值超过可配置的阈值,系统会发送 JMX 通知。
IeCalls (Monitors)
IeCalls MBean 提供有关传出 Info*Engine 调用的总计统计信息。通过 Loader MBean 控制 IeCalls MBean 的存在性、生命周期和配置永久性。
IeContexts (Monitors)
IeContexts MBean 监控方法服务器正在处理的 Info*Engine 请求。其用途与 servlet 请求和方法上下文监控 MBean 类似。通过 Loader MBean 控制 IeContexts MBean 的存在性、生命周期和配置永久性。
InfoEngine
InfoEngine MBean 是 Info*Engine 系统的根 MBean,其中显示了服务 bean 和其他管理信息 bean。Loader MBean 管理此 MBean。
加载程序
Loader MBean 可检测对配置文件进行的更改、卸载现有 MBean 以及从文件实例化新的 MBean。系统不会自动检测对 MBean 进行的更改,也不会随时自动/定期保存 MBean。
实际上,如果管理员要保存他们所做的配置更改以使其扩展到服务器 JVM 的寿命期之外,他们可以随意使用保存操作。有关详细信息,请参阅使用 Loader MBean 保存配置更改
日志记录
Logging MBean 提供检查和动态更改 log4j 日志记录配置的功能。
Logging MBean 本身能检测 log4j 配置文件的更改并应用更改后的配置。它无法将通过 JMX 作出的 log4j 配置更改保存回日志记录配置文件。通过 JMX 进行的日志记录配置更改仅用于目标 JVM 的寿命期。
要对日志文件进行永久更改,请参阅使用 Mbean 处理日志文件获得详细说明。
wt.logs.dir (LogsDirViewers)
wt.logs.dir MBean 生成用于查看/跟踪并通过电子邮件发送位于 Windchill logs 目录 (及其子目录) 中的日志文件的 MBean。目的是为旧 (非 log4j) 日志提供基本功能。
目前在服务器管理器、方法服务器和 servlet 引擎进程中实例化 wt.logs.dir MBean。
* 
表示日志目录及其子目录的 MBean (包括 wt.logs.dir MBean 本身) 不轮询相应目录中的更改,而是显式使用 MBean 上的“刷新”操作来查看更改。
Memory (Monitors)
Memory MBean 允许为各种内存池设置百分比阈值。它也允许设置总体内存使用百分比阈值并定期检查是否超出该阈值。当超出阈值时,系统会发送 JMX 通知。它还允许通过其属性检查当前百分比使用值。
MethodContexts (Monitors)
MethodContexts MBean 监控方法服务器方法上下文,因此只在方法服务器中实例化。
使用此 MBean 来确定将哪些数据记录在方法服务器中。
默认情况下,将为 ContextLoggerOutputAttributes 设置以下值:
StartTime, Id, ParentId, IeContextIds, ServletRequestId, UserName,
RemoteAddr, TargetClass, TargetMethod, AccessLogDetail, Redirects,
JDBCQueryCalls, ElapsedJDBCSeconds, ElapsedTotalCpuSeconds, ElapsedTotalSeconds
* 
如果选取修改输出属性,请注意获取通过 Windchill 追踪任何内容所需的数据,必须在 ContextLoggerOutputAttributes 中包括 IeContextIds 和 ServletRequestId。
如果将 ContextLoggerLevel 设置为 INFO,则以下为方法服务器日志中的示例输出 (为了适合页面进行了格式调整):
2010-12-30 14:55:10,246 INFO [RMI TCP Connection(23)-132.253.12.51]
wt.method.MethodContextMonitor.contexts.rmi wcadmin - 2010-12-30 20:55:09.715
+0000, 10wdulv;gic4vdn7;5780;cplas;9, -, -, -, wcadmin, 132.253.12.51,
wt.query.template.ReportTemplateHelper$Server, hasModifyAccess, ,
0, 1, 0.233122646, 0.03125, 0.530067928
在本例中,未显示数据字段名称,因为默认的短格式会忽略名称以避免在日志条目中重复输出它们。(您可以使用 MethodContextMonitor MBean 或 Performance Feedback Settings 更改默认设置。)
本例中包括以下各项 (在记录器时间、日志事件级别、线程、记录器名称和当前用户的通用信息之后):
StartTime - 方法上下文的开始时间:2010-12-30 20:55:09.715 +0000
Id - 方法上下文 ID:10wdulv;gic4vdn7;5780;cplas;9
请注意,分隔符为逗号。分号视为 contextId 字符串的一部分。
ParentId - 父方法上下文的 ID:无 (-)
IeContextIds - 关联的 Info*Engine 上下文 ID:无 (-)
ServletRequestId - 关联的 servlet 请求 ID:无 (-)
UserName - 调用方法上下文的用户的名称:wcadmin
RemoteAddr - 方法上下文调用的远程 IP 地址:132.253.12.51
TargetClass - 目标类:wt.query.template.ReportTemplateHelper$Server
TargetMethod - 目标方法:hasModifyAccess
AccessLogDetail - 其他详细信息:无
Redirects - 调用被重新定向的次数:0
JDBCQueryCalls - JDBC 查询调用计数:1
ElapsedJDBCSeconds - JDBC 调用花费的时间:0.233122646
ElapsedTotalCpuSeconds - 方法上下文使用的 CPU 时间:0.03125
ElapsedTotalSeconds - 方法上下文的运行时间:0.530067928
* 
Operations 节点中,可以使用 captureActiveContexts 按钮捕获运行上下文。然后,它们将在 MethodContexts MBean 下显示。
审阅系统性能时,方法服务器日志中通过 wt.method.MethodContextMonitor.stats.summary 提供的统计汇总非常有用。例如,方法服务器日志中的以下示例输出 (为适应页面进行了格式调整) 显示在指定时间间隔 (由 ElapsedSeconds 标识) 内使用方法服务器的活动方法上下文的相关信息:
2010-12-10 17:48:50,290 INFO [wt.jmx.core.SharedScheduledExecutor.worker]
wt.method.MethodContextMonitor.stats.summary Administrator -
ElapsedSeconds=600.008322566, CompletedContexts=630, ErrorCount=0,
RedirectCount=0, ContextSecondsAverage=0.3671603731396825,
ContextSecondsMax=42.013152789, ContextCpuSecondsAverage=0.03640873015873016,
ContextUserSecondsAverage=0.03318452380952381,
ContextJDBCConnWaitSecondsAverage=1.294644634920635E-4,
ActiveContextsAverage=0.38546599761132355,
ActiveContextsMax=10, ActiveContextsStart=0, ActiveContextsEnd=0,
AverageJDBCCallsPerContext=3.212698412698413,
AverageJNDICallsPerContext=0.009523809523809525,
PercentageOfContextTimeInJDBCCalls=10.215606919069739,
PercentageOfContextTimeInJDBCConnWait=0.03526101207082334,
PercentageOfContextTimeInJNDICalls=0.008320770340035786
此日志条目中很多项的意义都一目了然。以下列表提供了一些其他信息:
CompletedContexts 指示在指定的时间间隔内完成执行的方法上下文的数量。
ContextCpuSecondsAverage 指示上下文使用的平均 CPU 秒数。
ActiveContextsAverage 提供该时间间隔的活动上下文的平均数量。
ContextSecondsMax 指示在该时间间隔内任何上下文执行所使用的最长秒数。
ActiveContextsMax 指示在该时间间隔内同时执行的最大上下文数量。
ActiveContextsStart 指示该时间间隔开始时执行的上下文的数量。
ActiveContextsEnd 指示该时间间隔结束时执行的上下文的数量。
MethodServer
MethodServer MBean 提供某些顶层方法服务器信息的简短摘要。此 MBean 仅用于方法服务器。
MethodServers (Monitors)
MethodServers MBean 仅在服务器管理器中实例化,并通过它管理的子 MBean 提供有关服务器管理器的方法服务器的信息。
默认情况下,这些子 MBean 会将所有的 MBean 从相应的方法服务器 JVM 代理到服务器管理器 JVM (作为嵌套的 MBean) 中,从而使管理员只需连接到服务器管理器就可以轻松地管理并监控服务器管理器及其所有方法服务器的详细信息。每个代表方法服务器的 MBean 还显示 RemoteJmxUrl 属性,该属性提供了可用于将 JMX 客户端直接连接到给定方法服务器的 JMX URL。
如果发生以下情况,MethodServers MBean 将激发 JMX 通知:
注册方法服务器
移除方法服务器
与方法服务器的 JMX 连接丢失。
通过 Loader MBean 控制 MethodServers MBean 的存在性、生命周期和配置永久性。
NotificationHandlers
NotificationHandlers MBean 允许创建和管理 NotificationHandler MBean。通过 Loader MBean 控制 NotificationHandlers MBean 的存在性、生命周期和配置永久性。
NotificationHandler MBean 允许管理员指定日志记录和/或通过电子邮件发送根据 JMX 通知的具体值所采取的操作。通过筛选所需的通知类型,可以对一个或多个 MBean 进行监听。当系统发出指定包含在日志和电子邮件之内的通知时,管理员可以指定其他数据以从生成该通知的 MBean 或其他 MBean 中查询。
注意事项:
MBean 通过 ObjectName 语法 (准确的 ObjectName 或 ObjectName 模式) 来引用。有关详细信息,请参阅 ObjectName 文档。另请注意,JConsole 在 MBeanInfo 表上提供了各个 MBean 的 ObjectName,选择 MBean 时 MBeanInfo 表会在右侧窗格中显示。
若未提供电子邮件主题,则系统会在接收通知时通过该通知的消息和其他数据自动生成主题。
使用 "attributeName.fieldName" 语法,可以通过 "*" 或复合数据属性内的字段指定多个属性。
NotificationHandler MBean 的日志级别是少数几个实际为永久属性的记录器级别属性之一 (意味着 JVM 重新启动时它可以被重新应用)。在其他大多数情况中,此类属性仅为允许各个 JVM 会话调整和覆盖到 log4j 日志级别的快捷方式。此处可设置例外以使新通知处理程序的动态创建和指定更加容易。
ProcessCpuTime
ProcessCpuTime MBean 监控在上一个可配置的时间间隔内目标进程所消耗的总体 CPU 时间的百分比。如果该度量超过可配置的阈值,系统会发送 JMX 通知。
属性
Properties MBean 显示当前 WTProperties 设置,为您提供一种修改属性值的方法。出厂时它在所有服务器 JVM 中实例化。
* 
所做更改将写入 site.xconf 文件,并使用更改内容重新生成所影响的属性文件。重新生成的属性文件用来在下次重新启动系统时设置系统属性。有关详细信息,请参阅使用 Mbean 修改特性值
PropertiesManager
PropertiesManager MBean 显示属性文件,为文件中的设置提供只读视图。出厂时它在所有服务器 JVM 中实例化。
Queues (Monitors)
此 MBean 在后台方法服务器中实例化并提供队列管理和监控。它不由 Loader MBean 管理。另请参阅使用 MBean 审阅队列属性
Reporting System
Reporting System MBean 定期对 Cognos 执行 ping 操作 (当其安装并启用时) 和报告其可用性,包括发生系统可用性更改时提供通知。它还显示针对该情况的多种管理操作。
此 MBean 可在 servlet 引擎和方法服务器 JVM 中部署,但默认情况下只部署在 servlet 引擎中。通过 Loader MBean 控制 Reporting System MBean 的存在性、生命周期和配置永久性。
RMICalls (Monitors)
RMICalls MBean 提供有关对 Windchill 方法服务器调用的所有和“最近”的传出 RMI 调用的数量和在该时间范围内花费的平均时间的统计信息。
ServerManager
ServerManager MBean 提供某些顶层服务器管理器统计信息的简短摘要。它用于服务器管理器。
ServerManager (Monitors)
此 MBean 出现于 jconsole 的“监视器”分组中,这一点和 ServerManager MBean 出现在分组之外有所不同。此 MBean 在 servlet 引擎中运行并通过 ping 操作来监控本地服务器管理器。它提供 ping 统计信息、服务器管理器状态更改通知和启动、停止及重新启动本地服务器管理器的操作。
ServletRequests (Monitors)
ServletRequests MBean 监控 servlet 请求,因此只在 servlet 引擎中实例化。对于嵌入了 Tomcat 的方法服务器,ServletRequests MBean 位于以下方法服务器节点下:
com.ptc > WebbAppContexts > <webAppName> > Monitors
使用此 MBean 的属性,您可以设置用以收集统计信息的记录器级别。下表显示了可收集统计信息的级别:
统计信息分组
说明
总计
web 应用程序启动以后所累积的统计信息。
基线
在上次调用 resetBaselineStatistics() 操作之后 (如果从未调用此操作,则在 web 应用程序启动时之后) 所累积的统计信息。
汇总
在 SummaryIntervalSeconds 属性指定的时间间隔内累积的统计信息。系统会记录汇总统计信息但并不将其反映在 MBean 属性中。
最近
在 RecentIntervalSeconds 属性指定的时间间隔内累积的统计信息。在每个测量间隔结束时更新相应的 Recent* MBean 属性。
请求
用于单个 servlet 请求的数据。
* 
通过为此 MBean 中的 RequestLoggerOutputAttributes 和 StatisticLoggerOutputAttributes 设置值,您可以设置跟踪哪些 servlet 请求以及收集哪些统计信息。
* 
要追踪某个用户会话到方法服务器中,可将 RequestLoggerLevel 设置为 INFO,并在 RequestLoggerOutputAttributes 中设置 ID 和 SessionID。
* 
RequestLoggerUseShortFormat 属性控制着是否将“属性名称”预定为日志中的值。如果将列标题置于 Excel 形式,则可以将其设置为 false 并能够更轻松地导入数据进行分析。
* 
从方法服务器下的 Operations 节点中,可以使用 captureActiveContexts 按钮捕获运行上下文。然后,捕获到的上下文将在 ServletRequests MBean 下显示。
ServletRequests MBean 也提供 MaxAverageActiveRequestsThreshold 属性。如果在某个汇总统计信息间隔内平均 (并发) 活动请求数超出了此阈值,系统会发送 JMX 通知。有关通知的信息,请参阅设置 JMX 环境
ServletSessions (Monitors)
ServletSessions MBean 监控 servlet 会话,因此只会在 servlet 引擎中实例化。
ServletSessions MBean 提供的功能与 ServletRequest MBean 的功能相似,只是针对 servlet 会话而不是 servlet 请求。一个不同之处在于 ServletSessions MBean 不提供“捕获”操作。您可以将 SessionRegistrationEnabled 属性设置为 true,从而使之后的新会话通过嵌套的 Session MBean 来表示。
汇总
Summaries MBean 与 NotificationHandlers MBean 非常类似。它允许创建并管理 Summary MBean,通过该 MBean 您可以定期地将从一个或多个 MBean 中搜集的属性写入日志。因此 Summary MBean 与 NotificationHandler MBean 非常类似,不同之处在于其触发器是计时器而不是通知,并且该触发器可能的结果只能是日志记录,而不是电子邮件发送。
PTC 提供了一个名为 wt.summary.general 的出厂设置汇总 MBean,它进行了实例化,以提供汇总基本 JVM 统计信息的相关信息。
* 
PTC 建议您至少应始终包括默认情况下提供的日志汇总信息,以便记录一天中系统的执行情况。然后,排除系统健康状况和性能问题时可添加至信息,或原样使用它。
IntervalSeconds 属性的值确定此汇总的记录频率。默认值设置为 600 秒。这意味着每隔 10 分钟就会将以下类似条目添加到方法服务器日志中:
2010-12-10 17:48:54,501 INFO [wt.jmx.core.SharedScheduledExecutor.worker]
wt.summary.general Administrator - JVMName=4668@JMHOLLE03L,
HeapMemoryUsage=255381976, NonHeapMemoryUsage=136583088, Uptime=1518824,
ProcessCpuTime=199546875000, JITCTime=82080,
GarbageCollectors=[PS MarkSweep,PS Scavenge], GCTime=[3148,3217],
GCCount=[5,44], Classes=20148, Threads=83, TotalStartedThreadCount=465,
PermGenPercentCollUsage=40.03666542671822, PermGenPercentUsage=40.03666542671822
下表介绍了出厂设置汇总中包含的各项:
说明
JVMName
JVM 的内部名称。
HeapMemoryUsage
堆内存使用情况 (以字节为单位)。
NonHeapMemoryUsage
与堆不相关的内存使用情况 (以字节为单位)
Uptime
自系统启动以来的毫秒数。
ProcessCpuTime
进程占用的 CPU 时间 (以纳秒为单位)。
JITCTime
Just In Time 编译器花费的时间 (以毫秒为单位)
GarbageCollectors
当前无用单元收集器的列表 (在本例中为 Copy 和 MarkSweepCompact)
GCTime
每个无用单元收集器所花费的时间的列表。时间以毫秒为单位,按照 GarbageCollectors 项中无用单元收集器的相同列出顺序列出。在该示例中,5201 是 Copy 无用单元收集器所花费的时间,而 34411 是 MarkSweepCompact 无用单元收集器所花费的时间。
GCCount
每个无用单元收集器的无用单元收集器活动数量的列表。数量按照 GarbageCollectors 项中无用单元收集器的相同列出顺序列出。在该示例中,121 是 Copy 无用单元收集器活动的数量,而 60 是 MarkSweepCompact 无用单元收集器活动的数量。
Classes
加载系统的类的数量。
Threads
此 Java 进程中活动线程的数量。
TotalStartedThreadCount
从启动 Java 进程起在该进程中启动的线程的数量。
PermGenPercentCollUsage
最后一次无用单元收集结束时使用的永久保存区域百分比。
PermGenPercentUsage
添加此日志条目时使用的永久保存区域百分比。
Support
Support MBean 可提供简单直观的操作用于将日志和 JMX MBean 数据发送至 PTC 技术支持。Support MBean 操作会将已发送的信息与现有技术支持呼叫号关联起来。通过 Loader MBean 控制 Support MBean 的存在性、生命周期和配置永久性。
有关用于将数据发送到 PTC 技术支持的所有操作的信息,请参阅发送系统信息的操作
TopSQL (监控器)
TopSQL MBean 监控从方法服务器中的 Windchill 持续层发出的 SQL 调用。在每段时间间隔内,此 MBean 都会跟踪最费时的 SQL 语句 (依据总运行时间)。
如果某个 SQL 语句调用次数较多或总运行时间较长,则还会捕获典型状态追踪,以帮助确定应用程序的哪部分正在执行调用。
TopSQL 监控配置由 Loader MBean 控制。
UserSpecified (Monitors)
UserSpecified Monitors MBean 允许 (管理) 用户创建自己的 javax.management.monitors.Monitor 的多种内置 Java 子类的实例,这些实例随后将通过 UserSpecified Monitors MBean 来管理和保留。
可通过 UserSpecified Monitors MBean 上的操作来创建监视器实例,而监视器实例的进一步配置可通过其自身 (也是 MBean) 的属性和操作来完成。在出厂设置中,UserSpecified Monitors MBean 在所有服务器 JVM 中实例化。
VaultSites
VaultSites MBean 监控 Windchill 存储站点对于 HTTP(S) 请求的可访问性。它定期向所有站点 (包括其自身) 发送短且简单的 "ping" 请求,并记录结果。通过 SiteStatusInfo 属性可获得总的统计信息和上次 ping 结果。当某站点未响应 ping 操作时将生成 JMX 通知。
默认情况下 VaultSites MBean 被部署到方法服务器之中;文件存储服务需要该部署。
WebAppContexts
WebAppContexts MBean 仅在 servlet 引擎中实例化,它为整个 Web 应用程序提供顶层信息节点。WebAppContexts MBean 只能在嵌入了 Tomcat 的方法服务器中通过以下节点获取:
com.ptc > WebbAppContexts
WindchillVersion
WindchillVersion MBean 提供 Windchill 版本信息的摘要,包括产品、修补程序和已安装的区域设置支持。通过 Loader MBean 控制 WindchillVersion MBean 的存在性、生命周期和配置永久性。
WrappedSockets
WrappedSockets MBean 让用户可以看到 Windchill "WrappedSocket" RMI 套接字的数目和通过其发送和接收的字节数。当前它在方法服务器和服务器管理器进程中实例化。