SYS.WSMon.wsman.Service
Class SYS.WSMon.wsman.Service Extends %SOAP.WebService [ System = 4 ]
Web Services and Methods to support InterSystems IRIS monitoring via the WS-Management specification
The services supported include wxf:Get, wsen:Enumerate, wsen:Pull, wsen:Release, wse:Subscribe, wse:Renew and wse:Unsubscribe. See the WS-Management specification for more information, and the comments on the Methods below for details of the implementation.
This is an example of the SOAP request and response message for a Transfer:Get from the WS-Management specification.
http://1.2.3.4/wsman/ http://example.org/2005/02/physicalDisk http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous http://schemas.xmlsoap.org/ws/2004/09/transfer/Get urn:uuid:d9726315-bc91-430b-9ed8-ce5ffb858a87 2 PT30S
http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse urn:uuid:217a431c-b071-3301-9bb8-5f538bec89b8 urn:uuid:d9726315-bc91-430b-9ed8-ce5ffb858a87 Acme, Inc. 123-SCSI 42 GB Drive 2 16384 80 63 512 0
Parameters
SERVICENAME
Parameter SERVICENAME = "CacheWSManService";
Name of the WebService.
ARGUMENTSTYLE
Parameter ARGUMENTSTYLE = "message";
Use unwrapped style messages
NAMESPACE
Parameter NAMESPACE = "http://www.intersystems.com/cache/wsman/1/xsd";
SOAP Namespace for the WebService
WSADDRESSING
Parameter WSADDRESSING = "AUTO";
WS-Management uses WS-Addressing and SOAP 1.2
SOAPVERSION
Parameter SOAPVERSION = 1.2;
SOAPHEADERS
Parameter SOAPHEADERS = "ResourceURI:SYS.WSMon.wsman.ResourceURI,SelectorSet:SYS.WSMon.wsman.SelectorSet,OptimizeEnumeration:SYS.WSMon.wsman.OptimizeEnumeration,Identifier:SYS.WSMon.wse.Identifier,RequestTotalItemsCountEstimate:SYS.WSMon.wsman.RequestTotalItemsCountEstimate,MaxEnvelopeSize:SYS.WSMon.wsman.MaxEnvelopeSize,OperationTimeout:SYS.WSMon.wsman.OperationTimeout,Locale:SYS.WSMon.wsman.Locale";
Methods
TransferGet
Method TransferGet() As SYS.WSMon.wsResource(XMLTYPECONSTRAINT="choice") [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/09/transfer/Get", WebMethod ]
This method implements the WS-Management WS-Transfer:Get action
The resource is taken from the wsman:ResourceURI header, and each resource requested returns a different class structure. The last piece of the resource indicates the class name.
The selector is from wsman:SelectorSet and identifies the instance.
Supported resources for TransferGet are:
http://intersystems.com/cache/wsman/1/resource/SYS.WSMon.wsSystem
http://intersystems.com/cache/wsman/1/resource/SYS.WSMon.wsDatabase (Selector Name="ID")
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Global
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Buffer (Selector Name="Size")
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Disk
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.ECPAppSvr
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.ECPDataSvr
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Routine
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.WriteDaemon (Selector Name="ID")
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Resource (Selector Name="ID")
Enumerate
Method Enumerate(Enumerate As SYS.WSMon.wsen.Enumerate) As SYS.WSMon.wsen.EnumerateResponse [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Enumerate", WebMethod ]
Support for a WS-Enumerate Enumerate request, as defined in the WS-Management specification.
The resource is taken from the wsman:ResourceURI header, and each resource requested returns a different class structure. The last piece of the resource indicates the class name.
Only simple, non-filtered Enumeration is supported at this time. We do support (and recommend) the OptimizeEnumeration header which allows enumerated class instances to be returned as part of the response (rather than requiring a separate wse:Pull request).
Resources which can be enumerated:
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Buffer
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.WriteDaemon
http://intersystems.com/cache/wsman/1/resource/SYS.Stats.Resource
http://intersystems.com/cache/wsman/1/resource/SYS.WSMon.wsDatabase
Pull
Method Pull(Pull As SYS.WSMon.wsen.Pull) As SYS.WSMon.wsen.PullResponse [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Pull", WebMethod ]
Support for a WS-Enumerate Pull request, as defined in the WS-Management specification.
Returns enumerated class instances based on the EnumerationContext returned in the wse:Enumerate response (or the reponse from a previous wse:Pull request).
Release
Method Release(Release As SYS.WSMon.wsen.Release) [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/09/enumeration/Release", WebMethod ]
Support for a WS-Enumerate Release request, as defined in the WS-Management specification.
This service is currently just a no-op, as no context is maintained beyond what's returned in the EnumerationContext, but we accept the request without error (as recommended in the WS-Management spec).
Subscribe
Method Subscribe(Subscribe As SYS.WSMon.wse.Subscribe) As SYS.WSMon.wse.SubscribeResponse [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/08/eventing/Subscribe", WebMethod ]
Support for a WS-Eventing Subscribe request, as defined in the WS-Management specification.
No Filtering supported at this time. No EndTo message is currently sent, and the EndTo address (if present) must be the same as the NotifyTo address. Only the default 'Push' delivery mode is currently supported.
Notifications which get returned once a system has subscribed are the same 'events' as signaled by SNMP. See the InterSystems IRIS Monitoring Guide for details. The Notifications sent to a subscriber's EventSink will have a SOAP Action of "http://www.intersystems.com/cache/wsmon/1/SYS.WSMon.CacheEvent", and will contain an instance of the SYS.WSMon.wsEvent class as the body.
A Notification message would look something like this: <?xml version="1.0" encoding="UTF-8" ?> 32768 PT30S http://intersystems.com/cache/wsman/1/resource/SYS.WSMon.wsEvent http://www.intersystems.com/cache/wsmon/1/SYS.WSMon.CacheEvent urn:uuid:E4480818-98AC-4F8D-8FC3-2EF4A20055A9 http://www.w3.org/2005/08/addressing/anonymous http://rdavisE6500:8080/csp/sys/SYS.WSMon.wsman.Service.cls rdavisE6500 C092 cacheTest 3 1 This is a test
Unsubscribe
Method Unsubscribe(Unsubscribe As SYS.WSMon.wse.Unsubscribe) As SYS.WSMon.wse.UnsubscribeResponse [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/08/eventing/Unsubscribe", WebMethod ]
Support for a WS-Eventing Unsubscribe request, as defined in the WS-Management specification.
This deletes the current subscription based on the wse:Identifier.
Renew
Method Renew(Renew As SYS.WSMon.wse.Renew) As SYS.WSMon.wse.RenewResponse [ SoapAction = "http://schemas.xmlsoap.org/ws/2004/08/eventing/Renew", WebMethod ]
Support for a WS-Eventing Renew request, as defined in the WS-Management specification.
This renews and extends the Expires time on the current subscription based on the wse:Identifier.
Notify
Method Notify(Event As SYS.WSMon.wsEvent) As %SOAP.OneWay [ Internal, SoapAction = "http://www.intersystems.com/cache/wsmon/1/SYS.WSMon.CacheEvent", WebMethod ]
Support for testing a WS-Eventing Notification
wsmanFault
Method wsmanFault(code As %String, subcode As %String, detail As %String, action As %String) [ Internal ]
Send a Fault response in WS-Management format. The Fault 'code', 'subcode', 'detail', and 'action' should come from the Master Faults tables in the WS-Management spec.
enum
Method enum(class As %String, ByRef next As %Integer, max As %Integer) As SYS.WSMon.wsen.Items [ Internal ]
Enumerate items in a class for optimized Enumerate or Pull 'next' is the EnumerationContext, indicating the first instance to return Passed byref so we can return the "next" instance index Returns 0 to signal end of enumeration 'max' is MaxElements, indicating how many to return (default is 1) Passing a 'max' of 0 create a count of instances (in 'next'), with no 'items' returned
OnPreWebMethod
Method OnPreWebMethod() [ Internal, ServerOnly = 1 ]
The OnPreWebMethod method will be called before any web method in a web service. WS-Management uses this to process a couple of Control Headers. We accept MaxEnvelopeSize with a minimum value of 8192 ... none of our responses should exceed this. OperationTimeout and Locale are faulted right now if mustUnderstand is 'true'.