.NET 3.5 のワークフロー基盤を使用するシステムを開発した請負業者がいます。私の同僚の 1 人は、「ワークフロー サービスが状態をメモリに保存し、基盤となるデータベースと同期しなくなる可能性がある」という懸念を抱いています。
彼の懸念は正当なものですか?
2 に答える
2
状態はどのようにメモリに保存されますか? WF には、ワークフローがアイドル状態になったときなどの永続化サービスがあります。WF がデータベースに永続化されていることを確認できます。WF ランタイムを再起動するために特定のワークフローに情報をエンキューするなどの問題はありません。WF は DB から取得され、正しい位置で実行されます。
OK、もう一度読み直すと、ワークフローに状態を保存すると (たとえば、アクティビティの依存プロパティに)、これが同期しなくなる可能性があることを意味する可能性があります。それは、起こっても問題ないかどうかに大きく依存します。DB データを使用して作成されたシリアル化されたオブジェクトは、元のデータが変更された場合、WF で同期されない可能性があります。これが懸念される場合は、DB データから特定のオブジェクトを再作成し、それらをシリアル化されたオブジェクトとして WF に保持しないことをお勧めします。
于 2009-10-21T11:12:31.220 に答える
0
それは彼がそれをどのように行ったかによって異なりますが、答えはおそらくノーです。メモリ キャッシングは、DB が関係している場合に不要な I/O を回避するための便利な方法です。おそらく、あなたの同僚は気分を良くするためにコードを確認する必要があります。
于 2009-10-21T11:10:54.373 に答える