# This program may be used, executed, copied, modified and distributed # without royalty for the purpose of developing, using, marketing, or distribution #----------------------------------------------------------------- # ex4.jacl - Jacl implementation of example script 4 #----------------------------------------------------------------- # # The purpose of this example is to demonstrate the invocation # of some useful problem-determination actions involving traces # and thread dumps. # # This is a bi-modal script: it can be included in the wsadmin # command invocation like this: # # wsadmin -f ex4.jacl server1 mynode # # or the script can be sourced from the wsadmin command line: # wsadmin> source ex4.jacl # wsadmin> ex4.jacl server1 mynode # # The script expects one parameter: # arg1 - server name # arg2 - node name # # This example demonstrates many wsadmin features: # # - The use of the AdminControl object to locate running MBeans # - The use of the AdminControl object to getAttributes from running MBeans # - The use of the AdminControl object to invoke operations on running MBeans # - The use of the Help object to display MBean information #----------------------------------------------------------------- # proc ex4 {serverName nodeName} { #-------------------------------------------------------------- # set up globals #-------------------------------------------------------------- global AdminControl global Help #--------------------------------------------------------- # Get the TraceService MBean for this server #--------------------------------------------------------- set traceServ [$AdminControl completeObjectName type=TraceService,node=$nodeName,process=$serverName,*] #--------------------------------------------------------- # Display the help information for this MBean # #--------------------------------------------------------- set info [$Help all $traceServ] puts $info #--------------------------------------------------------- # Get the current value of traceSpecification # #--------------------------------------------------------- set spec [$AdminControl getAttribute $traceServ traceSpecification] puts "Current trace specification is $spec" #--------------------------------------------------------- # Set it to something else # #--------------------------------------------------------- $AdminControl setAttribute $traceServ traceSpecification com.ibm.ws.management.*=all=enabled #--------------------------------------------------------- # Append to it # #--------------------------------------------------------- $AdminControl invoke $traceServ appendTraceString com.ibm.websphere.management.*=all=enabled #--------------------------------------------------------- # Now get the current value of traceSpecification again # #--------------------------------------------------------- set spec [$AdminControl getAttribute $traceServ traceSpecification] puts "Current trace specification is now $spec" #--------------------------------------------------------- # Set it back # #--------------------------------------------------------- $AdminControl setAttribute $traceServ traceSpecification $spec puts "Current trace specification is now $spec" #--------------------------------------------------------- # Get the JVM MBean for this server #--------------------------------------------------------- set jvm [$AdminControl completeObjectName type=JVM,node=$nodeName,process=$serverName,*] #--------------------------------------------------------- # Display the help information for this MBean # #--------------------------------------------------------- set info [$Help all $jvm] puts $info set info [$Help operations $jvm getProperty] puts $info #--------------------------------------------------------- # invoke an action: getProperty # #--------------------------------------------------------- set jversion [$AdminControl invoke $jvm getProperty java.fullversion] puts "java.fullversion is $jversion" #--------------------------------------------------------- # invoke an action: dumpThreads # #--------------------------------------------------------- puts "About to dump threads for this jvm..." $AdminControl invoke $jvm dumpThreads puts "... done" } #----------------------------------------------------------------- # Main #----------------------------------------------------------------- if { !($argc == 2) } { puts "ex4: this script requires 2 parameter: server name, node name" puts "" puts "e.g.: ex4 server1 mynode" } else { set serverName [lindex $argv 0] set nodeName [lindex $argv 1] ex4 $serverName $nodeName }