...
| Code Block |
|---|
import javax.management.ObjectName import javax.management.remote.JMXConnectorFactory as JmxFactory import javax.management.remote.JMXServiceURL as JmxUrl import org.jfree.chart.ChartFactory import org.jfree.data.category.DefaultCategoryDataset as Dataset import org.jfree.chart.plot.PlotOrientation as Orientation import groovy.swing.SwingBuilder import javax.swing.WindowConstants as WC def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:9004/jmxrmi' def server = JmxFactory.connect(new JmxUrl(serverUrl)).mBeanServerConnectionMBeanServerConnection def serverInfo = new GroovyMBean(server, 'Catalina:type=Server').serverInfo println "Connected to: $serverInfo" def query = new ObjectName('Catalina:*') String[] allNames = server.queryNames(query, null) def modules = allNames.findAll{ name -> name.contains('j2eeType=WebModule') }.collect{ new GroovyMBean(server, it) } println "Found ${modules.size()} web modules. Processing ..." def dataset = new Dataset() modules.each{ m -> println m.name() dataset.addValue m.processingTime, 0, m.path } def labels = ['Time per Module', 'Module', 'Time'] def options = [false, true, true] def chart = ChartFactory.createBarChart(*labels, dataset, Orientation.VERTICAL, *options) def swing = new SwingBuilder() def frame = swing.frame(title:'Catalina Module Processing Time', defaultCloseOperation:WC.EXIT_ON_CLOSE) { panel(id:'canvas') { rigidArea(width:600, height:250) } } frame.pack() frame.show() chart.draw(swing.canvas.graphics, swing.canvas.bounds) |
...
| Code Block |
|---|
import javax.management.remote.*
import oracle.oc4j.admin.jmx.remote.api.JMXConnectorConstant
def serverUrl = new JMXServiceURL('service:jmx:rmi://localhost:23791')
def serverPath = 'oc4j:j2eeType=J2EEServer,name=standalone'
def jvmPath = 'oc4j:j2eeType=JVM,name=single,J2EEServer=standalone'
def provider = 'oracle.oc4j.admin.jmx.remote'
def credentials = [
(JMXConnectorConstant.CREDENTIALS_LOGIN_KEY): 'oc4jadmin',
(JMXConnectorConstant.CREDENTIALS_PASSWORD_KEY): 'admin'
]
def env = [
(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES): provider,
(JMXConnector.CREDENTIALS): credentials
]
def server = JmxFactory.connect(serverUrl, env).mBeanServerConnectionMBeanServerConnection
def serverInfo = new GroovyMBean(server, serverPath)
def jvmInfo = new GroovyMBean(server, jvmPath)
println """Connected to $serverInfo.node. \
Server started ${new Date(serverInfo.startTime)}.
OC4J version: $serverInfo.serverVersion from $serverInfo.serverVendor
JVM version: $jvmInfo.javaVersion from $jvmInfo.javaVendor
Memory usage: $jvmInfo.freeMemory bytes free, \
$jvmInfo.totalMemory bytes total
"""
def query = new javax.management.ObjectName('oc4j:*')
String[] allNames = server.queryNames(query, null)
def dests = allNames.findAll{ name ->
name.contains('j2eeType=JMSDestinationResource')
}.collect{ new GroovyMBean(server, it) }
println "Found ${dests.size()} JMS destinations. Listing ..."
dests.each{ d -> println "$d.name: $d.location" }
|
...
| Code Block |
|---|
import org.jfree.chart.ChartFactory import javax.swing.WindowConstants as WC import javax.management.remote.* import oracle.oc4j.admin.jmx.remote.api.JMXConnectorConstant def url = 'service:jmx:rmi://localhost:23791' def credentials = [:] credentials[JMXConnectorConstant.CREDENTIALS_LOGIN_KEY] = "oc4jadmin" credentials[JMXConnectorConstant.CREDENTIALS_PASSWORD_KEY] = "password" def env = [:] env[JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES] = "oracle.oc4j.admin.jmx.remote" env[JMXConnector.CREDENTIALS] = credentials def server = JMXConnectorFactory.connect(new JMXServiceURL(url), env).mBeanServerConnectionMBeanServerConnection def jvmInfo = new GroovyMBean(server, 'oc4j:j2eeType=JVM,name=single,J2EEServer=standalone') def piedata = new org.jfree.data.general.DefaultPieDataset() piedata.setValue "Free", jvmInfo.freeMemory piedata.setValue "Used", jvmInfo.totalMemory - jvmInfo.freeMemory def options = [true, true, true] def chart = ChartFactory.createPieChart('OC4J Memory Usage', piedata, *options) chart.backgroundPaint = java.awt.Color.white def swing = new groovy.swing.SwingBuilder() def frame = swing.frame(title:'OC4J Memory Usage', defaultCloseOperation:WC.EXIT_ON_CLOSE) { panel(id:'canvas') { rigidArea(width:350, height:250) } } frame.pack() frame.show() chart.draw(swing.canvas.graphics, swing.canvas.bounds) |
...
| Code Block |
|---|
import javax.management.remote.* import javax.management.* import javax.naming.Context def urlRuntime = '/jndi/weblogic.management.mbeanservers.runtime' def urlBase = 'service:jmx:t3://localhost:7001' def serviceURL = new JMXServiceURL(urlBase + urlRuntime) def h = new Hashtable() h.put(Context.SECURITY_PRINCIPAL, 'weblogic') h.put(Context.SECURITY_CREDENTIALS, 'weblogic') h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, 'weblogic.management.remote') def server = JMXConnectorFactory.connect(serviceURL, h).mBeanServerConnectionMBeanServerConnection def domainName = new ObjectName('com.bea:Name=RuntimeService,' + 'Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean') def rtName = server.getAttribute(domainName, 'ServerRuntime') def rt = new GroovyMBean(server, rtName) println "Server: name=$rt.Name, state=$rt.State, version=$rt.WeblogicVersion" def destFilter = Query.match(Query.attr('Type'), Query.value('JMSDestinationRuntime')) server.queryNames(new ObjectName('com.bea:*'), destFilter).each{ name -> def jms = new GroovyMBean(server, name) println "JMS Destination: name=$jms.Name, type=$jms.DestinationType"+ ", messages=$jms.MessagesReceivedCount" } |
...