管理者が、ご使用のシステムを非同期 (バックグラウンド) ルールの処理向けに構成し、かつ、ワークフロー作成者が、この処理を必要とする特定のルール・セットを識別することで、ワークフローのパフォーマンスを向上できます。
ルール・ソフトウェアでは、大部分のルール・セットをマイクロ秒単位以下で実行できますが、データベース検索などの一部のルール・セットの場合、これよりも長い処理時間を必要とするものもあります。クライアント要求を処理するワークフロー・システム・サーバー・スレッドがルール・ソフトウェアからの応答を待機している間は、このスレッドを使用して他の着信要求を処理することはできません。
非同期処理では、バックグラウンド・ルールの実行、追加のキューイング、追加処理のスケジューリングが必要になるため、ワークフロー・システムに余分な負荷がかかります。非同期処理用に指定されているルール・セットの場合、ワークフロー・システムは、ルールの実行を ISI キューの中に入れ、バックグラウンドで実行されるまで待機させます。非同期処理用に指定されていないルール・セットは、通常の実行パスを介して実行されます。したがって、全体的なシステムの低下を防ぐために、処理に長い時間を必要とするルール・セットだけを、非同期処理用として分類してください。
重要: OnSave オプションが指定された非同期ルールを使用すると、アプリケーションで予期しない動作が発生します。これは、以前にロックされたステップが、ルールの実行後に自動的にアンロックされてしまうためです。ルールが非同期で実行されると、ワーク・アイテムは自分のキューから除去され、vwisi スレッドでの実行用に isi キューに入れられ、その後に元のキューに戻されます。このプロシージャーの進行中はワーク・オブジェクトのロックを保持できないため、非同期ルールが実行されると、前にロックされたワーク・アイテムは、ユーザーによってロックされた状態ではなくなります。この問題は、ステップの実行前または完了後に非同期で実行されるルールには該当しません。
isi スレッドが自分のキューを素早く空にできない場合は、次の手順を実行することにより、InstructionSheetInterpreter キューに対応する vwisi スレッドの数を増やすことができます。
- 管理コンソールで、ワークフロー・サブシステムのプライマリー・スレッドの最大数を大きくします。
- ドメインのナビゲーション・ペインで、ドメインを選択します。
- 「ワークフロー・サブシステム」タブで、「最大プライマリー・スレッド数」の値を大きくします。
1 秒未満でルール・エンジンが実行できないルール・セットを使用している場合は、次の手順に従って操作すれば、非同期ルールの処理が可能になります。
- 管理コンソールで、以下のようにしてリモート・サーバーの構成にアクセスします。
- ドメインのナビゲーション・ペインで、オブジェクト・ストアを選択します。
- オブジェクト・ストアのナビゲーション・ペインで、をクリックします。
- 詳細ペインで、「リモート・サーバー」タブをクリックします。
- 「リモート・サーバー」タブで、「非同期ルールを許可する」チェック・ボックスを選択して、Process Designer の「非同期ルール」オプションを有効にします。
- ワークフロー作成者との共同作業で、非同期処理を使用する特定のルール・セットを識別します。