JMXAccessorInvokeTask: 调用 MBean 操作的 Ant 任务 - tomcat教程 - 极悦

Tomcat教程

全部教程

×

JMXAccessorInvokeTask: 调用 MBean 操作的 Ant 任务

属性列表

属性

说明

默认值

 

name

完全限定的 JMX ObjectName——Catalina:type=Server

-

 

operation

已有的 MBean 操作()

-

 

ref

JMX 连接引用

jmx.server

jmx.server

echo

Echo 命令用途(访问与结果)

false

 

resultproperty

在这一项目属性中保存结果

-

 

delimiter

用分隔符(java.util.StringTokenizier)分隔结果,使用 resultproperty 作为前缀来保存令牌

-

 

separatearrayresults

返回值为数组时,将结果保存为属性列表($resultproperty.[0..N] 和 $resultproperty.length)

true

 

停止应用:

<jmx:invoke
    name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
    operation="stop"/>

可以在 ${sessions.[0..N} 属性中找到 sessionid,然后利用 ${sessions.length} 属性来访问计数。

获取所有 sessionid 的范例如下:

<jmx:invoke
    name="Catalina:type=Manager,context=/servlets-examples,host=localhost"
    operation="listSessionIds"
    resultproperty="sessions"
    delimiter=" "
  />  

现在你可以在 ${sessions.[0..N} 属性中找到 sessionid,然后利用 ${sessions.length} 属性来访问计数。

从 ${sessionid.0} 会话中获取远程 MBean 会话属性:

<jmx:invoke
    name="Catalina:type=Manager,context=/ClusterTest,host=localhost"
    operation="getSessionAttribute"
    resultproperty="hello">
     <arg value="${sessionid.0}"/>
     <arg value="Hello" />
  </jmx:invoke>

在虚拟主机 localhost 上创建新的访问日志记录器值:

 <jmx:invoke
         name="Catalina:type=MBeanFactory"
         operation="createAccessLoggerValve"
         resultproperty="accessLoggerObjectName"
 >
     <arg value="Catalina:type=Host,host=localhost"/>
 </jmx:invoke>

现在可以利用 ${accessLoggerObjectName} 属性上存储的名称找到新的 MBean 了。