ワークフローをDBに保存するには – 準備編:テーブルの用意

Workflow Foundation では、その内容はDBに保存されません。
単にメモリ上に展開されているだけです。
従って、ウッカリすると、何の記録も途中経過も残りません。
それでは困る場合には、そのワークフローインスタンスの内容をDBに保存させることが出来ます。
SqlWorkflowPersistenceService を使用して、ステートマシンのワークフローインスタンスを保存することが出来ます。
そのほかにも、SqlTrackingService もありますが、それらの詳しい内容には未だ触れません。
マエフリがヤタラと長くなりましたが、今回はその下準備についてのオハナシです。
前提として、SQL Server 2005の準備は済んでいるものとします。
SqlWorkflowPersistenceService や 、SqlTrackingService を使用するには、当然ソレナリなデータベース・テーブルが必要なわけですが、ソレが何処にあるのか?
実は、非常に奥深いところに潜んでいます。
システムフォルダの中に ¥Microsoft.NET¥Framework¥v3.0¥Windows Workflow Foundation¥SQL というフォルダが居ます。
この中に(日本語環境でしたら)”JA”と”EN”という二つのフォルダがあります。これらはどちらでも構わないようです。
で、”*_Logic.sql”がストアドプロシージャー定義、”_Schema.sql”がスキーマ定義。Persistence , Tracking 用、それぞれが用意されているので、SQL Server Management Studio なり、osql コマンドなりで流し込んであげればよいと言うことになります。
で、コード側でPersistance, Tracking のインスタンスを作成する際に、引数で接続情報を渡してあげる形になるわけですが、そこはまた別の話で。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam Protection by WP-SpamFree