mqsichangeflowstats コマンドを使用して、メッセージ・フローのアカウンティングと統計のデータ収集でアカウンティング起点をサポートするときには、どんなデータが関連しているかを示す正しい識別値を提供するよう、メッセージ・フローを構成しなければなりません。
アカウンティングおよび統計データは、アカウンティング起点と関連しています。 詳しくは、メッセージ・フローの統計データとアカウンティング・データおよびメッセージ・フローのアカウンティングおよび統計のアカウンティング起点を参照してください。
データ収集を行うそれぞれのメッセージ・フローごとに異なる値を設定できます。
または、特定のメッセージ・フロー・グループに対して同じ値を設定できます (例えば、1 つの実行グループ内のメッセージ・フロー、または特定のクライアント、部門、アプリケーション・スイートに関連したメッセージ・フロー)。
アカウンティング起点の設定は、実行場所のブローカーにメッセージ・フローをデプロイするまでは使用されません。 メッセージ・フローのデプロイ前またはデプロイ後に、データ収集をアクティブ化または変更して、アカウンティング起点をサポートさせることができます。 アカウンティング起点を変更するメッセージ・フローをデプロイするとき、データ収集を停止する必要はありません。
メッセージ・フローを構成して特定のアカウンティング起点を指定するには、以下の手順を実行します。
- 作業するメッセージ・フローを開きます。
- ノードのパレットの上の「選択」をクリックします。
- エディター・ビューで Compute、Database、または Filter ノードを右クリックし、「ESQL のオープン」をクリックします。 関連する ESQL ファイルがエディター・ビュー内に開き、現在のモジュールの先頭にカーソルが置かれます。
これらのノードのいずれにも、必要な ESQL を組み込むことが可能なので、このアクションに関して、各メッセージ・フローのどのノードが最も適切かを決定してください。
アカウンティング起点サポートを利用するためには、特定の起点を設定する各メッセージ・フローの中に、これらのノードのいずれかを組み込みます。 これら 3 つのノードのいずれもメッセージ・フロー内にまだ構成していない場合、適切なポイント (例えば入力ノードの直後) にいずれかを追加して、それをフロー内の他のノードに接続する必要があります。
- ノード・モジュール内の ESQL を更新して、アカウンティング起点を設定します。 ブローカーは、Environment ツリーに設定された起点 ID を使用します。 相関名 Environment.Broker.Accounting.Origin のフィールドに、値を設定する必要があります。
メッセージが最初にブローカーに受信されるとき、このフィールドは Environment ツリー内に自動生成されません。 メッセージ・フローのノードに関連した ESQL モジュールでこれを設定するときに、このフィールドが初めて作成されます。
メッセージ・フロー内に値を設定しない場合、デフォルト値「無名」がすべての出力で使用されます。
メッセージ・フローの複数の場所に値を設定した場合、メッセージ・フローの終端に最も近い場所で設定された値が出力データで使用されます。
以下の形式のコードを追加する必要があります。
SET Environment.Broker.Accounting.Origin = "value";
(上記のように) 識別子を固定値として指定できます。
または、実行時に決定される動的な値に基づいて値を指定することもできます。
値は 32 バイト以内の文字データでなければなりません。例えば、この値を、処理対象のメッセージの特定フィールドの内容に設定することができます (Compute ノードの ESQL をコーディングしている場合、以下の例では、Body の代わりに相関名 InputBody を使用する必要があります):
IF Body.DepartmentName <> NULL THEN
SET Environment.Broker.Accounting.Origin = Body.DepartmentName;
END IF;
- ESQL モジュールを保管して、エラーが発生していないことを確認します。
- メッセージ・フローを保存して、再びエラーを確認します。
これで、更新済みのメッセージ・フローをデプロイする準備ができました。詳しくは、
リソースのデプロイを参照してください。
メッセージ・フローのデプロイ後に収集されるアカウンティングおよび統計のデータ・レコードには、すでに設定した起点 ID が含まれます。