Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Web サービスを使用した Caché の監視

この付録では、Caché でサポートされる、WS-Management 仕様に準拠した機能の使用方法について簡単に説明します。それらの機能を使用すると、SOAP を介してリモートで Caché インスタンスを監視できるようになります。

Caché での WS-Monitoring のサポートの概要

SYS.WSMon パッケージは、WS-Management 仕様Opens in a new tabに従って、Caché インスタンスをリモートで監視するための Web サービスを提供します。このパッケージは、機能面で SNMP インタフェース (このドキュメントの付録 “SNMP を使用した Caché の監視” を参照) および WMI インタフェース (このドキュメントの付録 “WMI を使用した Caché の監視” を参照) と類似していますが、組み込みの Caché Web サービス・サポートを使用している点が異なります。

WS-Management のサポートには、以下が含まれます。

  • Caché モニタリング Web サービス (SYS.WSMon.ServiceOpens in a new tab) は、Caché インスタンスに関する情報を返すメソッドを提供します。

  • Caché Web クライアント (SYS.WSMon.ClientOpens in a new tab) は、そのモニタリング Web サービスまたは別の Caché インスタンスのモニタリング Web サービスのメソッドを呼び出します。

    この Web クライアントを使用する代わりに、独自の Web クライアントを作成することができます (場合によってはサードパーティ・テクノロジの使用も可能)。

  • 各種 XML 対応クラスは、Web サービスとクライアントが監視情報を表示するために使用されます。

    これらのクラスには SYS.WSMon.wsEventOpens in a new tab が含まれ、それによってイベントの表示が可能になります。

  • サンプル・イベント・シンク Web サービス (SYS.WSMon.EventSinkOpens in a new tab) は、イベントを受信して処理します。SOAP 呼び出しを使用し、このサンプル・イベント・シンク・サービスをサブスクライブすることにより、すべてのモニタリング Web サービスのイベントを受信できます。

    このサンプルを使用する代わりに、独自のサンプルを作成することができます (場合によってはサードパーティ・テクノロジの使用も可能)。

これらのクラスは、%SYS ネームスペースでのみ使用できます。

基本的な監視として、以下に示すように、Caché モニタリング Web サービスと別インスタンスの Web クライアントを使用できます。

generated description: wsmon basic monitoring

より高度な例としては、別の Caché インスタンス上で実行されている可能性もある イベント・シンク・サービスを Web クライアントがサブスクライブすることがあります。以下はその例です。

generated description: wsmon subscription

イベント・シンク Web サービスでは、業務に必要なあらゆる処理を実行できます。

Atelier に用意されている SOAP ウィザードを使用して、Web サービスおよび Web クライアントを WSDL から生成できます。このウィザードの使用法の詳細は、"Caché での Web サービスおよび Web クライアントの作成" を参照してください。(同様のウィザードは、さまざまなサードパーティ・テクノロジによっても提供されています。)

サポートの詳細

InterSystems では、WS-Management の仕様の以下の部分をサポートします。

  • wxf:Get

  • wsen:Enumerate

  • wsen:Pull

  • wsen:Release

  • wse:Subscribe

  • wse:Renew

  • wse:Unsubscribe

詳細は、WS-Management の仕様 (http://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf)Opens in a new tab を参照してください。

モニタリング Web サービスの URL

任意の Caché インスタンスに対して、Caché モニタリング Web サービスを次の URL で使用できます。

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

server は、Caché が実行されているサーバです。また、port は、Caché Web サーバが使用するポートです。以下はその例です。

http://localhost:57772/csp/sys/SYS.WSMon.Service.cls

同様に、この Web サービスの WSDL を次の URL で使用できます。

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

モニタリング Web サービスの Web メソッド

SYS.WSMon.ServiceOpens in a new tab クラスには、以下の Web メソッドが用意されています。

EnumBuffer()
method EnumBuffer() as %XML.DataSet

すべてのバッファ・サイズの統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.BufferOpens in a new tab クラスの Sample() クラス・クエリが使用されます。

%XML.DataSetOpens in a new tab を使用した作業の詳細は、"é" の “SOAP メッセージでのデータセットの使用” の章、または %XML.DataSetOpens in a new tab のクラスリファレンスを参照してください。

SYS.Stats.BufferOpens in a new tab のクラスリファレンスも参照してください。

EnumDatabase()
method EnumDatabase() as %XML.DataSet

そのインスタンスのすべてのデータベースを列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.WSMon.wsDatabaseOpens in a new tab クラスの List() クラス・クエリが使用されます。

EnumBuffer() のコメントおよびクラスリファレンスの SYS.WSMon.wsDatabaseOpens in a new tab を参照してください。

EnumResource()
method EnumResource() as %XML.DataSet

あらゆるシステム・リソースの Seize の統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.ResourceOpens in a new tab クラスの Sample() クラス・クエリが使用されます。

EnumBuffer() のコメントおよびクラスリファレンスの SYS.Stats.ResourceOpens in a new tab を参照してください。

EnumWriteDaemon()
method EnumWriteDaemon() as %XML.DataSet

すべてのライト・デーモンの統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.WriteDaemonOpens in a new tab クラスの Sample() クラス・クエリが使用されます。

EnumBuffer() のコメントおよびクラスリファレンスの SYS.Stats.WriteDaemonOpens in a new tab を参照してください。

EventCancel()
method EventCancel(id) as %Integer

指定された Web サービスのサブスクリプションをキャンセルします。EventSubscribe() を参照してください。

EventSubscribe()
method EventSubscribe(location) as %String

指定された Web サービスをサブスクライブして、その Caché インスタンスのイベントに関する情報を受信します。この Web サービスには、例で示されているように、独自の Web サービスまたは SYS.WSMon.EventSinkOpens in a new tab Web サービスを指定することができます。独自の Web サービスを作成する場合、SYS.WSMon.EventSinkOpens in a new tab Web サービスの WSDL に従う必要があります。

location には、その Web サービスの EventSink() メソッドを呼び出すのに必要な URL を指定します。SYS.WSMon.EventSinkOpens in a new tab では、次のように location を指定できます。

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

server は、Caché が実行されているサーバです。また、port は、Caché が使用するポートです。

それぞれのイベントに対して、Caché は、指定された Web サービスの EventSink() メソッドの呼び出しを試行して、SYS.WSMon.wsEventOpens in a new tab のインスタンスを送信します。

このメソッドが返す ID は、サブスクリプションのキャンセルに使用できます。EventCancel() を参照してください。

GetDisk()
method GetDisk() as SYS.Stats.Disk

そのインスタンスのグローバルに対するディスク使用量のメトリックを含む SYS.Stats.DiskOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.DiskOpens in a new tab を参照してください。

GetECPAppSvr()
method GetECPAppSvr() as SYS.Stats.ECPAppSvr

そのインスタンスの ECP アプリケーション・サーバのメトリックを含む SYS.Stats.ECPAppSvrOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.ECPAppSvrOpens in a new tab を参照してください。

GetECPDataSvr()
method GetECPDataSvr() as SYS.Stats.ECPDataSvr

そのインスタンスの ECP データベース・サーバのメトリックを含む SYS.Stats.ECPDataSvrOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.ECPDataSvrOpens in a new tab を参照してください。

GetGlobal()
method GetGlobal() as SYS.Stats.Global

そのインスタンスのグローバル・メトリックを含む SYS.Stats.GlobalOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.GlobalOpens in a new tab を参照してください。

GetRoutine()
method GetRoutine() as SYS.Stats.Routine

そのインスタンスのルーチン・メトリックを含む SYS.Stats.RoutineOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.RoutineOpens in a new tab を参照してください。

GetSystem()
method GetSystem() as SYS.WSMon.wsSystem

Caché インスタンスのシステム情報を含む SYS.WSMon.wsSystemOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.WSMon.wsSystemOpens in a new tab を参照してください。

Web クライアントの監視

SYS.WSMon.ClientOpens in a new tab クラスとその関連クラスは、同一または別の Caché インスタンスにある SYS.WSMon.Server Web サービスのメソッドを呼び出すことのできる、Caché Web クライアントです。

この Web クライアント・クラスでは、次の LOCATION パラメータを使用します。

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

server は、Caché が実行されているサーバです。また、port は、Caché Web サーバが使用するポートです。

以下に示すように、その他の Caché Web クライアントを使用するときと同様にこの Web クライアントを使用します。

  1. Web クライアント・クラスのインスタンスを作成します。

  2. 必要に応じて、Location プロパティを設定します。

    この設定は、使用する SYS.WSMon.Server Web サービスがクライアントとは異なるマシンにある場合、または 57772 以外のポートを使用する場合に必要です。

  3. 必要に応じて、その他のプロパティを設定します。

    "Caché での Web サービスおよび Web クライアントの作成" を参照してください。

  4. Web メソッドを呼び出します。

  5. Web メソッドによって返される値を確認します。

    詳細は、呼び出す Web メソッドによって異なります。“モニタリング Web サービスの Web メソッド”、およびクラス・リファレンスの返りタイプの説明を参照してください。

ターミナル・セッションの例を以下に示します。

SAMPLES>zn "%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>

データを取得してユーザ・インタフェースに表示するときには、プログラムによりクライアントを作成して使用するほうがより一般的です。

Note:

SYS.WSMon パッケージを使用できるのは、%SYS ネームスペースに限られます。つまり、ここに記載されている手順を実行するには、%SYS ネームスペースを使用する必要があります。

イベントの処理

Caché が提供するサンプル Web サービス (SYS.WSMon.EventSinkOpens in a new tab) は、Caché モニタリング Web サービスによって送信されるイベントを受信して処理できます。この Web サービスを使用することも、独自の Web サービスを作成することもできます。

サンプル・イベント・シンク Web サービスの使用

SYS.WSMon.EventSinkOpens in a new tab は、イベントを受信して処理することのできる、Caché のサンプル Web サービスです。

任意の Caché インスタンスに対して、Caché モニタリング Web サービスを次の URL で使用できます。

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

server は、Caché が実行されているサーバです。また、port は、Caché Web サーバが使用するポートです。

この Web サービスにはメソッドが 1 つあります。

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

Windows プラットフォームでは、イベントが発生すると、このサンプル・メソッドによってポップアップ・ウィンドウが表示されます。その他のプラットフォームでは、^SYS("MONITOR","WSMON","EVENT_RECEIVED",$h) にエントリが追加されます。

このメソッドは常に 1 を返します。

このサンプル・サービスをサブスクライブして、モニタリング Web サービスからイベントを受信するには、ターミナルで以下のように実行します。

SER>zn "%sys"
 
%SYS>Set client=##class(SYS.WSMon.Client).%New()
 
%SYS>Set eventsinklocation="http://localhost:57772/csp/sys/SYS.WSMon.EventSink.cls"
 
%SYS>Set subscriptionid=client.EventSubscribe(eventsinklocation)
 
%SYS>Write subscriptionid
CacheEventSubscription_2

eventsinklocation は、イベントを処理するイベント・シンク Web サービスのURL です。

独自のイベント・シンク・Web サービスの作成

独自のイベント・シンク Web サービスを作成するには、Atelier で SOAP ウィザードを使用して、以下の WSDL から Web サービスを生成します。

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

server は、Caché が実行されているサーバです。また、port は、Caché Web サーバが使用するポートです。

このウィザードの使用法の詳細は、"Caché での Web サービスおよび Web クライアントの作成" を参照してください。

続いて、生成された Web サービスの CacheEventSink() メソッドを変更して、カスタム・ロジックを組み込みます。

FeedbackOpens in a new tab