使用 wsadmin 脚本编制来配置 HPEL

可以使用 wsadmin 脚本编制来配置高性能可扩展日志记录 (HPEL) 日志和跟踪框架。 使用本主题中的示例作为构建您自己 wsadmin 脚本的指南。

有关此任务

与基本方式相比,HPEL 提供处理速度更快的日志和跟踪功能以及更灵活的方式来使用日志和跟踪内容。 您可以使用管理控制台或 wsadmin 脚本编制来配置 HPEL 方式。 本主题中的示例说明如何使用 wsadmin 来配置 HPEL。 如果使用 Deployment Manager 来完成此任务,那么您可能需要在目标节点上同步节点代理程序,然后重新启动服务器,以使配置更改生效。
表 1. 变量名 此表适用于本主题中的所有示例。 所有示例均使用 Jython 脚本编制语言。
变量 描述
mycell 单元的名称
myNode 节点的主机名
myserver 服务器的名称

过程

  • 使用 AdminConfig 对象来配置 HPEL。

    对于使用 AdminConfig 对象进行的更改,将在您下次启动服务器时生效。

    1. 更改跟踪规范。

      以下示例表明如何将跟踪规范更改为 *=info:com.ibm.ws.classloader.*=all

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      AdminConfig.modify(HPELService, "[[startupTraceSpec *=info:com.ibm.ws.classloader.*=all]]")
      AdminConfig.save()
    2. 更改日志存储库的大小。

      以下示例表明如何设置 HPEL 以在存储库大小接近 65 MB 时自动从日志存储库中删除最旧的内容。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      HPELLog = AdminConfig.list("HPELLog", HPELService)
      AdminConfig.modify(HPELLog, "[[purgeMaxSize 65]]")
      AdminConfig.save()
    3. 更改日志存储库位置。

      以下示例说明如何将 HPEL 日志存储库目录名称更改为 /tmp/myDirectory。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      HPELLog = AdminConfig.list("HPELLog", HPELService)
      AdminConfig.modify(HPELLog, "[[dataDirectory  /tmp/myDirectory]]")
      AdminConfig.save()
    4. 禁用日志记录缓冲区。

      以下示例说明如何将 HPEL 日志存储库更改为不使用日志记录缓冲区。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      HPELLog = AdminConfig.list("HPELLog", HPELService)
      AdminConfig.modify(HPELLog, "[[bufferingEnabled false]]")
      AdminConfig.save()
      
      最佳实践: 在几乎所有情况下启用日志记录缓冲。 仅当服务器发生意外故障并且在停止之前无法将已缓冲的内容写至磁盘时,才应该禁用日志记录缓冲。
    5. 每天在指定时间开始写入到新日志文件。

      以下示例说明如何使 HPEL 日志存储库在每天下午 3 点启动新日志文件。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      HPELLog = AdminConfig.list("HPELLog", HPELService)
      AdminConfig.modify(HPELLog, "[[fileSwitchTime 15]]")
      AdminConfig.modify(HPELLog, "[[fileSwitchEnabled true]]")
      AdminConfig.save()
    6. 更改日志存储库的空间不足操作。

      以下示例说明如何更改 HPEL 日志存储库的空间不足操作。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELService = AdminConfig.getid("/Cell:myCell/Node:myNode/Server:myServer/
      HighPerformanceExtensibleLogging:/")
      HPELLog = AdminConfig.list("HPELLog", HPELService)
      AdminConfig.modify(HPELLog, "[[outOfSpaceAction PurgeOld]]")
      AdminConfig.save()
  • 使用 AdminControl 对象来配置 HPEL。
    您使用 AdminControl 对象进行的更改将立即生效。
    1. 更改跟踪规范。

      以下示例表明如何将跟踪规范更改为 *=info:com.ibm.ws.classloader.*=all

      HPELControlMBean = AdminControl.queryNames('cell=myCell,node=myNode,
      type=HPELControlService,process=myServer,*')
      AdminControl.setAttribute(HPELControlMBean, "traceSpecification", 
      "*=info:com.ibm.ws.classloader.*=all")
    2. 更改日志存储库的大小。

      以下示例表明如何设置 HPEL 以在存储库大小接近 65 MB 时自动从日志存储库中删除最旧的内容。 指定 HPELTraceDataService 或 HPELTextLogService(而非 HPELLogDataService)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELLogDataMBean = AdminControl.queryNames('cell=myCell,
      node=myNode,type=HPELLogDataService,process=myServer,*')
      AdminControl.setAttribute(HPELLogDataMBean, "purgeMaxSize", "65")
    3. 更改日志存储库位置。

      以下示例说明如何将 HPEL 日志存储库目录名称更改为 /tmp/myDirectory。 指定 HPELTraceDataService 或 HPELTextLogService(而非 HPELLogDataService)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELLogDataMBean = AdminControl.queryNames('cell=myCell,
      node=myNode,type=HPELLogDataService,process=myServer,*')
      AdminControl.setAttribute(HPELLogDataMBean, "dataDirectory", "/tmp/myDirectory")
    4. 禁用日志记录缓冲区。

      以下示例说明如何将 HPEL 日志存储库更改为不使用日志记录缓冲区。 指定 HPELTraceDataService 或 HPELTextLogService(而非 HPELLogDataService)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELLogDataMBean = AdminControl.queryNames('cell=myCell,node=myNode,
      type=HPELLogDataService,process=myServer,*')
      AdminControl.setAttribute(HPELLogDataMBean, "bufferingEnabled", "false")
      最佳实践: 在几乎所有情况下启用日志记录缓冲。 仅当服务器发生意外故障并且在停止之前无法将已缓冲的内容写至磁盘时,才应该禁用日志记录缓冲。
    5. 每天在指定时间开始写入到新日志文件。

      以下示例说明如何使 HPEL 日志存储库在每天下午 3 点启动新日志文件。 指定 HPELTrace 或 HPELTextLog(而非 HPELLog)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELLogDataMBean = AdminControl.queryNames('cell=myCell,node=myNode,
      type=HPELLogDataService,process=myServer,*')
      AdminControl.setAttribute(HPELLogDataMBean, "fileSwitchTime", "15")
      AdminControl.setAttribute(HPELLogDataMBean, "fileSwitchEnabled", "true")
    6. 更改日志存储库的空间不足操作。

      以下示例说明如何更改 HPEL 日志存储库的空间不足操作。 指定 HPELTraceDataService 或 HPELTextLogService(而非 HPELLogDataService)以更改 HPEL 跟踪存储库或 HPEL 文本日志的设置。

      HPELLogDataMBean = AdminControl.queryNames('cell=myCell,node=myNode,
      type=HPELLogDataService,process=myServer,*')
      AdminControl.setAttribute(HPELLogDataMBean, "outOfSpaceAction", "PurgeOld")

结果

现在已配置了 HPEL。 如果您使用 AdminConfig 命令进行了更改,请重新启动服务器以使更改生效。