日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

apache jmx_用于JMX访问的Apache Ant任务

發(fā)布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache jmx_用于JMX访问的Apache Ant任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

apache jmx

我想從Ant任務中調用JMX操作。 但是,找到可用的螞蟻任務庫及其用法非常棘手。 因此,讓我分享我的經驗,使他人更輕松。

JMX操作的Ant任務

我決定遵循Tomcat文檔,并使用與tomcat一起分發(fā)的ant任務。

僅作記錄用途,并不限于Tomcat部署的JMX mBean 。 對我來說,它適用于通過遠程連接通過JConsole訪問的Java進程。

檢索圖書館

  • 當我想獲取最新版本時,我使用了maven中央存儲庫“按類名搜索”功能并搜索: org.apache.catalina.ant.jmx.JMXAccessorTask (請參閱查詢 )
  • 之后,我去了tomcat 8 jar文件 (稱為tomcat-catalina-ant-8.0.8.jar )
  • 并將最新的可用版本復制到我的$ANT_HOME/lib目錄中。
  • 用法

    我沒有機會(或動機?)檢查所有可用任務,可以在壓縮文件中查看可用任務的完整列表: org/apache/catalina/ant/jmx/antlib.xml ,其中包含以下內容為了我:

    <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

    假設我們要按名稱檢索MBean(即: java.lang:type=Memory )。 請注意,訪問不需要輸入用戶名和密碼(否則應通過相應的屬性指定)。

    這里值得注意的是resultproperty ,它可以保存我們可以從中獲得名稱的數組。 因此,在ant構建腳本中:

    <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>

    結果對我來說如下輸出:

    [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調用操作

    這是所需的兩步方法:

  • 之后通過JMX連接到遠程服務器
  • 在特定的MBean上調用操作。
  • 出于演示目的,假設我們要調用垃圾回收(通過在名為: java.lang:type=Memory MBean上調用操作: gc() )

    樣本ant構建文件塊完成了該工作(請注意這兩個任務之間的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" />

    更多信息

    有關更多詳細信息,我建議閱讀Tomcat官方文檔以及Javadocs 。

    翻譯自: https://www.javacodegeeks.com/2014/06/apache-ant-tasks-for-jmx-access.html

    apache jmx

    總結

    以上是生活随笔為你收集整理的apache jmx_用于JMX访问的Apache Ant任务的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。