登録は、計算の一部となる Raw データ イベント セットについて、ビジネス ロジックが要求を計算エンジンへサブミットするプロセスです。
登録プロセスは 2 つの方法で処理できます。つまり、登録ウィザードを使用する方法と、ビジネス ロジック内でディスパッチャ オブジェクトを使用して手動で処理する方法です。
登録ウィザードを使用する方法は、使用できるオプションから選択する単純なプロセスです。 パラメータを使用することはできませんが、登録を手動で行う場合と同じオプションをすべて使用できます。 パラメータを使用する必要があれば、登録を手動で実行してください。 ウィザードの基本的なフローでは、実行する登録のタイプを最初に決定し、次に登録を実行するリソース タイプおよびイベントを設定し、最後に、収集したイベントの処理でどのイベント ハンドラを使用するかを最後に決定します。
登録が完了すると、メトリックの[登録]タブに、登録した内容が表示されます。 1 つのメトリックに対して複数の登録ステートメントを持つことも可能です。
実際には、登録ウィザードでは手動の登録と同じ機能を使用しています。これらのすべてのオプションについては、次のセクションで説明します。
ビジネス ロジック内で手動で登録を実行する場合、計算式の登録は OnRegistration イベント ハンドラによって処理されます。 これは、計算式の中で実装され、登録エンジン イベントがトリガされるたびにトリガされるようにする必要があります。 登録イベントは、契約がアクティブになったときに 1 回トリガされ、対象のリソースまたは変更セットがアクティブになるたびにトリガされます。 リソースが、メトリックが受け取る予定のイベントに影響を与える場合は、影響を受けるリソースの変更が関連すると考えられます。 たとえば、契約関係者(RegisterByContractParty)によって登録が行なわれる場合は、メトリックの契約関係者に割り当てられているリソースを持つ、定義済みのタイプのすべてのイベントが計算の一部になることを意味します。 このような場合、新しいリソースが割り当てられる、またはその契約関係者に対して割り当て解除されるたびに、変更のエンジンに通知するためにメソッドがトリガされます。
登録のメソッドは、OnRegistration に引数として渡される Dispatcher オブジェクトによって提供されます。 いくつかのメソッドは、イベント タイプの定義に基づいて、フィルタリング基準、およびリソースの割り当て基準(リソース グループのリソース、特定タイプのリソースなど)を定義するためのさまざまな方法を提供します。
契約関係者およびサービスの登録メソッドを使用すると、ビジネス ロジックをモジュールまたはテンプレートとして簡単に使用できるため、この登録メソッドを使用することが推奨されます。 この場合、対象の契約関係者およびサービスは関連するメトリック定義から取得され、異なる契約やサービス コンポーネントに対して計算式を再利用する場合は、登録を変更する必要がありません。
もうひとつの一般的な登録メソッドは RegisterByResourceGroup です。これは論理的にグループ化されているけれども、必ずしも契約関係者またはサービスに関連付けられていないリソースを操作するうえで便利です。 ここでは、グループに対するリソースの割り当てはリソース カタログによって(個別に、または変更セットを介して)管理され、変換スクリプトによって自動的に更新することもできます。
一般的に、登録メソッドは設計フェーズで決定され、定義されたデータ モデルによって直接駆動されます。
注: ディスパッチャ オブジェクトが正しく使用されているかどうかをチェックするために、SLALOM の構文チェックのときに OnRegistration 関数もコールされます。 この理由により、OnRegistration 関数の前に OnLoad を実行することを前提にしないようにします。また、"TimeUnit"、"IntervalLength"、"IsPeriod"、"CorrectionsApply"、"ExceptionsApply" などのコンテキスト オブジェクトのいくつかのプロパティを OnRegistration イベントハンドラで使用してはいけません。
登録メソッドは、イベントのタイムスタンプに従ってトリガされるプロシージャに対してイベントを関連付けます。 定義されたプロシージャはどのような名前にすることもできますが、常にパラメータとして eventDetails オブジェクトを持っています。 eventDetails オブジェクトは、受け取った Raw データ イベントを反映し、以下の登録で見られるように、すべてのイベントの詳細を保持します。
Sub OnRegistration(dispatcher) dispatcher.RegisterByContractPartyAndService "OnMemUseEvent", "MemUse", "Server" 'the parameters of the method are: <procedure name>, <Event Type>, <Resource Type> End Sub
上記の登録ステートメントは、'MemUse' イベント タイプのすべての Raw データ イベント、および 'Server' リソース タイプに関連付けられているすべての Raw データ イベントが、ビジネス ロジック内で 'OnMemUseEvent' イベント ハンドラに送信されることを示しています。
以下のプロシージャも、ビジネス ロジック内にあらかじめ定義しておく必要があります。
Sub OnMemUseEvent(eventDetails)
If InTimeSlot And eventDetails("MemoryUsage")>MaxMemoryUse Then
MaxMsmoryUse = eventDetails("MemoryUsage)"
End If
End Sub
eventDetails オブジェクトを参照し、'MemoryUsage' パラメータを使用することによって、ステートメントは、関数に渡されたイベントから MemoryUsage フィールドの値を抽出します。 これらのフィールドはイベント タイプで定義されたものと同じで、フィールド名は大文字/小文字が区別されます。
| Copyright © 2012 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |