cle_clock
Home > wikikonf >  was/actions/by kikonf > jvm







Jvm

print

Action : was.jvm   (Category : was, Name : jvm, By : kikonf)
Complete Name : was.jvm.by.kikonf
Version : 5.0        License : Modified BSD License

Purpose of the was category :
Easy to customize. This category use in background the wsadmin command in jython mode (through AdminConfig, AdminControl and AdminTask), to drive WebSphere Application Server configuration.
You can use it to manage the whole WebSphere architecture.

Purpose of this jvm plugin : Tune one JVM characteristics

The following shows the Descriptor File for the Action : was.jvm

Toggle lines
<!-- Copyright (c) 2008, Patrick Germain Placidoux                          -->
<!-- All rights reserved.                                                   -->
<!--                                                                        -->
<!-- This file is part of Kikonf Public Software.                           -->
<!--                                                                        -->
<!-- Kikonf Public Software is released under the modified BSD License,     -->
<!-- which should accompany it or any part of it in the file "COPYING".     -->
<!-- If you do not have this file you can access the license                -->
<!-- through the WWW at http://www.kikonf.org/license/bsd/license.txt.      -->
<!--                                                                        -->
<!-- Home page: http://www.kikonf.org                                       -->
<!-- Contact: kikonf@gmx.com                                                -->
<!-- ====================================================================== -->
<!--                                                                        -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->
<!-- UPDATE     |     DATE     |   CODE   |  REASON                         -->
<!-- ====================================================================== -->
<!--            |              |          |                                 -->
<!--                                                                        -->
<!--                                                                        -->
<!-- ====================================================================== -->


<!-- *value : stands for default value. -->
<!-- Any attribute that has a default value do not need to be set (even if it is required) ! -->
<!-- Attributes : type, software, version are reserved and must not be set. -->
<!-- Attributes : version is set by the Parser engine. -->
<!-- If the Attribute value starts by { and end by }, its content will be CoolTyped. -->
<!-- -->
<!-- -->
<!-- Attributes and texts values between {} are evaluated using the wk formalism. -->
<!-- Here is a snapshot of the wk formalism: -->
<!-- ... -->
<!-- The wk formalism can be writen using too syntaxes: -->
<!-- Either the python syntax: -->
<!--    version = "{ -->
<!--        '*value': 7.0, -->
<!--        '*ge': 6.1, -->
<!--        '*le': 7.9, -->
<!--        '*required': True -->
<!--    }" -->
<!--    equivalente to (skipping no line): -->
<!--    version = "{'*value': 7.0, '*ge': 6.1, '*le':7.9, '*required': 'True'}" -->
<!-- Or the CoolTyping syntax: -->
<!--    version = '{\ -->
<!--        *value:7.0,\ -->
<!--        *ge:6.1,\ -->
<!--        *le:7.9,\ -->
<!--        *required:True\ -->
<!--    }' -->
<!--    This is the same shape but without ' nor ". -->
<!--    Easiest to write as long as we dont bother anymore about ' nor ". -->
<!--    The CoolTyping engine will deduct for us the python inner types -->
<!--    They deducted from what they obviously seems like. -->
<!--    Ex: *value becomes a python string. -->
<!--        7.0 becomes a python float. -->
<!--        True becomes a python bool. -->
<!--    Be aware that this syntax supports no space between special character like : {}, (), : and ,. -->
<!-- If the expression contain at least one ', it's assume to be using the python syntax. -->


<!-- temp_dir: If temp_dir is set all WAS temporary files go there (dervlet scratch dir, this jvm workspace dir, java.io.temp, ...).            -->
<!--    Some time you may not want to flood your regular Application server logs (stdout) with HA (DCS protocol) messages or free your network. -->
<!--    In this case you may want to disable WAS HA Manager.                                                                                    -->
<!-- ha: Beware that doing this, you disable any mechanism relaying on HA                                                                       -->
<!--    (session memoryTomemory replication, cache replication, cross server transaction recovering, ...)                                      -->


<jvm
    type = '{\
        *eq:action,\
        *required:True,\
        *display:False\
    }'
    bal = '{*display:False}'
    sub_type = '{\
        *value:configuration,\
        *eq:configuration,\
        *required:True,\
        *deny:True,\
        *display:False\
    }'
    softwares = "{
        '*type':'dict',
        '*dtype':
            {
                'was':
                {
                    '*ge':'6.1',
                    '*le':'7.9',
                    '*required':True
                }
            },
        '*deny':True, 
        '*display':False
    }"
    
    xms = '{\
        *value:256,\
        *type:int,\
        *required:True,\
        *help:%lang/action.was.en/jvm.xms.help,\
        *lhelp:%lang/action.was.en/jvm.xms.lhelp\
    }' 
    xmx = '{\
        *value:512,\
        *type:int,\
        *required:True,\
        *help:%lang/action.was.en/jvm.xmx.help,\
        *lhelp:%lang/action.was.en/jvm.xmx.lhelp\
    }' 
    run_hprof = '{\
        *value:false,\
        *checkIn:(false,true),\
        *required:True,\
        *help:%lang/action.was.en/jvm.run_hprof.help,\
        *lhelp:%lang/action.was.en/jvm.run_hprof.lhelp\
    }' 
    disable_jit = '{\
        *value:false,\
        *checkIn:(false,true),\
        *required:True,\
        *help:%lang/action.was.en/jvm.disable_jit.help,\
        *lhelp:%lang/action.was.en/jvm.disable_jit.lhelp\
    }' 
    temp_dir='{*type:str,*help:%lang/action.was.en/jvm.temp_dir.help,*lhelp:%lang/action.was.en/jvm.temp_dir.lhelp}'
    ha='{*value:true,*checkIn:(false,true),*required:True,*type:str,*help:%lang/action.was.en/jvm.ha.help,*lhelp:%lang/action.was.en/jvm.ha.lhelp}'
    plugin_max_con='{*value:50,*type:int,*help:%lang/action.was.en/jvm.plugin_max_con.help,*lhelp:%lang/action.was.en/jvm.plugin_max_con.lhelp}'
    user='{*type:str,*help:%lang/action.was.en/jvm.user.help,*lhelp:%lang/action.was.en/jvm.user.lhelp}'
    group='{*type:str,*help:%lang/action.was.en/jvm.group.help,*lhelp:%lang/action.was.en/jvm.group.lhelp}'
    __wk__='{\
        *help:%lang/action.was.en/jvm.help,\
        *lhelp:%lang/action.was.en/jvm.lhelp\
    }'
    >

    <scope 
        node = '{*required:True}'
        server = '{*required:True}'
        __wk__='{\
            *eq:1,\
            *help:%lang/action.was.en/scope.help,\
            *lhelp:%lang/action.was.en/scope.lhelp\
        }'
    />
        
    <verbose
        cl='{\
            *value:false,\
            *checkIn:(false,true),\
            *required:True,\
            *help:%lang/action.was.en/jvm.verbose.cl.help,\
            *lhelp:%lang/action.was.en/jvm.verbose.cl.lhelp\
        }' 
        gc = '{\
            *value:false,\
            *checkIn:(false,true),\
            *required:True,\
            *help:%lang/action.was.en/jvm.verbose.gc.help,\
            *lhelp:%lang/action.was.en/jvm.verbose.gc.lhelp\
        }' 
        jni = '{\
            *value:false,\
            *checkIn:(false,true),\
            *required:True,\
            *help:%lang/action.was.en/jvm.verbose.jni.help,\
            *lhelp:%lang/action.was.en/jvm.verbose.jni.lhelp\
        }'    
        __wk__ = '{*le:1}'
    />

    <classpath __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.classpath.help}'>
        {*type:str}
    </classpath>

    <boot_classpath __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.boot_classpath.help}'>
        {*type:str}
    </boot_classpath>

    <debug_args enable='{*value:false,*checkIn:(false,true)}' __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.debug_args.help,*lhelp:%lang/action.was.en/jvm.debug_args.lhelp}'> 
        {'*type': 'str', '*value' : '-Djava.compiler=NONE -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777'}    
    </debug_args>
    
    <generic_jvm_args __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.generic_jvm_args.help,*lhelp:%lang/action.was.en/jvm.generic_jvm_args.lhelp}'>
        {*type:str}
    </generic_jvm_args>

    <hprof_args __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.hprof_args.help,*lhelp:%lang/action.was.en/jvm.hprof_args.lhelp}'>
        {*type:str}    
    </hprof_args>

    <system_props __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.system_props.help}'>
        <property
            name = '{\
                *required:True\
            }'
            value = '{\
                *required:True\
            }'
        />
    </system_props>     
    
    <!-- Some helpful time outs, handable to have them here, as long they are not considered to be not significant enougth to justify a separated action. -->
    <timouts tran_timout='{*value:120,*type:int,*required:True}' orb_req_timout='{*value:180,*type:int,*required:True}' orb_locale_req_timout='{*value:180,*type:int,*required:True}' __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.timouts.help,*lhelp:%lang/action.was.en/jvm.timouts.lhelp}'/>

    <!-- extlibs: refers to shared classes loaded at the extension classloader level. -->
    <extlibs __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.extlibs.help,*lhelp:%lang/action.was.en/jvm.extlibs.lhelp}'>
        {*type:str}
    </extlibs>
    
    <gc __wk__ = '{*le:1}'>
        <explicitgc disable='{*value:false,*checkIn:(false,true),*required:True}' __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.gc.explicitgc.help,*lhelp:%lang/action.was.en/jvm.gc.explicitgc.lhelp}'/>
        <policy type='{*value:optthruput,*checkIn:(gencon,optthruput,optavgpause),*required:True}' __wk__ = '{*le:1,*help:%lang/action.was.en/jvm.gc.policy.help,*lhelp:%lang/action.was.en/jvm.gc.policy.lhelp}'>
            <!-- The gencon tag works only with policy type=gencon.                                             -->
            <!-- Gencon is a generational garbadge, wich splits the heap in two parts.                          -->
            <!-- A new segment for quickly collected short lived objects                                        -->
            <!-- and a old segment for old lived objects.                                                       -->
            <!-- xmns set initial new space size.                                                               -->
            <!-- xmnx set maximum new space size.                                                               -->
            <!-- xmos set initial old space size.                                                               -->
            <!-- xmox set maximum old space size.                                                               -->
            <!-- Notes:                                                                                         -->
            <!-- Run java (TM) -X, on Ibm (TM) jdk 5 for more information.                                      -->
            <!-- Default values are set to Xmns, Xmnx, Xmo, Xmos just because they are need to make it work,    -->
            <!-- when gencon tag is present. You should adjust to your own setting to meet your requirements.   -->
            <gencon xmns='{*value:128,*type:int}'  xmnx='{*value:256,*type:int}' xmos='{*value:128,*type:int}' xmox='{*value:768,*type:int}' __wk__ = '{*le:1}'/>
        </policy>
        
        <!-- If you want the gc to run in background put the number of threads. -->
        <threads number='{*value:0,*type:int,*required:True}' __wk__ = '{*le:1}'/>
    </gc>

    <!-- You may like to use shared_classes to save heap accross jvms. -->
    <shared_classes 
        enable = '{*value:false,*checkIn:(false,true),*required:True}'
        name = '{*required:True,\
            *help:%lang/action.was.en/jvm.shared_classes.name.help,\
            *lhelp:%lang/action.was.en/jvm.shared_classes.name.lhelp}'
        required = '{*value:false,*checkIn:(false,true),*required:True}' 
        control_dir = '{*required:True}'
        size = '{*value:0,*type:int,*required:True}'
        __wk__ = '{*le:1,\
            *help:%lang/action.was.en/jvm.shared_classes.help,\
            *lhelp:%lang/action.was.en/jvm.shared_classes.lhelp\
        }'
    /> 

</jvm>


<!-- Trademarks:                                                                     -->
<!-- ___________                                                                     -->
<!-- IBM is a  registred trademark of International Business Machines Corporation.   -->
<!-- Oracle and Java are registred trademarks of Oracle and/or its affiliates.       -->
<!--                                                                                 -->
<!-- Other names may be trademarks of their respective owners.                       -->
							
(Source: <KIKONF_INSTALLATION_DIR>/plugins/actions/was/jvm/by/kikonf/ACT_INF/action.xml)


A descriptor file is a WYSISWYG xsd like schema, wich describes what are the supported Tags, Attributes and Attributes values for one Action.
The special Attributes : type, sub_type, bal, softwares, __wk__ are reserved by Kikonf.

The table below summarizes the informations provided by the was.jvm Descriptor File :

/jvm>   Tune one JVM characteristics
Name Default Type Required Denied Help
xms 256 int True   Tune the JVM Minimum Memory
xmx 512 int True   Tune the JVM Maximum Memory
run_hprof false (false, true) True   Enable the Hprof Profiler
disable_jit false (false, true) True   Disable the Just in Time Compiler
temp_dir   str     Set the JVM temporary directory
ha true (false, true) True   Disabling the High Availability (DCS Protocol)
plugin_max_con 50 int     Tune the plugin Max Connections
user   str     Set the user process of the JVM
group   str     Set the group process of the JVM

/jvm/scope>   A scope refers to a Name Space where to create the resource
Required:True
Name Default Type Required Denied Help
node     True    
server     True    

/jvm/verbose>  
Name Default Type Required Denied Help
cl false (false, true) True   Enable verbose Class loading
gc false (false, true) True   Enable verbose Garbadge Collector
jni false (false, true) True   Enable verbose JNI

/jvm/classpath>   Set the Standard class Path

/jvm/boot_classpath>   Set the Boot Strap Class Path

/jvm/debug_args>   Set the JVM Debug Arguments
Name Default Type Required Denied Help
enable false (false, true)      

/jvm/generic_jvm_args>   Add extra Agument to the java command

/jvm/hprof_args>   Provide Hprof Arguments to the JVM

/jvm/system_props>   Add System Porperties

/jvm/system_props/property>  
Name Default Type Required Denied Help
name     True    
value     True    

/jvm/timouts>   Tune a set of timeouts
Name Default Type Required Denied Help
tran_timout 120 int True    
orb_req_timout 180 int True    
orb_locale_req_timout 180 int True    

/jvm/extlibs>   Add external libraries

/jvm/gc>  

/jvm/gc/explicitgc>   Disable Explicite Garbadge Collection
Name Default Type Required Denied Help
disable false (false, true) True    

/jvm/gc/policy>   Fine grain tune the Garbadge Collector behaviour
Name Default Type Required Denied Help
type optthruput (gencon, optthruput, optavgpause) True    

/jvm/gc/policy/gencon>  
Name Default Type Required Denied Help
xmns 128 int      
xmnx 256 int      
xmos 128 int      
xmox 768 int      

/jvm/gc/threads>  
Name Default Type Required Denied Help
number 0 int True    

/jvm/shared_classes>   Enable Shared Classes
Name Default Type Required Denied Help
enable false (false, true) True    
name     True   The Shared Classes name.
required false (false, true) True    
control_dir     True    
size 0 int True    



Trademarks :
  • "IBM", "WebSphere", "WebSphere Aplication Server", "WAS" are registred trademarks of International Business Machines Corporation.
  • "Java" and "JVM" are a registred trademarks of Oracle and/or its affiliates.
  • Other names may be trademarks of their respective owners.

Copyright © 2011 - Patrick Placidoux, Hélène Malamoud