Friday, 3 May 2013

Sharing general Jython stuff

Feel free to use

 #----------------------------------------------------------  
 # 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()  

No comments:

Post a Comment