专业化管理 > 站点维护 > WindchillMBean > MethodContexts (Monitors)
  
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 指示该时间间隔结束时执行的上下文的数量。