Created
December 30, 2021 13:45
-
-
Save umeli/d668f1060677f092f0e83d5a73a3ab32 to your computer and use it in GitHub Desktop.
get important jvm settings from websphere
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
def wsadminToList(inStr): | |
inStr = inStr.rstrip(); | |
outList=[] | |
if (len(inStr)>0 and inStr[0]=='[' and inStr[-1]==']'): | |
tmpList = inStr[1:-1].split(" ") | |
else: | |
tmpList = inStr.split("\n") | |
for item in tmpList: | |
item = item.rstrip(); | |
if (len(item)>0): | |
outList.append(item) | |
return outList | |
def writeLine(message,servername,node,initHeap,maxHeap,generic): | |
line="print '%s'\n" % (message) | |
outfile.write(line) | |
line="AdminTask.setJVMInitialHeapSize('[-serverName %s -nodeName %s -initialHeapSize %s]')\n" % (servername,node,initHeap) | |
outfile.write(line) | |
line="AdminTask.setJVMMaxHeapSize('[-serverName %s -nodeName %s -maximumHeapSize %s]')\n" % (servername,node,maxHeap) | |
outfile.write(line) | |
line=line="AdminTask.setGenericJVMArguments('[-serverName %s -nodeName %s -genericJvmArguments \"%s\"]')\n" % (servername,node,generic) | |
outfile.write(line) | |
def writeProperty(servername,node,name,value): | |
line="print '%s: %s = %s'\n" % (servername,name,value) | |
outfile.write(line) | |
line="AdminTask.setJVMSystemProperties('[-serverName %s -nodeName %s -propertyName %s -propertyValue \"%s\"]')\n" % (servername,node,name,value) | |
outfile.write(line) | |
print "extract jvm settings" | |
servers = AdminTask.listServers().splitlines() | |
webservers = AdminTask.listServers('[-serverType WEB_SERVER]').splitlines() | |
outfileName=sys.argv[0] | |
print outfileName | |
if outfileName is None: | |
print "Parameter outfileName is missing" | |
sys.exit(1) | |
print "open "+outfileName+ " for writing" | |
outfile=open(outfileName,'w') | |
print "Write result to " + outfileName | |
for webserver in webservers: | |
servers.remove(webserver) | |
outfile.write('print "Update JVM initial and Max Heap Size"\n') | |
for server in servers: | |
jvm=AdminConfig.list('JavaVirtualMachine',server) | |
if not jvm is None: | |
srv=server.split('/') | |
cell=srv[1] | |
node=srv[3] | |
servername=srv[5].split('|')[0] | |
initHeap=AdminConfig.showAttribute(jvm, 'initialHeapSize') | |
maxHeap=AdminConfig.showAttribute(jvm, 'maximumHeapSize') | |
generic=AdminConfig.showAttribute(jvm,'genericJvmArguments') | |
jvmprop=AdminConfig.showAttribute(jvm, "systemProperties") | |
jvmprops=wsadminToList(jvmprop) | |
message="Server %s - init: %sM - max: %sM - arg: %s" % (servername, initHeap, maxHeap,generic) | |
print message | |
writeLine(message,servername,node,initHeap,maxHeap,generic) | |
for jvmProp in jvmprops: | |
name = AdminConfig.showAttribute(jvmProp, "name") | |
value = AdminConfig.showAttribute(jvmProp, "value") | |
print "property %s = %s" % (name,value) | |
writeProperty(servername,node,name,value) | |
outfile.write('\n') | |
outfile.write('AdminConfig.save()') | |
outfile.write('\nprint "Done"\n') | |
outfile.close() | |
print "Done" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment