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

  • audivila

    audivila

    5 HAZİRAN 2009
  • booba1234

    booba1234

    22 Temmuz 2006
  • Jonathan Flavell

    Jonathan Fla

    1 HAZİRAN 2006