2009-04-23 9 views
2

Windows Workflow Foundationには、WFインスタンスを永続化するときに問題があります。 私は、ビジネス層がWF公開WCFサービスに基づいているプロジェクトを計画しています。プロジェクトには毎月2万の新しいワークフローインスタンスが作成され、各インスタンスは完了するまでに2ヶ月かかることがあります。 私は、パフォーマンスを理由に私の与えられた問題は達成できないだろうと私はperistanceを行うときにWFのslownes与えられたことを信じていた。 私は以下の質問をしています:毎月新しい20,000の永続ワークフローインスタンスによるWFのパフォーマンス

  1. これは本当ですか?私のパフォーマンスはその負荷でうんざりしますか?(WF persitance speedの制限があります)
  2. どうすれば問題を解決できますか?それぞれの新しい・ビジネス・プロセスの要求が(例えば私に新しい運転免許証を与える)新しいWFのインスタンスになります、そして永続性操作の数は、すべてのステータスを転送することによって制限されます 1:私たちは現在、2つの可能な解決策を持っている

保存された状態値に対する操作を別のデータベースに要求する。 2.システムのクラッシュなどの場合にのみ使用することができます。また、各ワークフローのスタップを別のワークフローに分割し、各ビジネスプロセスを処理するワークフローを分割することで、 (例えば、私は運転免許申請フォームを提出しています。これはステップ1です...私たちは100件あり、ステップ1のワークフローはすべてのケースを同時に処理します)。

私はその問題の解決に非常に興味があります。その問題を議論したい場合は、[email protected]までメールを送ってください。

答えて

2

水分を含む実行中のウォークフローの数は、環境要因メモリサーバーによって決定されます。永続性の問題は、ワークフローをロードしたりアンロードしたりしているときは、その時点で実際のワークフローが最良の解決策ではない可能性があります。

+1

また、トランザクションログで追跡するイベントのレベルにも注意してください。あなたのデータベースは非常にいっぱいになります。 – Wedge

2

私の現在のプロジェクトでは、永続性を持つWFも使用しています。私たちはかなりの量(おそらく約2000人のインスタンス/月)を持っておらず、通常は完了までに時間がかかりません(通常は5分以内、場合によっては数日以内に行われます)。我々は、メインのワークフローを2つの部分に分割することに決めました。そこでは、通常の待機状態があります。私はこのシステムの性能の違いに気づいたわけではありませんが、私たちのシステムでは、着信信号を正しいワークフローインスタンスに一致させる問題があったため、単純化しました(コード内の問題です。 WF)。

私は、WFに基づいて新しいプロジェクトを開始するのであれば、フルプロセスを処理する大きなワークフローを持つよりも、順次呼び出される小さなワークフローに行きたいと思います。

2

私はまだワークフロー基盤のパフォーマンス特性を調査しています。あなたはすでにそれを思えやりなさい場合、それは場合に役立ちますしかし、私はWFチームを聞いたことがある。ここWF 4の新しいリリース

で多くのパフォーマンスの向上を行っている

は役立つかもしれないリンクのカップル(あります)

A Developer's Introduction to Windows Workflow Foundation (WF) in .NET 4 (discusses performance improvements)

Performance Characteristics of Windows Workflow Foundation (applies to WF 3.0)

1

WF 3.5のパフォーマンスの問題を抱えていました。 WF4はありません - 毎月20000のWFインスタンスは何もありません。あなたが1分ごとに話していたら、私は心配するでしょう。

+0

更新:私は何万もの同時インスタンスを持つWF 4 statemachineを持っており、パフォーマンス上の問題はありませんでした。しかし、キューを使用するときに気をつけなければならない問題があります。たとえば、何千ものWFインスタンスへのメッセージを破棄して、デフォルトのADO.NET接続プール設定(100)などを使い果たすことができます。 – Sentinel

関連する問題