レッスン 5: AppFabric を使用した中断されているワークフローの再開
目標: エラーが発生したワークフローを中止し、再開します。
目的: Windows Server AppFabric がどのようにしてアイドル状態または中断されたインスタンスを永続化するか、どのようにして中断されたワークフローを再開するかを理解します。
前提条件
HRApplicationServices アプリケーションを展開する必要があります。詳細については、「レッスン 2: HRApplicationServices ワークフロー サービスの配置」を参照してください。
監視および永続化を有効にする必要があります。詳細については、「レッスン 3: HRApplicationServices アプリケーションの構成」を参照してください。
中断されたワークフローのシミュレーション
動作中の AppFabric を確認するには、中断されたワークフローをシミュレーションする必要があります。その場合、永続化されたワークフローは中断されます。シミュレーションを行うには、[\mailbox] フォルダーの名前を [\mailbox2] に変更して、HRApplicationServices アプリケーションを一時的に「中断」します。
HRApplicationServices ワークフローを中断するには
コンピューターのハード ディスクのルートに移動します。
メール フォルダーの名前を [\mailbox] から [\mailbox2] に変更します。
Internet Explorer に、次のアプリケーション URL を入力するか、貼り付けます。
https://localhost/HRApplicationServices
応募フォームで、学歴を [修士] に設定します。
[適用] ボタンをクリックします。
Windows エクスプローラーで、[mailbox2] フォルダーを開きます。メッセージ ファイルは生成されません。
中断されたワークフローの表示と再開
ワークフローは中断され、AppFabric が中断されたワークフローを永続化します。アプリケーションを修正した後、ワークフローを再開できます。
中断されたワークフローを表示するには
IIS マネージャーを開くか、戻ります。
[接続] で、[HRApplicationServices] ノードに移動します。ノードをクリックして選択します。
[AppFabric ダッシュボード] をダブルクリックします。
[永続的な WF インスタンス] セクションに、中断されたインスタンスが 1 つ表示されます。サービスの例外またはユーザー定義のエラーは表示されません。これは、サンプル アプリケーションで、クライアントによって捕捉されたエラーはスローされなかったからです。ただし、ワークフローは中断されたので、AppFabric が中断されたワークフローを永続化しました。
[永続的な WF インスタンス] セクションで、中断されたインスタンス [SubmitApplication.xamlx] をダブルクリックします。永続化されたインスタンスが、[中断] という状態でリストに表示されます。
中断されたインスタンスを右クリックし、[追跡対象イベントの表示] をクリックします (その他には [再開]、[キャンセル]、[終了]、および [削除] を選択できます)。
追跡対象イベントのリストで、[エラー] アイコンが表示されたイベントをクリックします。リストの下の [詳細] セクションには、選択したエラー イベントの詳細が表示されます。
[エラー] タブをクリックします。
例外テキストがあります。例外テキストには、次のテキストが含まれています。
System.Net.Mail.SmtpException: メールを送信できませんでした。---> System.IO.DirectoryNotFoundException: パス 'c:\mailbox' の一部が見つかりませんでした。
このシナリオでは、上記の情報でアプリケーションを修正できます。AppFabric は、分析のため、例外テキストをキャプチャしています。
Windows エクスプローラーを開き、フォルダーの名前を [\mailbox2] から [\mailbox] に変更します。
AppFabric ダッシュボードに戻ります。
ダッシュボードを右クリックして、[Appfabric ダッシュボード] をクリックします。
[永続的な WF インスタンス] セクションで、中断されたインスタンス [SubmitApplication.xamlx] をダブルクリックします。
中断されたインスタンスを右クリックして、[再開] をクリックします。
数秒後、そのインスタンスを右クリックして、[更新] をクリックします。
Windows エクスプローラーで、[mailbox] フォルダーを開きます。フォルダーにメッセージ ファイルがあることに注意してください。
項目をダブルクリックして開き、[応募の確認] をクリックします (メールリーダー プログラムがない場合、メモ帳でメッセージを表示し、アプリケーションへのメッセージ内の URL をコピーしてブラウザーに貼り付け、HTML メッセージを表示します。URL は、
https://localhost/HRApplicationServices/HireApproval.aspx?AppID=23
のようになります。AppID
は応募者 ID に設定されています)。HTML ページで、[採用] をクリックすると、応募者が採用されます。[mailbox] フォルダーを開き、最終メッセージ ファイルがあることを確認してください。ファイルを開くと、良い知らせが表示されます。
AppFabric ダッシュボードに戻ります。
ダッシュボードを右クリックして、[更新] をクリックします。ダッシュボードが更新され、アイドル状態のインスタンスは [アクティブなインスタンスまたはアイドル状態のインスタンス] 列から消去されます。
まとめ
中断されたワークフローによる中断をシミュレーションしました。エラーを修正した後、ダッシュボードを使用してワークフローを再開しました。
関連項目
概念
レッスン 1: 概要
レッスン 2: HRApplicationServices ワークフロー サービスの配置
レッスン 3: HRApplicationServices アプリケーションの構成
レッスン 4: HRApplicationServices アプリケーションの正常性の監視
2011-12-05