qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carl Trieloff <cctriel...@redhat.com>
Subject Re: WS-DM connector : Status of the work
Date Tue, 09 Dec 2008 13:03:49 GMT
Andrea Gazzarini wrote:
> Hi devs, I'm fighting with the WS-DM adapter for QMan and I must say that
> it's a very interesting topic...
> Just a simple mail to inform you about the status of the work. A first
> version of the Adapter / Connector is already done (you can see two examples
> below).
> The QMan WebService is implementig the following operation :
>
> - getMetadata() : this operation comes from WS-DM specs and returns the WSDL
> (that is, the metadata of a manageable resource);
>
> - getResourceProperty(propertyName) : this operation comes from WS-DM specs
> and returns the value of the requested property. Note that the property is
> supposed to be part of the QMan web service definition and it isn't a
> property of a managed object instance. QMan at the moment has only two
> properties :
>
>    1. connectedBrokerCount : how many brokers QMan is connected with;
>    2. managedInstanceCount : how many manageable instances (that is :
>    mbeans) are registered under the Q-MAN domain;
>
> - getResourcePropertyDocument() :  this operation comes from WS-DM specs and
> returns an XML containing all the properties of the manageable resource
> (QMan);
>
> - getMultipleResourceProperties(propNames []) : this operation comes from
> WS-DM specs and returns an array containing the values of the requested
> properties;
>
> - queryNames (jmxQuery): returns an array containings the name of the
> mbean(s) registered under the Q-MAN domain and matching the given jmx query;
> For example, if you call this operation with "*" as jmx query, it will
> return all the mbeans registered under the Q-MAN domain; if you use
> "*,class=queue" you will obtain all the queue instances;
>
> - getManagedEntityAttributeValue(objectName, attributeName) : this is the
> operation that should be invoked in order to get the value of an attribute
> of a managed instance (mbean)
>
> - invoke(objectName, operationName, arguments[]) : invokes a method on the
> given mbean instance using the given set of arguments. This is a void method
> so if the invocation succeeds there's no return value (see the example 1
> below). Otherwise, if there's an error, a soap fault is generated on the
> response and sent back to the client (see example 2 below)
>
>
> Example 1 : successfull invocation of purge(int) on a queue instance
>
> This is the WS-DM SOAP request for invoking the "invoke" method on QMan (and
> therefore on the specified managed object instance).
> In the example below I'm using the "Invoke" operation of the QMan Web
> Service in order to invoke the purge(int) method on a queue instance.
>
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
>     <soap:Header>
>         <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://127.0.0.1:8080/bridge/services/QMan</wsa:To>
>         <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://amqp.apache.org/qpid/management/qman/Invoke</wsa:Action>
>         <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">
> uuid:fe27279e-7426-98f9-a5b4-1ce404014eab</wsa:MessageID>
>         <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
>             <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous
> </wsa:Address>
>         </wsa:From>
>     </soap:Header>
>     <soap:Body>
>         <pfx0:Invoke xmlns:pfx0="http://amqp.apache.org/qpid/management/qman
> " xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
>             <pfx0:AttributesPart>
>
> brokerID=ds23321q-7422-98f1-b5b4-1ci404014cdb,type=Object,package=org.apache.qpid.broker,class=queue,objectID=s24958q-9981-77f1-b5b1-1ci818188cdb
>             </pfx0:AttributesPart>
>             <pfx0:OperationName>purge</pfx0:OperationName>
>             <pfx0:Arguments>
>                 <pfx0:Arguments xsi:type="xsd:int">1</pfx0:Arguments>
>             </pfx0:Arguments>
>         </pfx0:Invoke>
>     </soap:Body>
> </soap:Envelope>
>
> ...and this is the response from QMan! Operation purge was successfully
> executed.
>
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
>     <soapenv:Header>
>         <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
>         <wsa:ReplyTo>
>             <wsa:Address>http://www.w3.org/2005/08/addressing/none
> </wsa:Address>
>         </wsa:ReplyTo>
>         <wsa:MessageID>urn:uuid:231D56A39DAB615D1F12277783589102
> </wsa:MessageID>
>         <wsa:Action>http://amqp.apache.org/qpid/management/qman/Invoke
> </wsa:Action>
>         <wsa:RelatesTo wsa:RelationshipType="
> http://www.w3.org/2005/08/addressing/reply">
> uuid:2461e21c-0190-108c-2810-1e6d4acd2644</wsa:RelatesTo>
>     </soapenv:Header>
>     <soapenv:Body>
>         <muse-op:InvokeResponse
>             xmlns:muse-op="http://amqp.apache.org/qpid/management/qman"
>             xmlns:tns="http://qman.management.qpid.apache.org"
>             xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"/>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> Example 2 : invocation of resetLifespan() on a session instance with
> exception
>
> The request :
>
> <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
>     <soap:Header>
>         <wsa:To xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://127.0.0.1:8080/bridge/services/QMan</wsa:To>
>         <wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://amqp.apache.org/qpid/management/qman/Invoke</wsa:Action>
>         <wsa:MessageID xmlns:wsa="http://www.w3.org/2005/08/addressing">
> uuid:rt82921e-7192-09f2-a3b4-1ce862664ijs</wsa:MessageID>
>         <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing">
>             <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous
> </wsa:Address>
>         </wsa:From>
>     </soap:Header>
>     <soap:Body>
>         <pfx0:Invoke xmlns:pfx0="http://amqp.apache.org/qpid/management/qman
> " xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
>             <pfx0:AttributesPart>
>
> brokerID=ds23321q-7422-98f1-b5b4-1ci404014cdb,type=Object,package=org.apache.qpid.broker,class=session,objectID=k99282e-6251-12f4-r631-2ci991922cdb
>             </pfx0:AttributesPart>
>             <pfx0:OperationName>resetLifeSpan</pfx0:OperationName>
>             <pfx0:Arguments/>
>         </pfx0:Invoke>
>     </soap:Body>
> </soap:Envelope>
>
>
> ...and the corresponding response when you can see the thrown Soap Fault:
>
> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
>     <soapenv:Header>
>         <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
>         <wsa:ReplyTo>
>             <wsa:Address>http://www.w3.org/2005/08/addressing/none
> </wsa:Address>
>         </wsa:ReplyTo>
>         <wsa:MessageID>urn:uuid:BAB241AD57E917253C12277792998902
> </wsa:MessageID>
>         <wsa:Action>http://amqp.apache.org/qpid/management/qman/Invoke
> </wsa:Action>
>         <wsa:RelatesTo wsa:RelationshipType="
> http://www.w3.org/2005/08/addressing/reply">
> uuid:e5544f59-4cf3-4564-1daf-8fe550fa7dba</wsa:RelatesTo>
>     </soapenv:Header>
>     <soapenv:Body>
>         <soap:Fault xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
>             xmlns:tns="http://qman.management.qpid.apache.org"
>             xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance">
>             <soap:Code xmlns:qman="
> http://amqp.apache.org/qpid/management/qman">
>                 <soap:Value>qman:Service</soap:Value>
>             </soap:Code>
>             <soap:Reason>
>                 <soap:Text>UnknownObject</soap:Text>
>             </soap:Reason>
>             <soap:Detail>
>                 <qman:OperationInvocationFault xmlns:qman="
> http://amqp.apache.org/qpid/management/qman">
>                     <wsrf-bf:Timestamp xmlns:wsrf-bf="
> http://docs.oasis-open.org/wsrf/bf-2
> ">2008-11-27T10:48:21+01:00</wsrf-bf:Timestamp>
>                     <wsrf-bf:OriginatorReference xmlns:wsrf-bf="
> http://docs.oasis-open.org/wsrf/bf-2">
>                         <wsa:ReferenceParameters/>
>                         <wsa:Address>
> http://192.168.197.51:8080/bridge/services/QMan</wsa:Address>
>                     </wsrf-bf:OriginatorReference>
>                     <wsrf-bf:ErrorCode
>                         Dialect="
> http://amqp.apache.org/qpid/management/errno" xmlns:wsrf-bf="
> http://docs.oasis-open.org/wsrf/bf-2">
>                         <qman:StatusCode>1</qman:StatusCode>
>                     </wsrf-bf:ErrorCode>
>                 </qman:OperationInvocationFault>
>             </soap:Detail>
>         </soap:Fault>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> Any comments would be appreciated.
>
> Regards,
> Andrea
>
>   


Sorry for the late response, is there a patch to look at?

Carl.




Mime
View raw message