subscription (サブスクリプション)

内容
casp1042
Subscription リソースを使用して、サブスクリプションを作成または取得します。
サブスクリプション
は、次のいずれかのアクティビティの通知を求める要求です。
  • モデル タイプ/属性。 タイプのモデル作成/削除とそれらのタイプの属性変更のウォッチを登録します。
    ModelType サブスクリプションは、新しいモデルをウォッチします。
  • モデル/属性。 指定されたモデルと関連する属性変更のウォッチを登録します。
  • アラーム/属性。 アラームの作成/削除と属性変更のウォッチを登録します。
  • ベース URL
    http://<hostname><:portnumber>/spectrum/restful/subscription
POST Subscription
POST subscription はサブスクリプションを作成します。 サブスクリプションは
プル
または
プッシュ
です。
プル
サブスクリプションでは、クライアントはサブスクリプション ID をポーリングする必要がありますが、
プッシュ
サブスクリプションでは、クライアントは通知を POST できる URL を指定する必要があります。 通知には、XML または JSON 形式の変更情報が含まれます。
プッシュ サブスクリプションは、統合クライアントが別の OneClick サーバである場合に役立ちます。
  • URL
    http://<hostname><:portnumber>/spectrum/restful/subscription
  • HTTP メソッド
    POST
  • ボディ
    Request.xsd:subscription-request を使用します。 Request.xsd は <
    $SPECROOT
    >/RestfulExamples/src/xsd にあります。
    サブスクリプション XML の具体例については、以下を参照してください。
    • <
      $SPECROOT
      >/RestfulExamples/xml/Alarms の場合:
      • PullAlarmsSubscription.xml
    • <
      $SPECROOT
      >/RestfulExamples/xml/Models の場合:
      • PullAttrWatchForAllDevices.xml
    • <
      $SPECROOT
      >/RestfulExamples/xml/MTypes の場合:
      • PullWatchForNewMTypes.xml
      • PushWatchForNewMTypes.xml
      • PushWatchForNewMTypesBatchMode.xml
      • PushWatchForNewMTypesNoExpiration.xml
  • ボディ コンテンツ
    application/xml、application
  • ヘッダ
    application/xml、application/json
  • 出力
    サブスクリプション ID をリストする XML または JSON
    • subscription-id
      サブスクリプションを指定します。 この値は、GET サブスクリプションと DELETE サブスクリプションで使用され、使用されていない場合は期限切れとなります。
本体のパラメータ
以下のパラメータは、サブスクリプション要求本体の XML で使用されます。
  • プル サブスクリプションの場合:
    • max-notifications
      通知項目の数を指定します。
      デフォルト:
      100
    • max-queue-size
      待ち行列に入れる通知の数を指定します。
      デフォルト:
      10000
    • pull-interval
      ポーリングの頻度をミリ秒単位で指定します。
      ポーリングしない場合、サブスクリプションは期限切れになります。
      最小値: 
      5000
    通知頻度が高くなることが予想される場合は、
    max-queue-size
    を増やして、多数の通知を待ち行列に入れることができます。 同時に、待ち行列がいっぱいにならないように、
    max-notifications
    を増やし、すべてのポーリングでより多くの通知をプルするようにします。 待ち行列をより速く空にするには、
    pull-interval
    を減らします。
    POST Subscription 要求に複数の InstanceRequest が含まれる場合(たとえば、本文内に複数の GC モデルがある場合)、これらの各 InstanceRequest を個々のスレッドで並列処理できるように、ThreadPoolSize を割り当てます。 デフォルト値は 20 であり、これで十分なはずです。 OneClickService.conf (Windows)または catalina.sh (Windows 以外)で ThreadPoolSize を設定するには、以下のプロパティを jvm_opts に追加します。
    restful.subscription.ThreadPoolSize=<int-value>
  • プッシュ サブスクリプションの場合:
    • destination-url
      通知が POST される URL を指定します。
      DX NetOps Spectrum
      tomcat ログに結果が出力される場合、通知テスト サーブレットが存在します。 このサーブレットは、
      DX NetOps Spectrum
      と共にインストールされ、追加の設定は必要ありません。 サーブレットを使用するには、destination-url を次のように設定します。
      http://<hostname><:portnumber>/spectrum/restful/TestNotifications
      通知は、受信されるたびに以下の
      DX NetOps Spectrum
      tomcat ログに出力されます。
      • Windows の場合: <
        $SPECROOT
        >/tomcat/logs
      • Linux の場合: <
        $SPECROOT
        >/tomcat/logs/catalina.out
    • username
      宛先 URL に必要なユーザ名を指定します。
    • password
      宛先 URL に必要なパスワードを指定します。
    • batch-notifications
      • max-notifications
        バッチの通知の数を指定します。 この数に達すると、通知はすぐに送信されます。
        デフォルト:
        100
      • max-time
        通知を送信するまでに待機する時間(ミリ秒)を指定します。 この数に達すると、通知はすぐに送信されます。
        デフォルト:
        1000
    • heartbeat-interval
      サブスクリプションの検証間隔(ミリ秒)を指定します。 サブスクリプション サーブレットは hearbeat-interval ごとにメッセージを受信側サーブレット(destination-url で指定)に送信し、サブスクリプションがアクティブであることを示します。 受信側サーブレットがハートビート メッセージの受信を停止した場合、サブスクリプションの停止が認識されています(OneClick サーバが停止または再起動した場合など)。 受信側サーブレットが使用不可になると、通知は停止します。
      TestNotifications サーブレットでは、ハートビート メッセージは出力されません。
以下は、サブスクリプション登録スニペットの例です。
<rs:destination-url>http://<hostname><:portnumber>/spectrum/restful/TestNotifications</rs:destination-url> <rs:username><user></rs:username> <rs:password><password></rs:password>
以下は、Java 呼び出しの例です。
Java GenericPoster noun=Models file= RestfulExamples/xml/Models/PullAttrWatchForAllDevices.xml server=localhost username=jdoe password=spectrum port=8080
GET Subscription
GET subscription を使用して、初期サブスクリプション要求に基づいて、対象の変更をすべて記述する XML を返します。
GET subscription は、プル モデルにのみ適用されます。
  • URL
    http://<hostnumber><:portnumber>/spectrum/restful/subscription/<subscription_ID>
  • HTTP メソッド
    GET
  • ボディ
    なし
  • ボディ コンテンツ
    application/xml、application
  • ヘッダ
    application/xml、application/json
URL パラメータ
  • subscription_ID
    サブスクリプション ID を指定します。 この値は、元のサブスクリプション要求(POST subscription )または GET subscription/requests から返されます。 最後の要求以降の変更セットを取得するために使用されます。
GET subscription/requests
GET subscription/requests を使用して、現在のアクティブなサブスクリプションの文字列を返します。 この要求は主に、通知に対して特定のモデル、タイプまたは属性が登録されているかどうかを確認するために検証またはデバッグ目的で使用されます。
実際のモデル、モデル タイプ、および属性の変更をプルする場合は、「GET subscription」を参照してください。
  • URL
    http://<hostname><:portnumber>/spectrum/restful/subscription/requests
  • HTTP メソッド
    GET
  • ボディ
    なし
  • ボディ コンテンツ
    application/xml、application
  • ヘッダ
    application/xml、application/json
  • 出力
    現在のアクティブなサブスクリプションごとに subscription-id と他のサブスクリプションに関連する情報をリストする HTML ページ
    • subscription-id
      サブスクリプションを指定します。 この値は、GET サブスクリプションと DELETE サブスクリプションで使用されます。
DELETE subscription
DELETE subscription は指定されたサブスクリプションを削除します。
  • URL
    http://<hostname><:portnumber>/spectrum/restful/subscription/<subscription_ID>
  • HTTP メソッド
    DELETE
  • ボディ
    なし
  • ボディ コンテンツ
    application/xml、application
  • ヘッダ
    application/xml、application/json
URL パラメータ
  • subscription_ID
    削除するサブスクリプションを指定します。 この値は、元のサブスクリプション要求(POST subscription )または GET subscription/requests から返されます。