![Rule Assembly process flow](https://demo5-academy.pega.com/sites/default/files/styles/1024/public/media/images/2020-11/RuleAssemblyProcess.png?itok=ZTgXMN5C)
ルールのアッセンブリーと実行のパフォーマンス
ルールアッセンブリープロセスでは、アプリケーションの実行に使用するルールのキャッシュを作成します。 Pega Platform™が効率的に動作するには、ルールのキャッシングが不可欠です。 ところが、ルールアッセンブリーの問題が原因で、パフォーマンスが低下することがあります。 Pega Platformは、ルールアッセンブリーの問題を検出するツールを提供しており、パフォーマンス上の問題を修正または軽減するための適切なアクションを取ることができます。
ルールアッセンブリーおよび実行によるパフォーマンスへの影響
ユーザーは、レポートの作成や画面の計算値の更新などの特定のタスクを実行しているときだけでなく、アプリケーションでの作業中にも、レスポンスの遅さを感じることがあります。 ユーザーからのフィードバックに加えて、パフォーマンスの問題を特定するためのパフォーマンス分析ツールやシステムアラートが利用できます。 ルールアッセンブリーまたはルールキャッシング問題が、一般的なパフォーマンス問題の原因となることがあります。
ルールアッセンブリー
アプリケーションが起動すると、Pega Platformがアプリケーションコードを実行し、ルールを取得してキャッシュします。 このアクションをルールアッセンブリーといいます。 ルールアッセンブリーとは、アプリケーションルールに対応したJavaコードを生成し、コンパイルするシステムプロセスです。
First Use Assembly(FUA)
新しいアプリケーションが環境にデプロイされると、多くの新しいルールまたは更新されたルールがパフォーマンスに大きな影響を与えることがあります。 システムで作業しているユーザーは、最初はアプリケーションパフォーマンスの低さに気付く可能性があります。
アプリケーションのパフォーマンスを最適化するため、Pega Platformは次の場合にFUAを実行します。
- 新しいJava仮想マシン(JVM)ノードが起動されたとき。
- 新しいコードがデプロイされたとき。
- 更新されたルールがアプリケーションで初めて実行されるとき。
ユーザーがルールの大部分を実行した後は、コードがキャッシュに格納されるため、システムパフォーマンスが最適化されます。
ルールキャッシング
ルールキャッシュとは、最近使用されたルールをメモリ内に集めたものです。 Pega Platformはルールキャッシュを維持することで、不要なルールレゾリューションやデータベースインタラクションを避け、アプリケーションのパフォーマンスを向上させます。 アプリケーションがルールをリクエストすると、Pega Platformは当該ルールがキャッシュ内にある場合は実行します。 ルールがキャッシュに存在しない場合、Pega Platformはルールをキャッシュに追加します。
ルールセットリストのキャッシュ
ルールセットリストと呼ばれるユニークなルールセットの組み合わせには、それぞれのキャッシュがあります。 アプリケーションに多数のルールセットがある場合、Pega Platformはシステムリソースを使用してルールセットリストをキャッシュします。 Pega Platformの実装では、様々なユーザー向けのルールを含む一つのルールベースを持ち、複数のアプリケーションのルールを含むことができます。
たとえば、顧客担当者がクレームのインバウンドコールを処理するためにシステムにログインしたり、顧客がアプリケーションのセルフサービスのウェブサイトにログインしたりします。 Pega Platformは、各アクセスグループをシステムメモリとCPUを使用する個別のキャッシュインスタンスとして管理します。
次の画像で「+」アイコンをクリックすると、オペレータープロファイルのアクセスグループとルールセットのリストを評価できる場所が表示されます。
アプリケーションが拡張されると、各組み込みアプリケーションによって、ルールセットとアクセスグループが追加されます。 多数のアクセスグループやルールセットアッセンブリーによる過剰なルールキャッシングは、パフォーマンスを低下させる場合があります。
次の問題に答えて、理解度をチェックしましょう。
ルールアッセンブリーとキャッシングに関する問題の診断
ルールアッセンブリーやキャッシング問題の多くは、設計時の注意深い計画により防ぐことができます。 ルールセットリストのバリエーションを最小限に抑えると、発生する可能性のあるパフォーマンスの問題が軽減します。 Pega Platformには、ルールのアッセンブリーとキャッシュの問題を見つけるのに役立つツールが用意されています。
ルールアッセンブリー統計
ルールアッセンブリーとキャッシュの問題を診断するには、ユーザーまたはプリケーションに関するルールアッセンブリー(RA)統計を確認します。
- ユーザーのRA統計を表示するには、My Performance Detailsツールを実行して、ユーザーIDを入力します。
- アプリケーションのRA統計を表示するには、Performance Analyzer (PAL) ツールを実行します。
My Performance DetailsツールとPAL ツールで表示される統計は同じです。 違いは、My Performance Detailsツールでは個々のユーザーの統計を見ることができることです。 RA統計値(RA Elapsed、Rule I/O Elapsedなど)が高い場合は、ルールアッセンブリーやキャッシュに問題があると考えられます。
補足: PALの詳細については、「Using the summary display of Performance Analyzer」を参照してください。
次の画像で「+」アイコンをクリックすると、ルールアッセンブリー統計の詳細が表示されます。
補足: 既存のルールが更新されると、キャッシュされたバージョンに削除対象のマークが付けられ、ルールが再キャッシュされます。 たとえば、新しいアプリケーションをQAシステムに移行した後、ルールアッセンブリー時間がパフォーマンスの統計値を膨張させることがあり、その結果、実際のアプリケーションパフォーマンスが誤って解釈されかねません。
問題
App StudioまたはDev Studioの右下隅にあるIssues アイコンを使用して、ルールのアッセンブリーにかかる時間を表示します。
アラート
Pega Platformは、ルールアッセンブリーの問題に関するアラートを生成します。 アラートログを確認して、次のようなアッセンブリーの問題を特定できます。
PEGA0032:
ルールの変更(更新、削除、作成)によって、ルールアッセンブリーキャッシュに無効なエントリーが生成される場合。PEGA0037:
ルールアッセンブリーにかかる時間のしきい値超過。PEGA0038:
ルールアッセンブリーキャッシュアクセスの待ち時間のしきい値超過。
アクティブルールセットリスト
使用中のアクティブルールセットリストの数を確認するには、Dev StudioでActive Rule Set Listレポートを開いて、ルールセットリストの数の増加をモニタリングします。 たとえば、生産システムにあってはならないブランチルールセットを探します。
次の問題に答えて、理解度をチェックしましょう。
過剰なルールアッセンブリー防止のためのベストプラクティス
過剰なルールアッセンブリーの一般的な原因は、ユーザーが異なるルールセットリストを持っていることです。 アクセスグループがそれぞれ特有のルールセットリストを持ち、個人がルールをチェックアウトできる場合に、ルールセットリストの相違が発生します。 各ユーザーが、わずかに異なるルールセットリストを含む異なるアクセスグループを持っている場合、システムによって追加のルールアッセンブリーが実行されるため、パフォーマンスが低下します。
次のベストプラクティスを実行して、過剰なルールアッセンブリーを最小限に抑えます。
アプリケーションルールセットをグループ化
ルールアッセンブリーは、ルールセットやアプリケーションが新しいシステムに移行またはインポートされたときに発生します。 使用するルールセットリストの数を最小限に抑えることで、過剰なルールアッセンブリーを管理します。 1つのルールセットを複数のアプリケーションレコードに追加することは避けてください。 ルールセットのブロックが一貫した順序でスタックに追加されるように、可能な限りルールセットをアプリケーションにまとめます。 この操作には、アプリケーションをリファクタリングして組み込みアプリケーションを作成することも含まれます。
共通のアクセスグループを確立
アクセスグループの数を最小限にし、アクセスグループをルールセットへのアクセスではなくパーミッションの管理に使用する。 複数のアクセスグループが、同じルールセットを異なる順番で参照することがあります。 ルールセットリストの不要な変更を避けるために、アプリケーションで同じタスクを実行するユーザーを同じアクセスグループにまとめてください。 アクセスグループは、可能な限り同じアプリケーションルールを使用しなければなりません。
補足: プロダクションルールセットをアクセスグループに追加する際には注意が必要です。 プロダクションルールセットは、ルールセットリストに相反する順序で追加される可能性があり、その場合一意のルールセットリストの数が増えるため、ルールキャッシュも増えてしまいます。
ルールのチェックアウトを制限
オペレーターIDでAllow rule check out が有効になっている場合、システムはチェックアウトされたルールを保存するためのパーソナルルールセットを作成します。 パーソナルルールセットリストは、個別のキャッシュを生成します。 非開発環境では、ルールをチェックアウトできるユーザーの数を制限することで、キャッシュの問題を減らします。 ユーザーのオペレーターIDレコードの「Security 」タブにあるルールチェックアウトオプションを無効にして、ルールを更新しないユーザーのルールチェックアウトをオフにします。
補足: ルールのチェックアウトを本番環境のシステム管理者に制限することをお勧めします。 詳細については、「Standard rule checkout」を参照してください。
ブランチをマージ
アプリケーションの移行前にルールセットブランチをマージする。 本番環境でブランチを使用しないようにすることで、ブランチルールセットのルールアッセンブリーへの影響を防ぎます。
Static Assembler
移行後のアッセンブリーの影響を軽減するために、Pega PlatformはStatic Assemblerを提供します。 このツールを使うと、ユーザーがリクエストする前に、アプリケーション内のすべてのルールをアッセンブルすることができます。
次の問題に答えて、理解度をチェックしましょう。
このトピックは、下記のモジュールにも含まれています。
If you are having problems with your training, please review the Pega Academy Support FAQs.