Learning
Documentation
Community
Open Exchange
Global Masters
Home / Class Reference / %SYS namespace / SYS.WSMon.wsman.Service
Private  Storage   

SYS.WSMon.wsman.Service


class SYS.WSMon.wsman.Service extends
%SOAP.WebService

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.

<s:Envelope
  xmlns:s="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
  xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">
  <s:Header>
    <wsa:To>http://1.2.3.4/wsman/</wsa:To>
    <wsman:ResourceURI>http://example.org/2005/02/physicalDisk
      </wsman:ResourceURI>
    <wsa:ReplyTo>
      <wsa:Address>
        http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
      </wsa:Address>
    </wsa:ReplyTo> 
    <wsa:Action>
      http://schemas.xmlsoap.org/ws/2004/09/transfer/Get
    </wsa:Action>
    <wsa:MessageID>
      urn:uuid:d9726315-bc91-430b-9ed8-ce5ffb858a87
    </wsa:MessageID>
    <wsman:SelectorSet>
      <wsman:Selector Name="LUN"> 2 </wsman:Selector>
    </wsman:SelectorSet>
    <wsman:OperationTimeout> PT30S </wsman:OperationTimeout>
  </s:Header>
  <s:Body/>
</s:Envelope>
<s:Envelope
  xmlns:s="http://www.w3.org/2003/05/soap-envelope"
  xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
  xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">
  <s:Header>
    <wsa:To>
      http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous
    </wsa:To>
    <wsa:Action s:mustUnderstand="true">
      http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse
    </wsa:Action>
    <wsa:MessageID s:mustUnderstand="true">
      urn:uuid:217a431c-b071-3301-9bb8-5f538bec89b8
    </wsa:MessageID>
    <wsa:RelatesTo>
      urn:uuid:d9726315-bc91-430b-9ed8-ce5ffb858a87
    </wsa:RelatesTo>
  </s:Header>
  <s:Body>
    <PhysicalDisk 
      xmlns="http://schemas.example.org/2005/02/samples/physDisk">
      <Manufacturer> Acme, Inc. </Manufacturer>
      <Model> 123-SCSI 42 GB Drive </Model>
      <LUN> 2 </LUN>
      <Cylinders> 16384 </Cylinders>
      <Heads> 80 </Heads>
      <Sectors> 63 </Sectors>
      <OctetsPerSector> 512 </OctetsPerSector>
      <BootPartition> 0 </BootPartition>
    </PhysicalDisk>
  </s:Body>
</s:Envelope>

Inventory


Parameters Properties Methods Queries Indices ForeignKeys Triggers
6 11


Summary


Properties
Action AddressingIn AddressingOut Attachments
Base64LineBreaks BodyId BodyXmlId ContentId
ContentLocation FaultAddressing FaultHeaders HeadersIn
HeadersOut ImportHandler IsMTOM Location
MTOMRequired MethodName MsgClass NamespacesOut
OneWay OutputTypeAttribute Password RMSession
ReferencesInline RequestMessageStart ResponseAttachments ResponseContentId
ResponseContentLocation SAXFlags SecurityContextToken SecurityIn
SecurityNamespace SecurityOut SessionCookie SoapFault
SoapVersion Timeout Transport Username
WriteSOAPBodyMethod policyAlternative

Methods
%%OIDGet %AddEnvelopeNamespace %AddToSaveSet %BindExport
%BuildObjectGraph %ClassIsLatestVersion %ClassName %Close
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetElementFromBody %GetParameter %IncrementCount
%IsA %IsModified %New %NormalizeObject
%ObjectModified %OnCreateRMSession %OriginalNamespace %PackageName
%RemoveFromSaveSet %RestoreTCPDevice %SaveTCPDevice %SerializeObject
%SetModified %ValidateObject BeginSOAPEnvelope CheckSOAPEnvelope
ConvertParameter Decrypt Encrypt EncryptBroker
EndSOAPEnvelope Enumerate EscapeHTML EscapeURL
Fault FileWSDL GetBinaryWriter GetBodyId
GetMsgClass GetSecurityOut HandleException HyperEventBody
HyperEventCall HyperEventFrame HyperEventHead Include
Initialize InitializeSecurity InsertHiddenField InsertHiddenFields
InvokeMsgClass IsPrivate Link LogGlobal
LogInput LogInputHTTPHeaders LogOutput LogOutputHTTPHeaders
LogText MakeFault MakeFault12 MakeFault12Code
MakeFault12Text MakeSecurityFault MakeStatusFault Namespace
NormalizeName Notify OnCancelSecureConversation OnCompile
OnHTTPHeader OnPage OnPageError OnPostHTTP
OnPostHyperEvent OnPostSOAP OnPostWebMethod OnPreHTTP
OnPreHyperEvent OnPreSOAP OnPreWebMethod OnRequestMessage
OnSOAPRequest OnStartSecureConversation Page Process
ProcessBinary ProcessBody ProcessBodyNode ProcessHTTP
ProcessSOAPEnvelope Pull QuoteJS ReadBinaryMessage
Release Renew Reset ResetSecurity
ReturnFault ReturnInternalStatusFault ReturnOneWay RewriteURL
SecurityOutGet SecurityOutSet SessionCookieSet SessionCookieSetInternal
ShowError StartTimer StopTimer Subscribe
ThrowError TimeoutSet TransferGet UnescapeHTML
UnescapeURL Unsubscribe WSAddSignatureConfirmation WebMethod
WriteFaultHeaders WriteHTTPContent WriteSOAPHeaders WriteSOAPMessage
WriteStartAttachments enum wsmanFault


Parameters


• parameter ARGUMENTSTYLE = "message";
Use unwrapped style messages
• parameter NAMESPACE = "http://www.intersystems.com/cache/wsman/1/xsd";
SOAP Namespace for the WebService
• parameter SERVICENAME = "CacheWSManService";
Name of the WebService.
• 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";
A list of supported SOAP headers is specified as a comma separated list of input header specifications. Each specification is of the form "headerName:headerClass" where headerName is the element name of the supported header and headerClass is the %SOAP.Header subclass that corresponds to that header. This list defines all headers supported in the SOAP request.
• parameter SOAPVERSION = 1.2;
The SOAPVERSION parameter specifies the version of SOAP which is supported. The SOAPVERSION parameter effects only the WSDL that is created for this service. The version for which requests are accepted is specified by REQUESTVERSON. Possible values for the version are 1.1 and 1.2. The value "" specifies that both SOAP 1.1 and SOAP 1.2 are supported. The default is "1.1"
• parameter WSADDRESSING = "AUTO";
WS-Management uses WS-Addressing and SOAP 1.2

Methods


• method Enumerate(Enumerate As SYS.WSMon.wsen.Enumerate) as SYS.WSMon.wsen.EnumerateResponse [ 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
• method Notify(Event As SYS.WSMon.wsEvent) as %SOAP.OneWay [ WebMethod ]
Support for testing a WS-Eventing Notification
• method OnPreWebMethod()
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'.
• method Pull(Pull As SYS.WSMon.wsen.Pull) as SYS.WSMon.wsen.PullResponse [ 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).
• method Release(Release As SYS.WSMon.wsen.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).
• method Renew(Renew As SYS.WSMon.wse.Renew) as SYS.WSMon.wse.RenewResponse [ 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.
• method Subscribe(Subscribe As SYS.WSMon.wse.Subscribe) as SYS.WSMon.wse.SubscribeResponse [ 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" ?>
<SOAP-ENV:Envelope 
  xmlns:SOAP-ENV='http://www.w3.org/2003/05/soap-envelope' 
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
  xmlns:s='http://www.w3.org/2001/XMLSchema' 
  xmlns:wsa='http://www.w3.org/2005/08/addressing'>
 <SOAP-ENV:Header>
    <MaxEnvelopeSize xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">32768</MaxEnvelopeSize>
    <OperationTimeout xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">PT30S</OperationTimeout>
    <ResourceURI xmlns="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd">http://intersystems.com/cache/wsman/1/resource/SYS.WSMon.wsEvent</ResourceURI>
    <wsa:Action>http://www.intersystems.com/cache/wsmon/1/SYS.WSMon.CacheEvent</wsa:Action>
    <wsa:MessageID>urn:uuid:E4480818-98AC-4F8D-8FC3-2EF4A20055A9</wsa:MessageID>
    <wsa:ReplyTo><wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address></wsa:ReplyTo>
    <wsa:To>http://rdavisE6500:8080/csp/sys/SYS.WSMon.wsman.Service.cls</wsa:To>
 </SOAP-ENV:Header>
 <SOAP-ENV:Body><Event xmlns="http://www.intersystems.com/cache/wsman/1/xsd">
    <System>rdavisE6500</System>
    <Instance>C092</Instance>
    <Name>cacheTest</Name>
    <Severity>3</Severity>
    <SnmpId>1</SnmpId>
    <AdditionalInfo>This is a test</AdditionalInfo>
 </Event></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
• method TransferGet() as SYS.WSMon.wsResource [ 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")
• method Unsubscribe(Unsubscribe As SYS.WSMon.wse.Unsubscribe) as SYS.WSMon.wse.UnsubscribeResponse [ 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.
• method enum(class As %String, ByRef next As %Integer, max As %Integer) as SYS.WSMon.wsen.Items
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
• method wsmanFault(code As %String, subcode As %String, detail As %String, action As %String)
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.