Skip to content

Instantly share code, notes, and snippets.

@umeli
Created December 30, 2021 13:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save umeli/d668f1060677f092f0e83d5a73a3ab32 to your computer and use it in GitHub Desktop.
Save umeli/d668f1060677f092f0e83d5a73a3ab32 to your computer and use it in GitHub Desktop.
get important jvm settings from websphere
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