Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "SMILA/Documentation/JMXClient"
< SMILA | Documentation
m |
|||
Line 181: | Line 181: | ||
<source lang="xml"> | <source lang="xml"> | ||
<jmxclient xmlns="http://www.eclipse.org/smila/management/jmx/client" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | <jmxclient xmlns="http://www.eclipse.org/smila/management/jmx/client" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
− | xsi:noNamespaceSchemaLocation="schemas/ | + | xsi:noNamespaceSchemaLocation="schemas/jmxclient.xsd" |
> | > | ||
<connection id="local" host="localhost" port="9004"/> | <connection id="local" host="localhost" port="9004"/> |
Revision as of 09:55, 10 February 2009
What is JMXClient
The main goal of generic JMX Client is to execute management operations from console; For example, its able to invoke JMX operation, to read JMX attribute, to process result by regular expression, to wait while some term becomes equal to other term and many more.
Configuration
Source
Schema: "org.eclipse.smila.management.jmx.client/schemas/jmxclient.xsd" Location: "org.eclipse.smila.management.jmx.client/config.xml"
Application
Schema: "jmxclient/schemas/jmxclient.xsd" Location: "jmxclient/config.xml"
Schema
<xs:schema targetNamespace="http://www.eclipse.org/smila/management/jmx/client" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.eclipse.org/smila/management/jmx/client" > <xs:complexType name="ConnectionConfigType"> <xs:attribute name="id" type="xs:string" use="required"/> <xs:attribute name="host" type="xs:string" use="optional" default="localhost"/> <xs:attribute name="port" type="xs:int" use="optional" default="9004"/> </xs:complexType> <xs:complexType name="ItemType"> <xs:attribute name="echo" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="PropertyType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:attribute name="domain" type="xs:string" use="required"/> <xs:attribute name="key" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="AttributeType"> <xs:complexContent> <xs:extension base="PropertyType"/> </xs:complexContent> </xs:complexType> <xs:complexType name="ParameterType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:attribute name="class" type="xs:string" use="optional" default="java.lang.String"/> <xs:attribute name="value" type="xs:string" use="optional"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="ConstantType"> <xs:complexContent> <xs:extension base="ParameterType"/> </xs:complexContent> </xs:complexType> <xs:complexType name="OperationType"> <xs:complexContent> <xs:extension base="PropertyType"> <xs:sequence> <xs:element name="parameter" type="ParameterType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="printResult" type="xs:boolean" use="optional" default="true"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="RegexpType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:attribute name="pattern" type="xs:string" use="required"/> <xs:attribute name="group" type="xs:int" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="BooleanOpType" abstract="true"> </xs:complexType> <xs:complexType name="UnaryOpType" abstract="true"> <xs:complexContent> <xs:extension base="BooleanOpType"> <xs:sequence> <xs:element name="cmd" type="CmdConfigType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="BinaryOpType" abstract="true"> <xs:complexContent> <xs:extension base="BooleanOpType"> <xs:sequence minOccurs="2" maxOccurs="2"> <xs:choice> <xs:element name="cmd" type="CmdConfigType"/> <xs:element name="const" type="ConstantType"/> </xs:choice> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="EqualsOpType"> <xs:complexContent> <xs:extension base="BinaryOpType"/> </xs:complexContent> </xs:complexType> <xs:complexType name="WaitType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:sequence> <!-- TODO: extend with other opeartions required--> <xs:element name="equals" type="EqualsOpType"/> <xs:element name="cmd" type="CmdConfigType" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute name="pause" type="xs:int" use="optional" default="5000"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CustomType"> <!-- TODO --> <xs:complexContent> <xs:extension base="ItemType"> <xs:attribute name="class" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="CmdConfigType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:sequence> <xs:choice minOccurs="1" maxOccurs="unbounded"> <xs:element name="attribute" type="AttributeType"/> <xs:element name="operation" type="OperationType"/> <xs:element name="regexp" type="RegexpType"/> <xs:element name="wait" type="WaitType"/> <xs:element name="custom" type="CustomType"/> </xs:choice> </xs:sequence> <xs:attribute name="id" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="SampleConfigType"> <xs:complexContent> <xs:extension base="ItemType"> <xs:attribute name="value" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="JmxClientConfigType"> <xs:sequence> <xs:element name="connection" type="ConnectionConfigType" minOccurs="1" maxOccurs="unbounded"/> <xs:element name="cmd" type="CmdConfigType" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="sample" type="SampleConfigType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="jmxclient" type="JmxClientConfigType"/> </xs:schema>
Sample configuration file
<jmxclient xmlns="http://www.eclipse.org/smila/management/jmx/client" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schemas/jmxclient.xsd" > <connection id="local" host="localhost" port="9004"/> <connection id="test" host="10.0.0.1" port="23123"/> <cmd id="crawl" echo="Starting crawler by datasource id"> <operation domain="SMILA" key="org.eclipse.smila.connectivity.framework.CrawlerController" name="startCrawl" echo="Starting crawl [%1]..." > <parameter echo="data source id"/> </operation> </cmd> <cmd id="crawlStop" echo="Stop crawler by datasource id"> <operation domain="SMILA" key="org.eclipse.smila.connectivity.framework.CrawlerController" name="stopCrawl" echo="Stopping crawl [%1]..." > <parameter echo="data source id"/> </operation> </cmd> <cmd id="crawlW" echo="Starting crawler by datasource id and wait for finished"> <operation domain="SMILA" key="org.eclipse.smila.connectivity.framework.CrawlerController" name="startCrawl" echo="Starting crawl [%1]..." > <parameter echo="data source id"/> </operation> <!-- result will be similar to "Crawl with the dataSourceId = file and hashcode [595826] successfully started!" we have to extract hashcode from string --> <regexp pattern="^.*\[(\d+)\].*$" group="1" echo="Extracting crawler hash code..."/> <wait echo="Waiting while crawl ends..." pause="1000"> <equals> <cmd id="fakeCmdId" echo="Getting crawler status by datasource id"> <operation domain="SMILA" key="org.eclipse.smila.connectivity.framework.CrawlerController" name="getStatus" echo="Getting crawl [%1] status..." > <!-- value="%1" --> <parameter echo="data source id"/> </operation> </cmd> <const value="Finished" echo="Crawling finished status"/> </equals> <cmd id="fakeCmdId2" echo="Reading craler performance counters"> <attribute domain="SMILA Crawlers" key="Crawlers,crawler=%2,name=Total,counter=records" name="Value" echo="Detecting total records crawled..." /> <attribute domain="SMILA Crawlers" key="Crawlers,crawler=%2,name=Instances,hash=%0,counter=records" name="Value" echo="Detecting records crawled for that instance..." /> <attribute domain="SMILA Crawlers" key="Crawlers,crawler=%2,name=Instances,hash=%0,buffer=Errors" name="Errors" echo="Detecting errors..." /> </cmd> </wait> </cmd> <cmd id="activeCrawls" echo="Reading active crawls"> <attribute domain="SMILA" key="org.eclipse.smila.connectivity.framework.CrawlerController" name="ActiveCrawls" echo="Detecting active crawls..." /> </cmd> <cmd id="createIndex" echo="Create index by name"> <operation domain="SMILA" key="org.eclipse.smila.lucene" name="createIndex" echo="Creating index [%1]..." > <parameter echo="index name"/> </operation> </cmd> <cmd id="reorganizeIndex" echo="Optimize index by name"> <operation domain="SMILA" key="org.eclipse.smila.lucene" name="reorganizeIndex" echo="Optimizing index [%1]..." printResult="false" > <parameter echo="index name"/> </operation> </cmd> <cmd id="deleteIndex" echo="Delete index by name"> <operation domain="SMILA" key="org.eclipse.smila.lucene" name="deleteIndex" echo="Deleting index [%1]..." printResult="false" > <parameter echo="index name"/> </operation> </cmd> <cmd id="isIndexExists" echo="Check is index exists by name"> <operation domain="SMILA" key="org.eclipse.smila.lucene" name="isIndexExists" echo="Checking index [%1]..." > <parameter echo="index name"/> </operation> </cmd> <cmd id="renameIndex" echo="Rename index"> <operation domain="SMILA" key="org.eclipse.smila.lucene" name="renameIndex" echo="Renaming index [%1] to [%2]..." printResult="false" > <parameter echo="index name"/> <parameter echo="new index name"/> </operation> </cmd> <sample value="run crawl file" echo="starts filesystem crawler"/> <sample value="run crawlW file FilesystemCrawlerDS" echo="starts filesystem crawler and waits crawling end"/> </jmxclient>