Share via


クォンタム制限の指定

Notification Services では、時間を間隔に分割する独自のクロックをジェネレータが保持します。これらの各時間間隔は、クォンタムと呼ばれます。アプリケーションを定義するときに、間隔の長さを構成します。

ルールの処理はシステム クロックに対して遅れる可能性があるので、ジェネレータのクォンタム制限を定義できます。このクォンタム制限によって、ジェネレータのクォンタム クロックがシステム クロックに対してどの程度遅れると、Notification Services で一部のルールの処理をスキップするかが決まります。

ジェネレータのクォンタム クロック

アプリケーションを最初に起動したときに、ジェネレータのクォンタム クロックとシステム クロックが同期されます。ジェネレータのクォンタム間隔が 5 分である場合、ジェネレータは 5 分ごとにルールを実行し、過去 5 分間に処理されたすべてのイベントと定期的なサブスクリプションを処理します。

インスタンス、アプリケーション、またはジェネレータが停止したり無効になった場合や、特定のクォンタムのすべてのルールをクォンタム期間内に実行できなかった場合は、ジェネレータのクォンタム クロックが実際のクロックに対して遅れることになります。

ジェネレータのクォンタム クロックが遅れると、Notification Services によるイベント記録ルールとサブスクリプション ルールの実行が遅れます。Notification Services は可能な限りの速さでルールの実行とデータの処理を続けますが、ジェネレータのクォンタム クロックの遅れの程度によっては、遅れを取り戻すまでにしばらくかかることがあります。

ジェネレータのクォンタム制限

イベント記録ルールとサブスクリプション ルールの両方について、ジェネレータのクォンタム クロックの遅れをどの程度まで許容するかを制限できます。たとえば、イベント記録ルールについては 4 クォンタムまでに、サブスクリプション ルールについては 2 クォンタムまでに、アプリケーションの遅れを制限するように指定できます。アプリケーションの遅れがこれらの制限を超えると、制限内に収まるまでルールの実行がスキップされるようになります。この場合、ジェネレータを再起動すると、Notification Services は、イベント記録ルールについては 4 クォンタム分、サブスクリプション ルールについては 2 クォンタム分を残して、すべてのルールの実行をスキップします。

ジェネレータでイベント記録ルールがスキップされた場合、スキップされたクォンタムに着信したイベント バッチは処理されません。サブスクリプション ルールがスキップされた場合は、スキップされたクォンタムに着信したイベントからの通知や、スキップされたクォンタムに予定されていた定期的なサブスクリプションの通知は、アプリケーションで生成されません。

クォンタム制限の例

次の図では、再起動したジェネレータが、実際のクロックに対して 8 クォンタム遅れています。イベント記録ルールのクォンタム制限は 4 に、サブスクリプション ルールの制限は 2 に設定されています。ジェネレータが起動すると、最後の 4 つのイベント記録ルールと最後の 2 つのサブスクリプション ルールのみが処理されます。

クォンタム制限の効果

時系列のイベントおよびサブスクリプションの例

ジェネレータは、最後の 4 つのクォンタムであるクォンタム 5 ~ 8 に着信したイベント バッチ (E9 ~ E12) のイベント記録ルールを処理します。

また、最後の 2 つのクォンタムであるクォンタム 7 と 8 で処理される予定のすべてのサブスクリプションのサブスクリプション ルールを処理します。クォンタム 7 よりも前の本来処理対象だったサブスクリプションについては、サブスクリプション ルールをスキップし、通知を生成しません。

クォンタム制限値の決定

ジェネレータのクォンタム制限の値を決定するときには、タイムリーな通知の要件と古いデータを処理する価値とのバランスを考慮してください。タイムリーな通知が必要な場合は、1 などの低い制限を設定します。すべてのイベント バッチとサブスクリプションを処理する必要がある場合は、制限を 0 に設定します。

時間に基づいて制限を設定する場合は、目的の時間をジェネレータのクォンタム期間で割ります。たとえば、クォンタム期間が 5 分の場合に、実際のクロックに対するアプリケーションの遅れを 60 分以内に制限するには、60 を 5 で割って、クォンタム制限を 12 に設定します。

値 0 は、クォンタム制限なしを意味します。この場合、Notification Services は、すべてのクォンタムを処理しようとします。

既定のクォンタム制限は、1,440 クォンタムです。したがって、クォンタム期間が 1 分である場合、既定のクォンタム制限は 1 日です。

イベント記録ルールのクォンタム制限を設定するには

  • XML でアプリケーションを定義している場合は、ChronicleQuantumLimit 要素 (ADF) を使用してイベント記録ルールのクォンタム制限を設定します。
  • プログラムでアプリケーションを定義している場合は、ChronicleQuantumLimit プロパティ (NMO) を使用してイベント記録ルールのクォンタム制限を設定します。

サブスクリプション ルールのクォンタム制限を設定するには

  • XML でアプリケーションを定義している場合は、SubscriptionQuantumLimit 要素 (ADF) を使用してサブスクリプション ルールのクォンタム制限を設定します。
  • プログラムでアプリケーションを定義している場合は、SubscriptionQuantumLimit プロパティ (NMO) を使用してサブスクリプション ルールのクォンタム制限を設定します。

参照

関連項目

ChronicleQuantumLimit
SubscriptionQuantumLimit

概念

アプリケーションの実行設定の指定
イベント処理順序の指定

その他の技術情報

ChronicleQuantumLimit 要素 (ADF)
SubscriptionQuantumLimit 要素 (ADF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手