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:
- jmxterm - en donanımlı yardımcı olacak gibi görünüyor.
- 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
- Groovy script and JMX - gerçekten güçlü JMX işlevsellik sağlar, ancak harika ve diğer kütüphane kurulumu gerektirir.
- 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ş:
Ruby dinamik arama yöntemi...
Ruby: örneği Arama sınıf yöntemi...
Objective C arama yöntemi dinamik bir ...
Bir geri arama yöntemi olarak kullanma...
# - C Derleme Yüklenemedi Yol Doğru, S...