apache jmx_用于JMX访问的Apache Ant任务
apache jmx
我想從Ant任務(wù)中調(diào)用JMX操作。 但是,找到可用的螞蟻任務(wù)庫及其用法非常棘手。 因此,讓我分享我的經(jīng)驗,使他人更輕松。
JMX操作的Ant任務(wù)
我決定遵循Tomcat文檔,并使用與tomcat一起分發(fā)的ant任務(wù)。
僅作記錄用途,并不限于Tomcat部署的JMX mBean 。 對我來說,它適用于通過遠程連接通過JConsole訪問的Java進程。
檢索圖書館
用法
我沒有機會(或動機?)檢查所有可用任務(wù),可以在壓縮文件中查看可用任務(wù)的完整列表: org/apache/catalina/ant/jmx/antlib.xml ,其中包含以下內(nèi)容為了我:
<typedefname="open"classname="org.apache.catalina.ant.jmx.JMXAccessorTask" /> <typedefname="set"classname="org.apache.catalina.ant.jmx.JMXAccessorSetTask" /> <typedefname="get"classname="org.apache.catalina.ant.jmx.JMXAccessorGetTask" /> <typedefname="invoke"classname="org.apache.catalina.ant.jmx.JMXAccessorInvokeTask" /> <typedefname="query"classname="org.apache.catalina.ant.jmx.JMXAccessorQueryTask" /> <typedefname="create"classname="org.apache.catalina.ant.jmx.JMXAccessorCreateTask" /> <typedefname="unregister"classname="org.apache.catalina.ant.jmx.JMXAccessorUnregisterTask" /> <typedefname="equals"classname="org.apache.catalina.ant.jmx.JMXAccessorEqualsCondition" /> <typedefname="condition"classname="org.apache.catalina.ant.jmx.JMXAccessorCondition" />其中,我嘗試了以下方法:
org.apache.catalina.ant.jmx.JMXAccessorTask org.apache.catalina.ant.jmx.JMXAccessorInvokeTask org.apache.catalina.ant.jmx.JMXAccessorQueryTask出于演示目的,我使用了Glassfish 4.0。
示例:列出JMX MBean
假設(shè)我們要按名稱檢索MBean(即: java.lang:type=Memory )。 請注意,訪問不需要輸入用戶名和密碼(否則應通過相應的屬性指定)。
這里值得注意的是resultproperty ,它可以保存我們可以從中獲得名稱的數(shù)組。 因此,在ant構(gòu)建腳本中:
<typedef name="jmxQuery"classname="org.apache.catalina.ant.jmx.JMXAccessorQueryTask" /><jmxQueryhost="localhost"port="8686"echo="true"name="java.lang:type=Memory"resultproperty="memory" /><echo>Retrieved MBeans count: ${memory.Length}</echo> <echo>The 1.st one has name: ${memory.0.Name}</echo>結(jié)果對我來說如下輸出:
[jmxQuery] memory.Length=1[jmxQuery] memory.0.Name=java.lang:type=Memory[echo] Retrieved MBeans count: 1[echo] The 1.st one has name: java.lang:type=Memory示例:通過JMX調(diào)用操作
這是所需的兩步方法:
出于演示目的,假設(shè)我們要調(diào)用垃圾回收(通過在名為: java.lang:type=Memory MBean上調(diào)用操作: gc() )
樣本ant構(gòu)建文件塊完成了該工作(請注意這兩個任務(wù)之間的ref屬性值必須相同):
<typedef name="jmxOpen"classname="org.apache.catalina.ant.jmx.JMXAccessorTask" /><typedef name="jmxInvoke"classname="org.apache.catalina.ant.jmx.JMXAccessorInvokeTask" /><jmxOpenhost="localhost"port="8686"ref="glassfish"failOnError="true" /><jmxInvokename="java.lang:type=Memory"operation="gc"echo="true"delimiter=" "failOnError="true"ref="glassfish" />更多信息
有關(guān)更多詳細信息,我建議閱讀Tomcat官方文檔以及Javadocs 。
翻譯自: https://www.javacodegeeks.com/2014/06/apache-ant-tasks-for-jmx-access.html
apache jmx
總結(jié)
以上是生活随笔為你收集整理的apache jmx_用于JMX访问的Apache Ant任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java ee cdi_Java EE
- 下一篇: 微星主板官网打折推荐电脑(微星电脑旗舰店