![]() 上一页 |
使用触发器选项卡可以管理满足特定条件时触发事件的规则。这是一种无需持续地监视应用程序即可跟踪运行时问题的有用方法。
触发器选项卡分为以下面板:
触发规则:列出所有现有规则,可用于添加、重命名、删除、导入、导出规则、重置回默认规则集、激活和停用规则。
规则详细信息:选择规则时,此面板显示以下子选项卡:
条件:选择触发规则时所在的属性和值。
操作:选择应由规则触发的事件。
约束条件:选择激活规则时的时间约束条件。
以灰色显示的规则在监视的 JVM 中不可用。默认情况下,停用所有规则。要激活某个规则,请选中该规则旁边的复选框。
要添加新触发规则,请执行以下操作:
在触发规则面板上,单击添加。
在添加新规则向导的第一步中,选择用于触发规则的属性。单击下一步。
设置触发规则的条件。此步骤包含以下设置:
最大触发值 (对于数值属性) 或匹配字符串 (对于非数值属性):指定用于触发规则的选定属性的最大值或匹配字符串。
持续时间:指定条件必须保持为“真”以触发规则的持续时间 (秒)。
限制时间段:指定可以接下来再次触发规则所要经过的最短时间长度 (秒)。
满足条件时触发:选择是否在满足条件时触发规则。例如,如果触发值设置为 100,则在值从小于 100 更改为 100 或更高值时触发规则。
根据条件恢复时触发:选择是否当不再满足条件时触发规则。例如,如果触发值设置为 100,则在值从 100 或更高值更改为 100 时触发规则。
单击下一步。
选择希望在规则触发时发生的操作。根据操作,可能需要提供其他数据。可用的操作包括:
应用程序预警:在 Java Mission Control 中显示预警对话框。
控制台输出:将通知发送到启动 JMX 控制台的控制台 (命令提示) 的标准输出 (stdout)。
转储飞行记录:将最后指定时段 (秒) 的飞行记录中可用的全部数据转储到 JFR 文件。
HPROF 转储:启动到指定 HPROF 文件的内存转储。
调用诊断命令:调用指定的诊断命令,通过附加或覆盖结果将输出记录到指定的 LOG 文件。
记录到文件:将通知写入到指定的 TXT 日志文件。
发送电子邮件:通过电子邮件发送通知。可以配置 SMTP 服务器地址和端口、电子邮件的接收方和发送方并提供 SSL 身份证明 (如果需要安全连接)。
启动连续飞行记录:启动连续飞行记录。
启动限时飞行记录:启动飞行记录,在指定的时段 (秒) 之后将结果转储到 JFR 文件中。
单击下一步以继续,或者单击完成以按原样添加规则。
(可选) 如果希望规则仅在特定日期、每周的星期几或者每天的时间激活,则选择时间约束条件。单击下一步。
(可选) 选择规则应该属于的组或者指定新组。指定规则的名称和详细的说明。
可以返回向导中任意以前的步骤以修改任意设置。单击完成可将规则添加到列表中。
要编辑规则,请在触发规则面板中选择该规则。右侧的规则详细资料面板显示三个子选项卡,其中提供触发规则的属性和值、规则所触发的操作以及希望什么时间激活规则的时间约束条件。
要重命名规则,请在触发规则面板上选择该规则,然后单击重命名。接下来为规则提供新名称,然后单击确定。
如果不希望触发规则,则可以在触发规则面板中取消选中规则旁边的复选框来停用该规则。不过,如果您确定不会再次使用该规则,则可以选择该规则,然后单击删除以将其从列表中彻底删除。
要将一组规则导出到 XML 文件,请在触发规则面板中单击导出。接下来选择要导出的规则,指定文件名,然后单击确定。要从 XML 文件导入一组规则,请在触发规则面板中单击导入,选择文件,然后单击确定。
要重置回默认的规则集,请在触发规则面板中单击重置并进行确认。这将覆盖所有规则并使用默认集替换它们。
每次触发带有应用程序预警操作的活动规则时,对应的预警将添加到“触发预警”窗口中。每次重新启动 Java Mission Control 时将重置已触发应用程序预警的列表。
要打开“触发预警”窗口,请执行以下操作之一:
打开窗口菜单并选择预警。
将 JMX 控制台连接到任意 JVM,打开触发器选项卡,然后单击预警。
“触发预警”窗口列出自 Java Mission Control 启动并连接到 JVM 以来,已经为 JVM 触发的所有应用程序预警。预警的列表包含以下列:
日期:触发预警的日期。
时间:触发预警的时间。
规则:触发预警的规则的名称。
源:触发了预警的 JVM 连接在 JVM 浏览器中显示的名称。对于远程 JVM 连接,此字段包含 IP 地址和端口号。
在列表中选择预警的时候,其详细信息显示在列表下方的字段中。根据所选操作事件显示不同的信息。
使用显示关于预警的对话框复选框可以切换是否希望只要触发了应用程序预警就打开“触发预警”窗口。
要清除触发的应用程序预警列表,请单击清除。或者,只要重新启动 Java Mission Control 就会清除列表。