Guest User

Untitled

a guest
Dec 18th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. import java.lang.management.*
  2. import javax.management.ObjectName
  3. import javax.management.remote.JMXConnectorFactory as JmxFactory
  4. import javax.management.remote.JMXServiceURL as JmxUrl
  5. import groovy.swing.SwingBuilder
  6. import javax.swing.WindowConstants as WC
  7.  
  8. def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:9003/jmxrmi'
  9. String beanName = "com.webwars.gameplatform.data:type=udmdataloadsystem,id=0"
  10. def server = JmxFactory.connect(new JmxUrl(serverUrl)).MBeanServerConnection
  11. def dataSystem = new GroovyMBean(server, beanName)
  12.  
  13. println "Connected to:n$dataSystemn"
  14.  
  15. println "Executing jmxForceRefresh()"
  16. dataSystem.jmxForceRefresh();
  17.  
  18. #!/bin/bash
  19.  
  20. cmdLineJMXJar=./cmdline-jmxclient-0.10.3.jar
  21. user=yourUser
  22. password=yourPassword
  23. jmxHost=localhost
  24. port=9003
  25.  
  26. #No User and password so pass '-'
  27. echo "Available Operations for com.company.data:type=datasystem,id=0"
  28. java -jar ${cmdLineJMXJar} ${user}:${password} ${jmxHost}:${port} com.company.data:type=datasystem,id=0
  29.  
  30. echo "Executing XML update..."
  31. java -jar ${cmdLineJMXJar} - ${jmxHost}:${port} com.company.data:type=datasystem,id=0 jmxForceRefresh
  32.  
  33. me@oddjob:jmx$ cd log4j/root/attributes
  34. me@oddjob:jmx$ cat priority
  35.  
  36. me@oddjob:jmx$ echo "WARN" > priority
  37.  
  38. me@oddjob:jmx$ cd Catalina/none/none/WebModule/localhost/helloworld/operations/addParameter
  39. me@oddjob:jmx$ echo "myParam myValue" > invoke
  40.  
  41. ~$ ./check_jmx -U service:jmx:rmi:///jndi/rmi://localhost:1099/JMXConnector --username myuser --password mypass -O java.lang:type=Memory -A HeapMemoryUsage -K used
  42. JMX OK - HeapMemoryUsage.used = 445012360 | 'HeapMemoryUsage used'=445012360;;;;
  43.  
  44. curl -s -X POST --user 'myuser:mypass'
  45. --data "action=invokeOp&name=App:service=ThisServiceOp&methodIndex=3&arg0=value1&arg1=value1&submit=Invoke"
  46. http://yourhost.domain.com/jmx-console/HtmlAdaptor
  47.  
  48. http://yourhost.domain.com/jmx-console/HtmlAdaptor?action=inspectMBean&name=YourJMXServiceName
  49.  
  50. form method="post" action="HtmlAdaptor">
  51. <input type="hidden" name="action" value="invokeOp">
  52. <input type="hidden" name="name" value="App:service=ThisServiceOp">
  53. <input type="hidden" name="methodIndex" value="3">
  54. <hr align='left' width='80'>
  55. <h4>void ThisOperation()</h4>
  56. <p>Operation exposed for management</p>
  57. <table cellspacing="2" cellpadding="2" border="1">
  58. <tr class="OperationHeader">
  59. <th>Param</th>
  60. <th>ParamType</th>
  61. <th>ParamValue</th>
  62. <th>ParamDescription</th>
  63. </tr>
  64. <tr>
  65. <td>p1</td>
  66. <td>java.lang.String</td>
  67. <td>
  68. <input type="text" name="arg0">
  69. </td>
  70. <td>(no description)</td>
  71. </tr>
  72. <tr>
  73. <td>p2</td>
  74. <td>arg1Type</td>
  75. <td>
  76. <input type="text" name="arg1">
  77. </td>
  78. <td>(no description)</td>
  79. </tr>
  80. </table>
  81. <input type="submit" value="Invoke">
  82. </form>
  83.  
  84. use JMX::Jmx4Perl;
  85. use JMX::Jmx4Perl::Alias; # Import certains aliases for MBeans
  86.  
  87. print "Memory Used: ",
  88. JMX::Jmx4Perl
  89. ->new(url => "http://localhost:8080/j4p")
  90. ->get_attribute(MEMORY_HEAP_USED);
  91.  
  92. package com.my.company.jmx
  93. import groovy.util.GroovyMBean;
  94. import javax.management.remote.JMXServiceURL
  95. import javax.management.remote.JMXConnectorFactory
  96. import java.lang.management.*
  97.  
  98. class Monitor {
  99. static main(args) {
  100. def serverUrl = 'service:jmx:rmi:///jndi/rmi://localhost:5019/jmxrmi'
  101. String beanName = "Catalina:type=DataSource,class=javax.sql.DataSource,name="jdbc/CommonDB""
  102. println "numIdle,numActive"
  103.  
  104. while(1){
  105. def server = JMXConnectorFactory.connect(new JMXServiceURL(serverUrl))
  106. //make sure to reconnect in case the jvm was restrated
  107. server.connect()
  108. GroovyMBean mbean = new GroovyMBean(server.MBeanServerConnection, beanName)
  109. println "${mbean.numIdle},${mbean.numActive}"
  110. server.close()
  111. sleep(10000)
  112. }
  113.  
  114. }
  115. }
  116.  
  117. <build>
  118. <plugins>
  119. <plugin>
  120. <groupId>org.apache.maven.plugins</groupId>
  121. <artifactId>maven-compiler-plugin</artifactId>
  122. <configuration>
  123. <compilerId>groovy-eclipse-compiler</compilerId>
  124. <source>1.7</source>
  125. <target>1.7</target>
  126. </configuration>
  127. <dependencies>
  128. <dependency>
  129. <groupId>org.codehaus.groovy</groupId>
  130. <artifactId>groovy-eclipse-compiler</artifactId>
  131. <version>2.8.0-01</version>
  132. </dependency>
  133. <dependency>
  134. <groupId>org.codehaus.groovy</groupId>
  135. <artifactId>groovy-eclipse-batch</artifactId>
  136. <version>2.3.4-01</version>
  137. </dependency>
  138. </dependencies>
  139. </plugin>
  140. </plugins>
  141. </build>
  142. <dependencies>
  143. <dependency>
  144. <groupId>org.codehaus.groovy</groupId>
  145. <artifactId>groovy-all</artifactId>
  146. <version>2.4.3</version>
  147. </dependency>
  148. </dependencies>
  149.  
  150. import javax.management.*;
  151. import javax.management.remote.*;
  152.  
  153. public class JmxInvoke {
  154.  
  155. public static void main(String... args) throws Exception {
  156.  
  157. System.out.println(
  158. JMXConnectorFactory.connect(new JMXServiceURL(args[0]))
  159. .getMBeanServerConnection().invoke(new ObjectName(args[1]), args[2], new Object[]{}, new String[]{})
  160. );
  161.  
  162. }
  163.  
  164. }
  165.  
  166. javac JmsInvoke.java
  167. java -cp . JmxInvoke [url] [beanName] [method]
Add Comment
Please, Sign In to add comment