SORU
17 Kasım 2009, Salı


Bir kabuk arama JMX MBean yöntemi

Bana bir shell script JMX MBean bir yöntemi çağırmak için izin veren bir kütüphane bulunmaktadır. Bazı işlemler JMX üzerinden admin komutları/ifşa edeceğiz ve yöneticilerimizi kullanın JConsole, ya VisualVM yapabiliriz, ama bazı görevler otomasyon kalması en iyisi. Otomasyon çalışan bizim sunucuda JMX MBean bir yöntem aramak mümkün, bir kabuk tercihen olmak istiyoruz.

CEVAP
17 Kasım 2009, Salı


Aşağıdaki komut satırı yardımcı programları kullanılabilir JMX:

  1. jmxterm - en donanımlı yardımcı olacak gibi görünüyor.
  2. cmdline-jmxclient - WebArchive projede kullanılan çok çıplak kemikleri (ve görünüşe göre, 2006 yılından bu yana herhangi bir gelişme) gibi görünüyor
  3. Groovy script and JMX - gerçekten güçlü JMX işlevsellik sağlar, ancak harika ve diğer kütüphane kurulumu gerektirir.
  4. JManage command line functionality - (dezavantajı. çalışan bir JManage gerekli proxy komutları sunucu üzerinden)

Harika JMX Örnek:

import java.lang.management.*
import javax.management.ObjectName
import javax.management.remote.JMXConnectorFactory as JmxFactory
import javax.management.remote.JMXServiceURL as JmxUrl
import groovy.swing.SwingBuilder
import javax.swing.WindowConstants as WC

def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:9003/jmxrmi'
String beanName = "com.webwars.gameplatform.data:type=udmdataloadsystem,id=0"
def server = JmxFactory.connect(new JmxUrl(serverUrl)).MBeanServerConnection
def dataSystem = new GroovyMBean(server, beanName)

println "Connected to:\n$dataSystem\n"

println "Executing jmxForceRefresh()"
dataSystem.jmxForceRefresh();

cmdline-jmxclient örnek:

Bir varsa

  • MBean: com.şirket.veri:type=datasystem,ıd=0

Ameliyat:

  • () jmxForceRefresh

O zaman basit bir bash script (cmdline-jmxclient-0.10.3.jar karşıdan ve komut dosyası olarak aynı dizine koy varsayarak) yazabilirsiniz:

#!/bin/bash

cmdLineJMXJar=./cmdline-jmxclient-0.10.3.jar
user=yourUser
password=yourPassword
jmxHost=localhost
port=9003

#No User and password so pass '-'
echo "Available Operations for com.company.data:type=datasystem,id=0"
java -jar ${cmdLineJMXJar} ${user}:${password} ${jmxHost}:${port} com.company.data:type=datasystem,id=0

echo "Executing XML update..."
java -jar ${cmdLineJMXJar} - ${jmxHost}:${port} com.company.data:type=datasystem,id=0 jmxForceRefresh

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • Hak5

    Hak5

    7 EYLÜL 2005
  • Moto Journal

    Moto Journal

    28 Mayıs 2007