Network Deployment (Distributed operating systems), v8.0 > Scripting the application serving environment (wsadmin) > Configure servers with scripting


Limiting the growth of JVM log files using scripting

We can use scripting to configure the size of Java virtual machine (JVM) log files. JVM logs record events or information from a running JVM.

There are two ways to perform this task. This topic demonstrates how to use the AdminConfig object to modify your server configuration. Alternatively, you can use the configureJavaProcessLogs Jython script in the AdminServerManagement script library to configure the JVM log settings. The wsadmin tool automatically loads the script when the tool starts. Use the following syntax to configure JVM log settings using the configureJavaProcessLogs script:

AdminServerManagement.configureJavaProcessLogs(nodeName, serverName, processLogRoot, otherAttributeList)
For additional information and argument definitions, see the documentation for the AdminServerMananagment script library.


Procedure

  1. Start wsadmin.sh.

  2. Identify the application server of interest.

    Determine the configuration ID of the application server of interest and assign it to the server1 variable:

      ### Jacl

      set s1 [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
      

      ### Jython

      s1 = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/')
      print s1
      
      where:

    Example output:

    server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
    

  3. Identify the stream log of interest.

    Determine the stream log of interest and assign it to the log variable. The following example identifies the output stream log:

      ### Jacl

      set log [$AdminConfig showAttribute $s1 outputStreamRedirect]
      

      ### Jython

      log = AdminConfig.showAttribute(s1, 'outputStreamRedirect')
      

    The following example identifies the error stream log:

      ### Jacl

      set log [$AdminConfig showAttribute $s1 errorStreamRedirect]
      

      ### Jython

      log = AdminConfig.showAttribute(s1, 'errorStreamRedirect')
      

    Example output:

    (cells/mycell/nodes/mynode/servers/server1|server.xml#StreamRedirect_2)
    

  4. List the current values of the stream log.

    Use the following example to display the current values of the stream log of interest:

      ### Jacl

      $AdminConfig show $log
      

      ### Jython

      AdminConfig.show(log)
      

    Example output:

    {baseHour 24}
    {fileName ${SERVER_LOG_ROOT}/SystemOut.log}
    {formatWrites true}
    {maxNumberOfBackupFiles 1}
    {messageFormatKind BASIC}
    {rolloverPeriod 24}
    {rolloverSize 1}
    {rolloverType SIZE}
    {suppressStackTrace false}
    {suppressWrites false}
    

  5. Modify the rotation policy for the stream log.

    The following example sets the rotation log file size to two megabytes:

      ### Jacl

      $AdminConfig modify $log {{rolloverSize 2}}
      

      ### Jython

      AdminConfig.modify(log, [['rolloverSize', 2]])
      

    The following example sets the rotation policy to manage itself. It is based on the age of the file with the rollover algorithm loaded at midnight, and the log file rolling over every 12 hours:

      ### Jacl

      $AdminConfig modify $log {{rolloverType TIME}
      {rolloverPeriod 12} {baseHour 24}}
      

      ### Jython

      AdminConfig.modify(log, [['rolloverType', 'TIME'],
      ['rolloverPeriod', 12], ['baseHour', 24]])
      

    The following example sets the log file to roll over based on both time and size:

      ### Jacl

      $AdminConfig modify $log {{rolloverType BOTH} {rolloverSize 2}
      {rolloverPeriod 12} {baseHour 24}}
      

      ### Jython

      AdminConfig.modify(log, [['rolloverType', 'BOTH'], ['rolloverSize', 2],
      ['rolloverPeriod', 12], ['baseHour', 24]])
      

  6. Save the configuration changes.

    Save the configuration changes:

    AdminConfig.save()
    

  7. In a network deployment environment only, synchronize the node.

    Use the syncActiveNode or syncNode scripts in the AdminNodeManagement script library to propagate the configuration changes to node or nodes.

    • Use the syncActiveNodes script to propagate the changes to each node in the cell:
      AdminNodeManagement.syncActiveNodes()
      

    • Use the syncNode script to propagate the changes to a specific node:
      AdminNodeManagement.syncNode("myNode")
      


Configure the JVM logs
Use the wsadmin scripting AdminConfig object for scripted administration


Related


Server settings configuration scripts
Java virtual machine (JVM) log settings
Commands for the AdminConfig object using wsadmin.sh

+

Search Tips   |   Advanced Search