2

今週末、イリノイ州ライルで開催された SharePoint Saturday で、Robert Bogue 氏は、アクティブなワークフローと実行中のワークフローには違いがあると述べました。ネットで調べたのですが、どなたか教えていただけないでしょうか?

サーバー上で最大数百万のアクティブなワークフローを持つことができるのに、サーバーごとに 15 程度のワークフローしか実行できないのはなぜですか?

4

1 に答える 1

1

はい、違いあります:

  • 「実行中」のワークフローは、現在何かを実行している(つまり、アクティビティを実行している)すべてです。
  • 「アクティブな」ワークフローとは、単に「実行中」のワークフローですが、現在は何も実行していません。たとえば、OnItemChangedまたはを待機していDelayActivityます。

これを理解するための鍵は、WorkflowEventDeliveryThrottleです(2010のドキュメントが存在しないため、ここではSP2007の場合)。このプロパティの標準値は15です。つまり、同時に実行できる並行ワークフローは15個だけです。この制限に達すると、ワークフローはOWSTimerのキューに入れられ、OWSTimerは任意の時間の後にワークフローを実行します(ワークフロータイマージョブは5分ごとに設定されていると思います)。

このスロットルは、次を使用して変更できますstsadm(AFAIK Powershellは機能しません。もちろん設定のコードを使用してプロパティを変更できますSPWebService.WorkflowEventDeliveryThrottle):

stsadm -o setproperty -pn workflow-eventdelivery-throttle -pv "20"

これで、「実行中」のワークフローの最大数(「同時に処理できるワークフローイベントの最大数」の方が良い)は20になります。誰かがパラメーターを操作する他のSO投稿を参照してください。

ワークフローイベント処理を理解するための優れた技術ブログ投稿があります:「workflow-eventdelivery-throttle」パラメーターについて

スロットルと同様に、WorkflowEventDeliveryBatchSizeは、バッチで処理されるワークフローイベントの最大数を示します。


概要:

  • 何千ものアクティブなワークフローを持つことができます。たとえば、すべてがワークフローアイテムが変更されるのを待っています。それらは実行されておらず、終了していません-単にアクティブです。
  • 同時に処理できるワークフローイベントの数には制限があります(「実行中」のワークフローと呼びます)。
  • また、何千ものワークフローを実行することもできます。たとえば、すべてのワークフローが5分に設定された遅延アクティビティによってトリガーされる場合がありますが、同時に実行されるワークフローの数は限られており、残りは後で実行するためにキューに入れられます。
于 2011-06-16T09:46:57.610 に答える