第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端

SYS.WSMon.Client 类和相关类是一个 IRIS 网络服务客户端,可以在同一个 IRIS 实例或另一个 IRIS 实例中调用 SYS.WSMon.Server 网络服务的方法。

此 Web 客户端类使用以下 LOCATION 参数:

Parameter LOCATION = "http://server:port/csp/sys/SYS.WSMon.Service.cls"

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。

以与使用其他 IRIS 网络服务客户端相同的方式使用此网络客户端:

  1. 创建 Web 客户端类的实例。
  2. 如果需要,设置其 Location 属性。

如果要使用的 SYS.WSMon.Server Web 服务与客户端位于不同的计算机上,或者如果它使用 52773 以外的端口,则这是必需的。

  1. 如果需要,设置其他属性。
  2. 调用网络方法。
  3. 检查 web 方法返回的值。

详细信息取决于调用的 Web 方法;请参阅“监视 Web 服务的 Web 方法”部分并查看返回类型的类参考。

下面显示了一个示例终端会话:

USER>set $namespace = "%SYS"
 
%SYS>set client=##class(SYS.WSMon.Client).%New()
 
%SYS>set client.Location="http://localhost:57799/csp/sys/SYS.WSMon.Service.cls"
 
%SYS>set myroutinestats=client.GetRoutine()
 
%SYS>write myroutinestats.RtnCallsLocal
19411581
%SYS>write myroutinestats.RtnCallsRemote
0
%SYS>write myroutinestats.RtnCommands
432764817
%SYS>

更典型的是,以编程方式创建和使用客户端,可能是为了检索数据以显示在用户界面中。

注意:请记住,SYS.WSMon 包仅在 %SYS 命名空间中可用,这意味着必须在该命名空间中才能执行此处描述的步骤。

处理事件

IRIS 提供了一个示例 Web 服务(SYS.WSMon.EventSink),可以接收和处理任何日志监控 Web 服务发送的事件。可以使用此 Web 服务或创建和使用自己的 Web 服务。

使用示例事件接收器 Web 服务

SYS.WSMon.EventSink是一个示例 IRIS Web 服务,可以接收和处理事件。

对于给定的 IRIS 实例,日志监控 Web 服务可从以下 URL 获得:

http://server:port/csp/sys/SYS.WSMon.EventSink.cls

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。

Web 服务有一种方法:

CacheEventSink()

Method CacheEventSink(event As SYS.WSMon.wsEvent) As %Integer

Windows 平台上,此示例方法在事件发生时显示一个弹出窗口;对于其他平台,它会向 ^SYS("MONITOR","WSMON","EVENT_RECEIVED",$h) 添加一个条目。

此方法始终返回 1

要订阅此示例服务以便它接收来自监控 Web 服务的事件,请在终端中执行以下操作:

USER>set $namespace = "%sys"
 
%SYS>set client=##class(SYS.WSMon.Client).%New()
 
%SYS>set eventsinklocation="http://localhost:52773/csp/sys/SYS.WSMon.EventSink.cls"
 
%SYS>set subscriptionid=client.EventSubscribe(eventsinklocation)
 
%SYS>write subscriptionid
CacheEventSubscription_2

这里的 eventsinklocation 是将处理事件的事件接收器 Web 服务的 URL

创建自己的事件接收器 Web 服务

要创建自己的事件接收器 Web 服务,请使用 Studio 中的 SOAP 向导从以下 WSDL 生成 Web 服务:

http://server:port/csp/sys/SYS.WSMon.EventSink.cls?WSDL=1

其中,服务器是运行 IRIS 的服务器,端口是 IRIS Web 服务服务器使用的端口。

然后修改生成的 Web 服务中的 CacheEventSink() 方法以包含自定义逻辑。