#----------------------------------------------------------
# Import the regualar expression engine
#----------------------------------------------------------
import re
#----------------------------------------------------------
# Define functions
#----------------------------------------------------------
def heap(serverName, iHeap, mHeap):
print "Configuring int/max heap for "+ serverName +" with "+ iHeap +"/" +mHeap
nodeName=serverName.split('.')[2]
print "<INFO> Setting heap to " + str(iHeap) + " and " + str(mHeap) + " for " + serverName + " on "+ nodeName
AdminTask.setJVMProperties('[-serverName '+serverName+' -nodeName '+nodeName+' -verboseModeGarbageCollection true -initialHeapSize '+str(iHeap)+' -maximumHeapSize '+str(mHeap)+' ]')
print ""
def genArgs(serverName, args):
print "<INFO> Configuring "+ serverName +" with generic JVM args of "+ args
nodeName=serverName.split('.')[2]
AdminTask.setJVMProperties('[-serverName '+serverName+' -nodeName '+nodeName+' -genericJvmArguments "' + args + '"]')
#print AdminTask.showJVMProperties('[-serverName '+serverName+' -nodeName '+nodeName+' ]')
print ""
def threadPools(server):
# Get threadpools for this server
for threadPool in AdminConfig.list('ThreadPool', serverName).splitlines():
if(re.search("Default", threadPool)):
print "<INFO> Configuring the Default ThreadPool "+ threadPool
AdminConfig.modify(threadPool, '[[maximumSize "75"] [name "Default"] [minimumSize "75"]]')
print ""
if(re.search("WebContainer", threadPool)):
print "<INFO> Configuring the WebContainer ThreadPool "+ threadPool
AdminConfig.modify(threadPool, '[[maximumSize "75"] [name "WebContainer"] [minimumSize "75"]]')
print ""
def dataSources():
for ds in AdminConfig.list('DataSource').splitlines():
jndi = AdminConfig.showAttribute(ds, "jndiName")
if(re.search("jdbc/TeamWorksDB", jndi)):
print "<INFO> Configuring jdbc/TeamWorksDB for min/max of 100/300 and statement cache of 250"
connPool = AdminConfig.showAttribute(ds, "connectionPool")
AdminConfig.modify(connPool, '[[maxConnections "300"] [minConnections "100"]]')
AdminConfig.modify(ds, '[[statementCacheSize "250"]]')
elif(re.search("jdbc/BPEDB", jndi)):
print "<INFO> Configuring jdbc/BPEDB for min/max of 75/200 and statement cache of 150"
connPool = AdminConfig.showAttribute(ds, "connectionPool")
AdminConfig.modify(connPool, '[[maxConnections "200"] [minConnections "75"]]')
AdminConfig.modify(ds, '[[statementCacheSize "150"]]')
elif(re.search("jdbc/ODS", jndi)):
print "<INFO> Configuring jdbc/ODS for min/max of 75/200 and statement cache of 100"
connPool = AdminConfig.showAttribute(ds, "connectionPool")
AdminConfig.modify(connPool, '[[maxConnections "200"] [minConnections "75"]]')
AdminConfig.modify(ds, '[[statementCacheSize "100"]]')
#----------------------------------------------------------
# Main program
#----------------------------------------------------------
for server in AdminConfig.list("Server").splitlines():
serverName=AdminConfig.showAttribute(server, 'name')
# Search for the cluster memener JVM's
if(re.search("AppTarget", serverName)):
threadPools(server)
dataSources()
heap(serverName, str(7680), str(7680))
genArgs(serverName, "-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=85 -XX:+UseCMSInitiatingOccupancyOnly -XX:NewRatio=3 -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:Parallel
GCThreads=8 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+DisableExplicitGC -server -d64 -XX:PermSize=768m -XX:+PrintHeapAtGC -XX:MaxPermSize=1024m")
elif(re.search("Messaging", serverName)):
heap(serverName, str(768), str(768))
genArgs(serverName, "-XX:ParallelGCThreads=2 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -d64 -XX:MaxPermSize=512m")
elif(re.search("WebApp", serverName)):
heap(serverName, str(1024), str(1024))
genArgs(serverName, "-XX:ParallelGCThreads=2 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -d64 -XX:MaxPermSize=512m")
elif(re.search("Support", serverName)):
heap(serverName, str(768), str(768))
genArgs(serverName, "-XX:ParallelGCThreads=2 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -d64 -XX:MaxPermSize=512m")
else:
print "No server match for "+serverName
AdminConfig.save()
Friday, 3 May 2013
Sharing general Jython stuff
Feel free to use
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment