apache jmx

我想从Ant任务中调用JMX操作。 但是,找到可用的蚂蚁任务库及其用法非常棘手。 因此,让我分享我的经验,使他人更轻松。

JMX操作的Ant任务

我决定遵循Tomcat文档,并使用与tomcat一起分发的ant任务。

仅作记录用途,并不限于Tomcat部署的JMX mBean 。 对我来说,它适用于通过远程连接通过JConsole访问的Java进程。

检索图书馆

  1. 当我想获取最新版本时,我使用了maven中央存储库“按类名搜索”功能并搜索: org.apache.catalina.ant.jmx.JMXAccessorTask (请参阅查询 )
  2. 之后,我去了tomcat 8 jar文件 (称为tomcat-catalina-ant-8.0.8.jar
  3. 并将最新的可用版本复制到我的$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调用操作

这是所需的两步方法:

  1. 之后通过JMX连接到远程服务器
  2. 在特定的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任务相关推荐

  1. 用于JMX访问的Apache Ant任务

    我想从Ant任务中调用JMX操作. 但是,找到可用的蚂蚁任务库及其用法非常棘手. 因此,让我分享我的经验,使他人更轻松. JMX操作的Ant任务 我决定遵循Tomcat文档并使用与tomcat一起分发 ...

  2. 如何分析apache日志[access_log(访问日志)和error_log(错误日志)]

    如何分析apache日志[access_log(访问日志)和error_log(错误日志)] 发布时间: 2013-12-17 浏览次数:205 分类: 服务器 默认Apache运行会access_l ...

  3. apache禁止访问html,apache 限制目录访问

    比如说登陆nagios或者是其它监控软件等,都会提示输入用户名密码,才能登陆,其实就是在apache中限制目录访问权限. 通过用户名和密码的方式进行验证. 比如我这里将/var/www/html/a目 ...

  4. nginx和apache限制IP地址访问的设置方法

    一.nginx禁止IP地址访问 1.在nginx配置文件中加入这个: 2.重启nginx服务 二.apache禁止IP地址访问 1.更改vhosts.conf文件: NameVirtualHost 1 ...

  5. APACHE局域网配置域名访问

    转载来源:APACHE局域网配置域名访问 :https://www.cnblogs.com/jthb/p/3214229.html 1.打开APACHE的目录 \Apache2\conf\extra\ ...

  6. apache+weblogic获取客户端访问的真正ip

    在apache+WebLogic整合系统中,apache会对request对象进行再包装,附加一些WLS要用的头信息.这种情况下,直接用request.getRemoteAddr()是无法取到真正的客 ...

  7. 服务器启动成功网页无法访问,apache启动后无法访问网页的解决方法

    apache启动后无法访问网页的解决方法 发布时间:2021-01-27 11:31:08 来源:亿速云 阅读:146 作者:小新 小编给大家分享一下apache启动后无法访问网页的解决方法,希望大家 ...

  8. apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件

    apache+php配置网站访问后,不能跳转网站首页,只显示网站目录下的文件 apache的配置文件缺少配置项 修改apache2/conf/httpd.conf,找到以下配置,添加index.php ...

  9. |- apache -| 手机真机测试之访问本地apache服务器

    本文简单介绍了手机与电脑处于同一个局域网下,如何通过手机访问本地的apache服务器(pc端)做测试 今天,因为写了一个微信网页授权的demo,由于微信的一些限制,每次都需要在微信客户端,进行用户的授 ...

最新文章

  1. android源码下载方法 批量下载 基于windows os
  2. 【数字信号处理】周期序列 ( 周期序列定义 | 周期序列示例 )
  3. tcp/ip 协议栈Linux内核源码分析七 路由子系统分析二 策略路由
  4. ajax 传递arraybuffer,jQuery $ .ajax或$ .load是否允许responseType arrayBuffer?
  5. Redis, Memcache 基本使用
  6. log日志java web_Javaweb项目中使用Log4j记录日志
  7. python协程:RuntimeError: Event loop is closed解决办法
  8. MongoDB数据库导出导入迁移
  9. 【滤波器】基于matlab GUI分数延迟滤波器设计【含Matlab源码 1347期】
  10. ubuntu wine 使用
  11. Springboot的工作机制:1 Springboot初体验
  12. 微信小程序教程、微信小程序开发资源下载汇总(6.16日更新,持续更新中……)
  13. HCIA—冲突域与广播域(详解 + 区别)
  14. JAVA计算机毕业设计小型超市管理系统(附源码、数据库)
  15. 网络适配器有感叹号(56)
  16. Flappy Bird游戏 C语言实现
  17. android点击按钮打开蓝牙,Android打开蓝牙的两种方式
  18. 微信小程序 内容换行
  19. 实现n*n乘法口诀表
  20. 金蝶采购模块采购赠品业务处理逻辑

热门文章

  1. 【做题记录】区间排序—线段树
  2. codeforces1485 E. Move and Swap(dp)
  3. 【图论】清理牛棚/Cleaning Shifts S(luogu 4644)
  4. 【bfs】廉价最短路径(2013特长生 T4)
  5. 41、java应用占用cpu过高原因分析
  6. 跟我学 Java 8 新特性之 Stream 流(四)并行流
  7. jQuery 基础教程 (五)之使用jQuery创建动画效果
  8. mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
  9. php无限极菜单,无限极菜单的实现
  10. IDEA导入Maven项目,pom.xml文件中 有inspects a maven model for resolution problems报错 !!!!!!!!!!有用