Index by: file name | procedure name | procedure call | annotation
getJVMinfoNew_proc.tcl (annotations | original source)

# 
# Get JVM PMI info for server. 
# NB: server must be running and PMI must be switched on.
#
####################################################################
# Patrick Finnegan 11/11/2005.  V1. 
####################################################################
####################################################################
# proc - get JVM details 
####################################################################

namespace eval getJVMInfoNew {

    ####################################################################
    # proc - get JVM details 
    ####################################################################
    proc getJVMInfoNew { nodeName serverName } {

	set procName [ lindex [ info level 0 ] 0 ]

	putsLog "## proc - $procName"

	foreach i [ info args $procName ]  {

	   upvar 0 $i ilocal

	   set propertiesArray($i) $ilocal 

	}

	putsLog "properties are.................."

	foreach { a b } [ array get propertiesArray ] {

	    putsLog [ format "%-35s %s" "$a" "$b" ]

	}

	global AdminConfig 
	global AdminControl
	global null
	global Help

	putsLog "getJVMInfonew"

	#putsLog "get the performance mbean for the server - should be just one."

	append queryString "WebSphere:*,node="
	append queryString $nodeName
	append queryString ",process="
	append queryString $serverName
	append queryString ",type=Perf"

	putsLog " query string is: $queryString "

	set perfMbean [ $AdminControl queryNames $queryString ]

	if { $perfMbean == $null || [ string length $perfMbean] == 0 } {
	    
	    putsLog " $serverName is not running or PMI is not enabled for $serverName. "

	    return -code error

	} else {

	    set donothing true 

	}

	#putsLog "get the JVM Bean."

	unset queryString 

	append queryString "WebSphere:*,node="
	append queryString $nodeName
	append queryString ",process="
	append queryString $serverName
	append queryString ",type=JVM"

	#putsLog " query string is: $queryString "

	set jvmMbean [ $AdminControl queryNames $queryString ]

	if { $jvmMbean == $null || [ string length $jvmMbean] == 0 } {
	    
	    putsLog " $serverName jvm is not running "

	    return 

	} else {

	    set donothing true 

	}

	set jvmMbeanO [ $AdminControl makeObjectName $jvmMbean ]

	set boolean [ java::new Boolean true ]
	# NB: brackets around array object. 
	set parramsArray    [ java::new {Object[]} {2} [ list $jvmMbeanO $boolean ] ]
	set signaturesArray [ java::new {String[]} {2} [ list javax.management.ObjectName java.lang.Boolean ] ]

	set perfMbeanO [ $AdminControl makeObjectName $perfMbean ]

	#get the stats list from the performance bean
	set jvmInfo [ $AdminControl invoke_jmx $perfMbeanO "getStatsString" $parramsArray $signaturesArray   ] 

	set jvmInfoString [ $jvmInfo toString ] 

	lappend valuesList [ list "Cell" [ $AdminControl getCell ] ]
		
	#puts "\n  pmi data is $jvmInfoString  \n "	
		
	#get PMI data sub list.
	set e4        [ lindex $jvmInfoString 3 ]  
	set dataList  [ lindex $e4 1 ]  
	set dataListL [ llength $dataList ]  

	# sort in id order
	set dataList [ lsort -dictionary -index 0 $dataList ] 

	set topParms [ lindex $dataList 0 ]  

	set width 60

	set descriptorIndex [ lsearch -glob $topParms {*Descriptor*} ]
	set descriptor      [ lindex $topParms $descriptorIndex ]
	set x1 "[ lindex [ lindex [ lindex $descriptor 1 ] 0 ] 0 ]"
	set x2 "[ lindex [ lindex [ lindex $descriptor 1 ] 0 ] 1 ]"
	putsLog    [ format "%-${width}s %s"  $x1 $x2 ]


	lappend valuesList [ list $x1 $x2 ]
	   
	set x1 "[ lindex [ lindex [ lindex $descriptor 1 ] 1 ] 0 ]"
	set x2 "[ lindex [ lindex [ lindex $descriptor 1 ] 1 ] 1 ]"
	putsLog    [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]

	set timeIndex [ lsearch -glob $topParms {*Time*} ]
	set time      [ lindex $topParms $timeIndex ]
	set x1        [ lindex [ lindex $topParms $timeIndex ] 0 ]
	set x2        [ clock format [ clock seconds ] -format "%Y-%m-%d %H:%M:%S" ]
	putsLog          [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]

	set valueIndex [ lsearch -glob $topParms {*Value*} ]
	set value      [ lindex $topParms $valueIndex ]
	set x1         [ lindex [ lindex $value 1 ] 0 ]
	set x2         [ lindex [ lindex $value 1 ] 1 ]
	putsLog           [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]

	set x1         [ lindex [ lindex $value 2 ] 0 ]
	set x2         [ lindex [ lindex $value 2 ] 1 ]
	putsLog           [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]

	set x1         [ lindex [ lindex $value 3 ] 0 ]
	set x2         [ lindex [ lindex $value 3 ] 1 ]
	putsLog           [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]

	set x1         [ lindex [ lindex $value 4 ] 0 ]
	set x2         [ lindex [ lindex $value 4 ] 1 ]
	putsLog           [ format "%-${width}s %s"  $x1 $x2 ]

	lappend valuesList [ list $x1 $x2 ]
	
	set x 1 

	lappend valuesList [ list $x1 $x2 ]

	set e                [ lindex $dataList $x ]

	set idIndex          [ lsearch -glob $e {*Id*} ]
	set id               [ lindex $e $idIndex ]

        set pmiDataInfoIndex [ lsearch -glob $e {*PmiDataInfo*} ]
        set pmiDataInfo      [ lindex $e $pmiDataInfoIndex ]

	set nl               [ eval concat [ join $e ] ]
	set commentIndex     [ lsearch -glob $nl {*Comment*} ]
	set comment          [ lindex [ lindex $nl $commentIndex ] 1 ]
	   
	set valueIndex       [ lsearch -glob $e {*Value*} ]
	set value            [ lindex [ lindex [ lindex $e $valueIndex ] 1 ] 1 ]

	putsLog [ format "%-${width}s %s"  $comment $value ]

	lappend valuesList [ list $comment $value ] 

	incr x 

	return $valuesList

    }
}

Index by: file name | procedure name | procedure call | annotation
File generated 2007-08-07 at 13:42.