从 1.2.19 版本开始,JK 版本包含其他 ant 任务。它们可用于通过特殊状态工作器管理 JK Web 服务器插件。
状态工作器 Ant 任务
简介
使用远程 Ant 任务管理 JK
简单的 antlib 集成
<?xml version="1.0" encoding="UTF-8"?>
<project name="modjk-status"
xmlns:jk="urn:org-apache-jk-status"
default="status" basedir=".">
<property name="profile" value=""/>
<property file="jkstatus${profile}.properties"/>
<property file="jkstatus.properties.default"/>
<path id="jkstatus.classpath">
<fileset dir="${catalina.home}/bin">
<include name="commons-logging-api-*.jar"/>
</fileset>
<pathelement location="${catalina.home}/server/lib/catalina-ant.jar"/>
<pathelement location="../dist/tomcat-jkstatus-ant.jar"/>
<pathelement location="${catalina.home}/server/lib/tomcat-util.jar"/>
</path>
<typedef resource="org/apache/jk/status/antlib.xml"
uri="urn:org-apache-jk-status" classpathref="jkstatus.classpath"/>
<target name="status" >
<jk:status url="${jkstatus.url}"
username="${jkstatus.username}"
password="${jkstatus.password}"
resultproperty="worker"
echo="off"
failOnError="off"/>
<echoproperties prefix="worker" />
</target>
</project>
测试结果
[echoproperties] #Ant properties
[echoproperties] #Sun Dec 10 20:40:21 CET 2006
[echoproperties] worker.node01.lbmult=1
[echoproperties] worker.loadbalancer.lock=Optimistic
[echoproperties] worker.node02.transferred=0
[echoproperties] worker.loadbalancer.sticky_session=false
[echoproperties] worker.node01.distance=0
[echoproperties] worker.node01.client_errors=0
[echoproperties] worker.node02.lbmult=1
[echoproperties] worker.node01.port=7309
[echoproperties] worker.node01.elected=0
[echoproperties] worker.loadbalancer.good=2
[echoproperties] worker.loadbalancer.method=Sessions
[echoproperties] worker.server.port=2090
[echoproperties] worker.loadbalancer.map.2.type=Wildchar
[echoproperties] worker.node02.route=node02
[echoproperties] worker.node01.route=node01
[echoproperties] worker.node01.lbvalue=0
[echoproperties] worker.node01.lbfactor=1
[echoproperties] worker.node01.max_busy=0
[echoproperties] worker.node01.busy=0
[echoproperties] worker.node01.redirect=
[echoproperties] worker.node02.distance=0
[echoproperties] worker.loadbalancer.name=loadbalancer
[echoproperties] worker.loadbalancer.sticky_session_force=false
[echoproperties] worker.node02.state=N/A
[echoproperties] worker.node01.state=N/A
[echoproperties] worker.node01.transferred=0
[echoproperties] worker.loadbalancer.map.length=2
[echoproperties] worker.node01.type=ajp13
[echoproperties] worker.node01.address=127.0.0.1\:7309
[echoproperties] worker.result.type=OK
[echoproperties] worker.loadbalancer.member_count=2
[echoproperties] worker.loadbalancer.map_count=2
[echoproperties] worker.loadbalancer.mtime_to_maintenance_min=12
[echoproperties] worker.loadbalancer.mtime_to_maintenance_max=75
[echoproperties] worker.node02.lbfactor=1
[echoproperties] worker.node02.max_busy=0
[echoproperties] worker.jk_version=mod_jk/1.2.21-dev
[echoproperties] worker.loadbalancer.bad=0
[echoproperties] worker.node02.redirect=
[echoproperties] worker.node01.host=localhost
[echoproperties] worker.node02.activation=ACT
[echoproperties] worker.loadbalancer.map.1.source=JkMount
[echoproperties] worker.loadbalancer.retries=2
[echoproperties] worker.node02.elected=0
[echoproperties] worker.loadbalancer.map.2.source=JkMount
[echoproperties] worker.node02.port=7409
[echoproperties] worker.loadbalancer.length=2
[echoproperties] worker.node02.lbvalue=0
[echoproperties] worker.loadbalancer.degraded=0
[echoproperties] worker.loadbalancer.map.1.type=Wildchar
[echoproperties] worker.loadbalancer.map.2.uri=/myapps*
[echoproperties] worker.node02.client_errors=0
[echoproperties] worker.length=1
[echoproperties] worker.node01.domain=d20
[echoproperties] worker.loadbalancer.recover_time=60
[echoproperties] worker.server.name=localhost
[echoproperties] worker.node02.domain=
[echoproperties] worker.result.message=Action finished
[echoproperties] worker.node02.busy=0
[echoproperties] worker.node01.readed=0
[echoproperties] worker.node01.errors=0
[echoproperties] worker.node02.address=127.0.0.1\:7409
[echoproperties] worker.node02.readed=0
[echoproperties] worker.loadbalancer.busy=0
[echoproperties] worker.web_server=Apache/2.0.59 (Unix) mod_jk/1.2.21-dev
[echoproperties] worker.node02.errors=0
[echoproperties] worker.node02.type=ajp13
[echoproperties] worker.loadbalancer.map.1.uri=/ClusterTest*
[echoproperties] worker.node01.activation=ACT
[echoproperties] worker.loadbalancer.max_busy=0
[echoproperties] worker.loadbalancer.type=lb
[echoproperties] worker.node02.host=localhost
更新负载均衡器
<target name="updatelb" >
<jk:updateloadbalancer url="${jkstatus.url}"
username="${jkstatus.username}"
password="${jkstatus.password}"
loadbalancer="loadbalancer"
method="Busyness"
retries="2"
recoverWaitTime="60"
lock="Optimistic"
forceStickySession="false"
stickySession="false"/>
</target>
更新工作器
<target name="updatew" >
<jk:updateworker url="${jkstatus.url}"
username="${jkstatus.username}"
password="${jkstatus.password}"
loadbalancer="loadbalancer"
worker="node01"
lbfactor="2"
activation="Active"
redirect=""
domain=""
route="node01"
distance="0"/>
</target>
重置工作器
<target name="reset" >
<jk:reset url="${jkstatus.url}"
username="${jkstatus.username}"
password="${jkstatus.password}"
loadbalancer="loadbalancer"
worker="node01"
/>
</target>