|
|
|
|
|
Tp
Action : was.tp (Category : was, Name : tp, By : kikonf)
Complete Name : was.tp.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 tp plugin : Tune a Thread Pool The following shows the main Source Code File for the Action : was.tp 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: http://www.kikonf.org
## Contact: kikonf@gmx.com
from actions.was.tools import *
class Tp(wasAction):
def extract(self, scope_attrs=None, name=None, **keywords):
scope_id, scope_attrs, scope=self.getScope(scope_attrs=scope_attrs, indent=self.getIndent())
self.verbose(scope_attrs, name=name)
indent=self.getIndent() + 3*' '
found=False
cmdvalues=[]
verbose('ThreadPoolManager listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
tps=getStartByNameAsDict(split(AdminConfig.showAttribute(AdminConfig.list('ThreadPoolManager', scope_id), 'threadPools')))
for tpname in tps.keys():
if name!=None and tpname==name \
or name==None:
verbose('ThreadPool:' + tpname + ' listed.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
tp_node=self.newTop() # because in extract, this return a blank tp node.
threadpools=getShowAsDict(AdminConfig.show(tps[tpname]))
tp_node.setAttrs(name=tpname, inact_timeout=threadpools['inactivityTimeout'], is_growable=threadpools['isGrowable'], max_size=threadpools['maximumSize'], min_size=threadpools['minimumSize'])
mkNodeScope(tp_node, scope_attrs, isUnique=True) # tag: scope
def inject(self):
self_funct='inject'
tp_node = self.getTop()
tp_attrs = tp_node.getAttrs()
scope_id, scope_attrs, scope=self.getScope(parent_node=tp_node, indent=self.getIndent()) #-- Retreives scope
self.verbose(scope_attrs, tp_attrs.name)
indent=self.getIndent() + 3*' '
found=False
cmdvalues=[]
verbose('ThreadPoolManager listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
tps=getStartByNameAsDict(split( AdminConfig.showAttribute(AdminConfig.list('ThreadPoolManager', scope_id), 'threadPools') ))
for tpname in tps.keys():
if not tpname==tp_attrs.name:continue
else:
found=True
break
if not found:raise xception.kikonfActionSystemException(self, self_funct, 'UNable to fing ThreadPool named:' + str(tp_attrs.name) + ' !')
# - force the Orb to use the general ThreadPool Manager Orb.thread.pool (and not its one).
if tpname=='ORB.thread.pool':
verbose('ObjectRequestBroker listing.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
orb=AdminConfig.list('ObjectRequestBroker', scope_id)
verbose('ObjectRequestBroker updating.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
AdminConfig.modify(orb, 'useServerThreadPool', 'true')
cmdvalues.append(['inactivityTimeout', tp_attrs.inact_timeout])
cmdvalues.append(['isGrowable', tp_attrs.is_growable])
cmdvalues.append(['maximumSize', tp_attrs.max_size])
cmdvalues.append(['minimumSize', tp_attrs.min_size])
verbose('ThreadPool updating.', level=self.getVerbose(), ifLevel=4, indent=indent, logFile=self.getLogFile())
AdminConfig.modify(tps[tpname], cmdvalues)
verbose('ThreadPool:' + tp_attrs.name + ' updated.', level=self.getVerbose(), ifLevel=3, indent=indent)
def verbose(self, scope_attrs, name=None):
scope=str(scope_attrs).replace("'", '')[1:-1]
if name!=None:verbose('ThreadPool at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
else:verbose('ThreadPools at scope:' + scope + '.', level=self.getVerbose(), ifLevel=2, indent=self.getIndent())
Trademarks :
|