メッセージに優先度を設定する機能です。業務処理を優先して行いたい要件が発生した場合や業務処理中に一定の条件を満たした場合などに、特定のメッセージの優先度を変更することができます。
優先度によるメッセージ処理順序の変更は、業務に関連付けられたキュー単位で行います。キューからメッセージを取り出す際、複数のメッセージが格納されている場合、優先度が高いメッセージから優先的に取り出されます。これにより、優先度が高いメッセージは優先度が低いメッセージよりも優先的に処理されます。優先度はメッセージごとに指定可能なため、同一フロー定義であっても異なった優先度のメッセージが作成できます。
優先度は以下のレベルが指定できます。
高い
普通
低い
特に指定しない場合は、“普通”が指定されたものとして動作します。
優先度の指定方法を以下に示します。
業務処理開始アプリケーションで優先度を指定
メッセージを発行するAPIに優先度のレベルを指定してメッセージを発行します。
業務処理開始アプリケーションからメッセージを発行する際、送信するメッセージの内容により優先度を選択することができます。優先度は、業務処理実行アプリケーションの処理結果により変更されるまで発行時に設定された優先度で動作します。
業務処理実行アプリケーションの出力結果により優先度を変更
フロー定義ツールで設計するルーティングの各遷移(矢印オブジェクト)に優先度を変更するための条件式と変更する優先度のレベルを定義することができます。メッセージを各遷移から送信する際、メッセージの内容から条件式を評価し、真となるメッセージの優先度を指定された優先度に変更します。優先度は、一端変更されると次に再変更する条件に合致するまで変更された優先度で動作します。
優先度の指定方法における概念図を以下に示します。
なお、業務処理開始アプリケーションからメッセージを発行した順序で業務処理を行うことを完全に保証することはできません。
以下にメッセージの順序性について考慮すべき事項を説明します。
通常のメッセージ処理におけるメッセージの順序性
アプリケーション連携実行基盤では、キュー内のデータをFIFO(First In First Out)として扱うため、メッセージ処理の多重度を1に指定し、並列実行しないことで業務処理開始アプリケーションからメッセージを発行した順序でメッセージを処理します。ただし、ルーティングされるメッセージの優先度を変更した場合、優先度の高いメッセージが低いメッセージを追い抜く可能性があります。
異常処理に退避されたメッセージ
メッセージが異常処理に退避された場合、メッセージの順序性は保証されません。syslogに“FSP_INTS-BAS_AP1000”、“FSP_INTS-BAS_AP1001”、“FSP_INTS-BAS_AP1004”、“FSP_INTS-BAS_AP1007”、“FSP_INTS-BAS_AP1008”または“FSP_INTS-BAS_AP1019”のエラーメッセージが出力された場合、後から発行されたメッセージが、異常処理に退避されたメッセージを追い抜いて処理されます。
注意
異常処理定義で指定した“総アクティビティ通過数”を超過した場合、当該メッセージに対する業務処理は、アプリケーション連携実行基盤では対処不能なレベルと判断し、メッセージが異常処理に退避されるため、後から発行されたメッセージが、“総アクティビティ通過数”を超えたメッセージを追い抜いて処理されます。