Hitachi

Cosminexus V11 BPM/ESB基盤 サービスプラットフォーム システム構築・運用ガイド


7.7.19 Kafka受付実行時の障害対策

この項では,KafkaインバウンドアダプタおよびKafka受付の運用時に発生する障害に対して取得できる情報の種類について説明します。

〈この項の構成〉

(1) 障害情報の取得(Kafkaインバウンドアダプタ)

Kafkaインバウンドアダプタに関する障害情報には次の種類があります。

ここでは,これらの障害情報について説明します。

なお,Kafkaインバウンドアダプタでは,このマニュアルで説明する障害情報のほかに,Kafkaインバウンドアダプタが動作するJ2EEサーバおよびJavaVMが出力する資料があります。J2EEサーバおよびJavaVMが出力する資料については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「4. トラブルシューティングで必要な資料の出力先と出力方法」を参照してください。

(a) メッセージログ(Kafkaインバウンドアダプタ)

メッセージログには,Kafkaインバウンドアダプタのエラー情報,および稼働情報を示すメッセージが出力されます。ここでは,Kafkaインバウンドアダプタでのメッセージログについて説明します。

●メッセージログの出力形式

メッセージログの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <メッセージID> <メッセージテキスト>
●出力される内容

メッセージログに出力される内容を次の表に示します。

表7‒215 メッセージログに出力される内容(Kafkaインバウンドアダプタ)

項目

内容

日付

メッセージログの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

メッセージログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

pid

プロセスを識別するためのIDが出力されます。OSが管理するプロセスIDとは異なります。

tid

スレッドを識別するためのIDが出力されます。OSが管理するスレッドIDとは異なります。

メッセージID

メッセージIDが出力されます。

メッセージテキスト

メッセージの内容が出力されます。

●メッセージログの出力先
<J2EEサーバのログ出力ディレクトリ>\csc\inbound-adapter\kafka\Kafka_Inbound_Resource_Adapter

<J2EEサーバのログ出力ディレクトリ>は,usrconf.cfg(J2EEサーバ用オプション定義ファイル)のejb.server.log.directoryキーで変更できます。デフォルトは,<サービスプラットフォームのインストールディレクトリ>\ejb\<サーバ名称>\logsです。usrconf.cfgの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。

メッセージログのログファイル名を次の表に示します。

表7‒216 メッセージログのログファイル名(Kafkaインバウンドアダプタ)

ファイルの種類

ログファイル名

現用ファイル

message.log

バックアップファイル

message.log.<面数>

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合,バックアップファイルにリネームされます。

新しいログファイルの方が大きい番号となります。一度作成されたログファイルは削除されません。なお,ファイルの改行コードは「LF」です。

メッセージログの出力レベル,ファイルのサイズ,およびファイル面数は,RARファイルの属性を設定するConnector属性ファイルで変更できます。プロパティを次に示します。

  • server_message_logLevel=メッセージログの出力レベル

  • server_message_maxFileSize=メッセージログのファイルサイズ

  • server_message_maxBackupIndex=バックアップファイルの面数

設定手順については,「3.1.2(11) Kafkaインバウンドアダプタのセットアップ」を参照してください。

(b) 保守用ログ(Kafkaインバウンドアダプタ)

保守用ログには,Kafkaインバウンドアダプタでのエラー発生時のログが出力されます。このログは,保守員に連絡するときに必要です。ここでは,Kafkaインバウンドアダプタでの保守用ログについて説明します。

●保守用ログの出力形式

保守用ログの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <保守情報>
●出力される内容

保守用ログに出力される内容を次の表に示します。

表7‒217 保守用ログに出力される内容(Kafkaインバウンドアダプタ)

項目

内容

日付

保守用ログの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

保守用ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

pid

プロセスを識別するためのIDが出力されます。OSが管理するプロセスIDとは異なります。

tid

スレッドを識別するためのIDが出力されます。OSが管理するスレッドIDとは異なります。

保守情報

システム管理者または保守員に連絡するときに必要な保守情報が出力されます。

●保守用ログの出力先
<J2EEサーバのログ出力ディレクトリ>\csc\inbound-adapter\kafka\Kafka_Inbound_Resource_Adapter

<J2EEサーバのログ出力ディレクトリ>は,usrconf.cfg(J2EEサーバ用オプション定義ファイル)のejb.server.log.directoryキーで変更できます。デフォルトは,<サービスプラットフォームのインストールディレクトリ>\ejb\<サーバ名称>\logsです。usrconf.cfgの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。

保守用ログのログファイル名を次の表に示します。

表7‒218 保守用ログのログファイル名(Kafkaインバウンドアダプタ)

ファイルの種類

ログファイル名

現用ファイル

maintenance.log

バックアップファイル

maintenance.log.<面数>

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合,バックアップファイルにリネームされます。

新しいログファイルの方が大きい番号となります。一度作成されたログファイルは削除されません。なお,ファイルの改行コードは「LF」です。

保守用ログの出力レベル,ファイルのサイズ,およびファイル面数は,RARファイルの属性を設定するConnector属性ファイルで変更できます。プロパティを次に示します。

  • server_maintenance_logLevel=保守用ログの出力レベル

  • server_maintenance_maxFileSize=保守用ログのファイルサイズ

  • server_maintenance_maxBackupIndex=バックアップファイルの面数

設定手順については,「3.1.2(11) Kafkaインバウンドアダプタのセットアップ」を参照してください。

(c) データトレース(Kafkaインバウンドアダプタ)

データトレースは,送受信データ内容を取得することで,データ(内部データ)の正当性を確認できます。

●データトレースの出力形式

データトレースの出力形式を次に示します。

<日付> <時刻> <pid> <tid> <出力種別> <取得ポイント> <レコード情報>
●出力される内容

データトレースに出力される内容を次の表に示します。

表7‒219 データトレースに出力される項目(Kafkaインバウンドアダプタ)

項目

内容

日付

データトレースの取得日付がyyyy/mm/ddの形式で出力されます。

  • yyyy:西暦年

  • mm:月

  • dd:日

時刻

データトレースの取得時刻がhh:mm:ss.SSSの形式で出力されます。

  • hh:時

  • mm:分

  • ss:秒

  • SSS:ミリ秒

ローカル時刻でミリ秒単位の時刻を示します。

pid

プロセスを識別するためのIDが出力されます。OSが管理するプロセスIDとは異なります。

tid

スレッドを識別するためのIDが出力されます。OSが管理するスレッドIDとは異なります。

出力種別

トレースの出力種別※1が出力されます。

  • NORMAL:正常終了

  • ERROR:異常終了

取得ポイント

トレースの取得ポイントが出力されます。

  • AMR:メッセージ受信後

  • AMP:メッセージ処理後

  • CPE:Consumerの処理でエラーが発生した場合(コミット失敗など)

レコード情報

レコード情報※2が出力されます。

注※1

属性ファイルのserver_datatrace_triggerに「normal,error」のように複数の値を列挙した場合,出力種別「NORMAL」と「ERROR」のトレースが両方出力されます。これらは出力される条件が異なるため,重複する情報が出力されることはありません。

複数の出力種別「normal,error」を指定した場合の出力例を次に示します。

2021/09/22 08:47:27.953  06519EE0  184CF7CF  NORMAL  AMR  [レコード情報]
2021/09/22 08:47:28.822  06519EE0  184CF7CF  NORMAL  AMR  [レコード情報]
2021/09/22 08:47:29.157  06519EE0  184CF7CF  NORMAL  AMR  [レコード情報]
2021/09/22 08:47:30.307  06519EE0  184CF7CF  ERROR   AMP  [レコード情報]
2021/09/22 08:47:45.988  06519EE0  2805C96B  NORMAL  AMR  [レコード情報]
2021/09/22 08:47:50.263  06519EE0  0067238B  NORMAL  AMR  [レコード情報]
注※2

レコード情報の出力形式を次に示します。

ConsumerRecord(topic = [1], partition = [2], leaderEpoch = [3], offset = [4], CreateTime = [5], serialized key size = [6], serialized value size = [7], headers =[8]RecordHeaders(headers = [RecordHeader(key = [8-1], value = [8-2]),…(ヘッダの数だけくり返し出力する)], isReadOnly = [8-3]), key = [9], value = [10]), ConsumerInfo(Consumer Group = [11], Consumer ID = [12], Reception ID = [13])

出力形式の[ ]の各項目について次に説明します。

項番

項目

説明

[1]

トピック

このレコードが受信されるトピック

[2]

パーティション

対応するKafkaパーティション内のこのレコードの位置

[3]

リーダーエポック

レコードのリーダーエポック

取得できない場合はnullとなります。

[4]

オフセット

このレコードの受信元のパーティション

[5]

タイムスタンプ

レコードのタイムスタンプ

次の形式で出力します。タイムスタンプ種別はApache Kafkaによって設定されます。

「タイムスタンプ種別=レコードのタイムスタンプ」

タイムスタンプが設定されていない場合は,「NoTimestampType=-1」と出力されます。

[6]

キーのサイズ

シリアル化された非圧縮キーのサイズ(単位:バイト)

値がnullの場合は「-1」と出力されます。

[7]

値のサイズ

シリアル化された非圧縮の値のサイズ(単位:バイト)

値がnullの場合は「-1」と出力されます。

[8]

レコードのヘッダ

ヘッダ情報

[8-1]

ヘッダのキー

ヘッダのキー

[8-2]

ヘッダの値

値を16進数表記の文字列に変換したものを出力します。

[8-3]

ヘッダが読み取り専用か

  • 読み取り専用の場合:true

  • 読み取り専用でない場合:false

[9]

レコードのキー

レコードのキー

値がnullの場合は「-1」と出力されます。

[10]

レコードの値

レコードの値

値がnullの場合は「-1」と出力されます。

値がバイト配列の形式の場合は,値を16進数表記の文字列に変換したものを出力します。

[11]

Consumerグループ

Consumerグループ名

[12]

Consumer ID

ConsumerのID

[13]

受付ID

Kafka受付の受付ID

レコード情報の出力例を次に示します。

ConsumerRecord(topic = topic-1, partition = 0, leaderEpoch = 0, offset = 81, CreateTime = 1631607555074, serialized key size = 4, serialized value size = 15, headers = RecordHeaders(headers = [RecordHeader(key = header1, value = 636363), RecordHeader(key = header2, value = 646464), RecordHeader(key = header3, value = 656565)], isReadOnly = false), key = key1, value = value1), ConsumerInfo(Consumer Group = Group1, Consumer ID = consumer-test1-1-ade8920c-cbce-4821-b711-cfedc4b19362, Reception ID = rcp1)
●データトレースの出力先

データトレースは,次に示すディレクトリに出力されます。

<J2EEサーバのログ出力ディレクトリ>\csc\inbound-adapter\kafka\Kafka_Inbound_Resource_Adapter

<J2EEサーバのログ出力ディレクトリ>は,usrconf.cfg(J2EEサーバ用オプション定義ファイル)のejb.server.log.directoryキーで変更できます。デフォルトは,<サービスプラットフォームのインストールディレクトリ>\ejb\<サーバ名称>\logsです。usrconf.cfgの詳細は,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。

データトレースのトレースファイル名を次の表に示します。

表7‒220 データトレースのトレースファイル名(Kafkaインバウンドアダプタ)

トレースファイルの出力モード

トレースファイル名

現用ファイル

dattrace.log

バックアップファイル

dattrace.log.<面数>

注※

現用ファイルのサイズが1面当たりのファイルサイズを超えた場合,バックアップファイルにリネームされます。

新しいログファイルの方が大きい番号となります。一度作成されたログファイルは削除されません。なお,ファイルの改行コードは「LF」です。

データトレースの出力レベル,ファイルのサイズ,およびファイル面数は,RARファイルの属性を設定するConnector属性ファイルで変更できます。プロパティを次に示します。

  • server_datatrace_enabled=データトレースの出力有無

  • server_datatrace_trigger=データトレースの出力契機

  • server_datatrace_maxFileSize=データトレースのファイルサイズ

  • server_datatrace_maxBackupIndex=バックアップファイルの面数

設定手順については,「3.1.2(11) Kafkaインバウンドアダプタのセットアップ」を参照してください。

(d) 性能解析トレース(Kafkaインバウンドアダプタ)

Kafkaインバウンドアダプタでの性能解析トレースについて説明します。

●性能解析トレースの出力形式

性能解析トレースファイルに出力される形式は,J2EEサーバの性能解析トレースと同様です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。

●出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表7‒221 性能解析トレースファイルに出力される内容(Kafkaインバウンドアダプタ)

項目

内容

イベントID

取得ポイントのイベントIDが出力されます。

取得ポイントの詳細は,項目「●性能解析トレースの取得ポイント」を参照してください。

リターンコード

取得ポイント種別が出力されます。

  • 0:正常終了

  • 1:異常終了

インターフェース名

クラス名が出力されます。

オペレーション名

メソッド名が出力されます。

オプション情報

次の情報が出力されます。

  • Consumerグループ名

  • Consumer ID(取得できない場合は空文字)

  • 受付ID

  • 例外情報(障害発生時だけ)

●性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図7‒160 性能解析トレースの取得ポイント(Kafkaインバウンドアダプタ)

[図データ]

イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は上の図の番号と対応しています。

表7‒222 性能解析トレースの取得ポイント(Kafkaインバウンドアダプタ)

イベントID

図中の番号

トレース取得ポイント

レベル

0x98C0

1

ポーリング実行前

A

0x98C1

2

ポーリング完了後

A

0x98C2

3

Kafka受付の呼び出し前

A

0x98C3

4

Kafka受付の呼び出し完了後

A

0x98C4

5

コミット実行前

A

0x98C5

6

コミット完了後

A

0x98C6

7

Work内の処理(「メッセージ受信機能」「Kafka受付呼び出し機能」)実行前

A

0x98C7

8

Work内の処理(「メッセージ受信機能」「Kafka受付呼び出し機能」)実行後

A

(凡例)

A:「標準」であることを示します。

●性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。

(e) Kafkaプロトコルトレース(Kafkaインバウンドアダプタ)

Kafkaプロトコルトレースには,Brokerへの接続処理やリクエスト内容などを出力します。

KafkaプロトコルトレースはKafkaアダプタと共通で使用します。Kafkaプロトコルトレースについては「7.7.20(6) Kafkaプロトコルトレース(Kafkaアダプタ・Kafkaインバウンドアダプタ共通)」を参照してください。

(f) Kafkaインバウンドアダプタの障害情報(Kafkaインバウンドアダプタ)

Kafkaインバウンドアダプタで発生する障害の種類と,障害発生時の動作を説明します。

基本的には,ログに出力されたメッセージに基づいた処理を実行することで回復できますが,それ以外の対策が必要な場合もあります。該当する事象については,「●ログに出力されたメッセージ以外の対策が必要な場合」を参照してください。

  • Consumerに関する障害

    Consumerに関する障害の種類を次に示します。なお,パーティションの割り当てとサブスクライブに関する障害はありません。

    • データのポーリング

      Brokerとの認証に失敗した場合に発生する障害です。データのポーリングで発生するおそれのある障害と,障害発生時の動作を次の表に示します。

      障害の種類

      発生条件

      障害発生時の動作

      認証に関する障害

      証明書の誤りなど,Brokerとの認証に失敗した場合。

      エラーメッセージ「KDEC07716-E」を出力して処理を中断する。

      認可に関する障害

      アクセス可否を設定しているが,ポーリング処理に必要なアクセス権限がない場合。

      エラーメッセージ「KDEC07717-E」を出力して処理を中断する。

      その他の障害

      主に,セッションタイムアウトが発生した場合。

      エラーメッセージ「KDEC07720-E」を出力して処理を中断する。

    • オフセットのコミット

      オフセットのコミットで発生するおそれのある障害と,障害発生時の動作を次の表に示します。

      障害の種類

      発生条件

      障害発生時の動作

      コミット処理の失敗に関する障害

      Consumerがグループから除外された場合や,Consumerに割り当てられなくなったパーティションにコミットしようとした場合。

      エラーメッセージ「KDEC07721-E」を出力して処理を中断する。

      認証に関する障害

      証明書の誤りなど,Brokerとの認証に失敗した場合。

      エラーメッセージ「KDEC07716-E」を出力して処理を中断する。

      認可に関する障害

      アクセス可否を設定しているが,ポーリング処理に必要なアクセス権限がない場合。

      エラーメッセージ「KDEC07717-E」を出力して処理を中断する。

      タイムアウトに関する障害

      何らかの原因で,タイムアウト期間内にコミット処理が完了しない場合。

      エラーメッセージ「KDEC07722-E」を出力して処理を中断する。

      その他の障害

      主に,コミット時にトピックが削除された場合。

      エラーメッセージ「KDEC07723-E」を出力して処理を中断する。

  • タイムアウトに関する障害

    タイムアウトが発生した処理ごとに動作が異なります。詳細については,マニュアル「サービスプラットフォーム 解説」の「2.12.4 Kafkaインバウンドアダプタのタイムアウト監視」のタイムアウト発生後の動作を参照してください。

  • Kafka受付呼び出しに関する障害

    Kafka受付呼び出しで発生するおそれのある障害と,障害発生時の動作を次の表に示します。

    障害の種類

    発生条件

    障害発生時の動作

    Kafka受付の呼び出しに関する障害

    Kafka受付から例外が返却された場合。

    エラーメッセージ「KDEC07741-E」を出力して処理を中断する。

    メッセージ処理が失敗したことを示す情報がKafka受付から返された場合。

    「KDEC07743-W」を出力して処理を続行する。

    リトライ回数の上限内に処理が成功しなかった場合。

    エラーメッセージ「KDEC07744-E」を出力して処理を中断する。

  • リソースアダプタの開始に関する障害

    リソースアダプタの開始処理で発生するおそれのある障害と,障害発生時の動作を次の表に示します。

    エラー原因

    発生条件

    障害発生時の動作

    アプリケーションサーバ

    リソースアダプタ

    リソースアダプタの開始に失敗

    プロパティに範囲外の値が設定された場合。

    メッセージ「KDJE48590-E」を出力する。

    プロパティごとにKDEC07709-E(プロパティ値の範囲が不正である)メッセージを出力する。

    KDEC07701-E(リソースアダプタの開始に失敗した。詳細:プロパティ値に不正な値が設定されたものがあった)を出力し,リソースアダプタの開始に失敗する。

    定義ファイルの作成で予期しない例外が発生

    リソースアダプタの起動時に,内部で使用する定義ファイル(log4j.xml)の作成で予期しない例外が発生した場合。

    KDEC07701-E(リソースアダプタの開始に失敗した。詳細:定義ファイルの作成で例外が発生した)を出力し,リソースアダプタの開始に失敗する。

    定義ファイルのバックアップ作成で例外が発生

    リソースアダプタの起動時に,内部で使用する定義ファイル(log4j.xml)のバックアップ作成で予期しない例外が発生した場合。

    KDEC07701-E(リソースアダプタの開始に失敗した。詳細:定義ファイルのバックアップ作成で例外が発生した)を出力し,リソースアダプタの開始に失敗する。

  • ログに出力されたメッセージ以外の対策が必要な場合

    ログに出力されたメッセージのほかに,Kafkaインバウンドアダプタで扱うメッセージ(ここではKafkaメッセージと表記します)の問題で対策が必要な場合があります。ここでは現象ごとに確認方法と対策方法を示します。

    • Kafkaメッセージの処理でエラーが発生している場合

      Kafkaメッセージの処理でエラーが発生した場合は,次に示す手順で回復してください。

      1. データトレースを参照して,Kafkaメッセージの作成に必要な情報を確認する。

      2. Kafkaメッセージを作成し,再送する。

    • 不正なKafkaメッセージを受信している場合

      不正なKafkaメッセージを受信すると,Kafka受付やビジネスプロセス内の処理がエラーとなることがあります。

      この現象に該当するかの確認と回復処理の手順を次に示します。

      1. データトレースを参照して,不正なKafkaメッセージを受信していないか確認する。

      2. 不正なKafkaメッセージを受信している場合は,Consumerグループ内のConsumerに対応するKafka受付を停止させ,Consumerを停止する。

      3. Apache Kafkaのkafka-consumer-groups.shコマンドを実行し,受信するKafkaメッセージのオフセットを不正なKafkaメッセージのオフセットの次のオフセットに変更する。

      kafka-consumer-groups.shコマンドについては,Apache Kafkaの公式ドキュメントを参照してください。

    • Consumerが停止し,Kafkaメッセージが受信されない場合

      Consumerは続行不可能になると停止し,Consumerグループから除外されます。

      この現象に該当するかの確認と回復処理の手順を次に示します。回復処理が実行されるまで,Kafkaメッセージは受信されません。

      1. ログに出力されたメッセージの「Consumerグループ名」「Consumerのインスタンス識別子」から,該当するConsumerを確認する。

      2. Apache Kafkaのkafka-consumer-groups.shコマンドを実行し,該当するConsumerがグループから除外されていることを確認する。

      3. アプリケーションを再起動する。

      kafka-consumer-groups.shコマンドについては,Apache Kafkaの公式ドキュメントを参照してください。

    • Consumerは起動しているがKafkaメッセージが受信されない場合

      Consumerが起動していてもKafkaメッセージが受信されない場合は,フェッチ対象のデータが存在しないために,空のレコードセットが返却されているおそれがあります。

      考えられるエラー原因と対策方法を次に示します。対策方法に示すプロパティとコマンドについては,Apache Kafkaの公式ドキュメントを参照してください。

      エラー原因

      対策方法

      Brokerと接続できていない

      zookeeper-shell.shコマンドを実行してサーバ一覧を取得し,Kafka受付定義ファイルのconsumer.bootstrap.serversプロパティに指定したサーバが起動しているか確認してください。

      トピックが存在しない

      kafka-topics.shコマンドを実行してトピック一覧を取得し,該当するトピックが存在するか確認してください。

      トピックにデータが送信されていない

      送信側の問題のため,Consumer側では対策できません。

(2) 障害情報の取得(Kafka受付)

Kafka受付では,障害情報として性能解析トレースを出力します。

ここでは,Kafka受付の実行時に発生したエラーの伝わり方と,性能解析トレースについて説明します。

(a) Kafka受付実行時に発生したエラーの伝わり方

KafkaクライアントからKafka受付を使用してビジネスプロセスを呼び出す場合のエラーの伝わり方を説明します。エラーの伝わり方は,エラーの種類によって異なります。

Kafka受付がエラーを検知した場合

Kafka受付がエラーを検知した場合のエラーの伝わり方を次の図に示します。Kafka受付は検知した障害を基にエラーメッセージを生成し,メッセージログに出力します。Kafkaインバウンドアダプタには例外をスローしません。

図7‒161 Kafka受付がエラーを検知した場合のエラーの伝わり方

[図データ]

カスタム受付フレームワークがエラーをリターンした場合

カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方を次の図に示します。Kafka受付の受付処理では,キャッチした例外を基にエラーメッセージを生成し,メッセージに出力します。Kafkaインバウンドアダプタには例外をスローしません。

図7‒162 カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方

[図データ]

図中に示したエラー1〜エラー5の要因を次に示します。

  • エラー1:要求パラメタ不正など

  • エラー2:宛先(ロケーション)が見つからない,サービスアダプタが停止しているなど

  • エラー3:データ変換の失敗など

  • エラー4:宛先不正,サービス部品が停止,通信障害など

  • エラー5:ビジネスプロセス処理上での例外エラーなど

エラー1〜エラー5のどれかが発生した場合,例外をキャッチしたカスタム受付フレームワークはKafka受付の受付処理に対して,CSCMsgServerExceptionをスローします。

CSCMsgServerExceptionの詳細は,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録A.3 カスタム受付フレームワークのAPI」を参照してください。

(b) メッセージログ(Kafka受付)

メッセージログのJ2EEサーバの稼働ログに,Kafka受付で発生した各種情報がメッセージとして出力されます。

メッセージログの出力内容や出力先については,「7.4.1 メッセージログ」を参照してください。

(c) 性能解析トレース(Kafka受付)

Kafka受付の性能解析トレースについて説明します。

●性能解析トレースの出力形式

性能解析トレースファイルに出力される形式は,J2EEサーバの性能解析トレースと同様です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7.3 Management Serverを利用した性能解析トレースファイルの収集」を参照してください。

●出力される内容

性能解析トレースファイルに出力される内容を次の表に示します。

表7‒223 性能解析トレースファイルに出力される内容(Kafka受付)

項目

内容

イベントID

取得ポイントのイベントIDが出力されます。

取得ポイントの詳細は,項目「●性能解析トレースの取得ポイント」を参照してください。

リターンコード

取得ポイント種別が出力されます。

  • 0:正常終了

  • 1:異常終了

インターフェース名

クラス名が出力されます。

オペレーション名

メソッド名が出力されます。

オプション情報

メッセージ共通ID

リクエスト識別情報(親ID)が出力されます。未設定の場合,nullが出力されます。

サービスリクエストID

リクエスト識別情報(子ID)が出力されます。未設定の場合,nullが出力されます。

付加情報

次のオプション情報が出力されます。

  • 受付名

  • 受付ID

  • クライアント相関ID

  • サービス名

  • サービスオペレーション名

  • 例外名(障害発生時だけ)

注※

オプション情報は最大256バイトです。

●性能解析トレースの取得ポイント

性能解析トレースの取得ポイントを次の図に示します。

図7‒163 性能解析トレースの取得ポイント(Kafka受付)

[図データ]

イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は上の図の番号と対応しています。

表7‒224 性能解析トレースの取得ポイント(Kafka受付)

イベントID

図中の番号

トレース取得ポイント

レベル

0x98D0

1

カスタム受付の入口

A

0x98D1

2

カスタム受付の出口

A

0x98D2

3

カスタム受付フレームワークの呼び出し口

B

0x98D3

4

カスタム受付フレームワークの応答受信口

B

0x9860

5

カスタム受付フレームワークの入口

A

0x9861

6

カスタム受付フレームワークの出口

A

0x9864

7

HCSCメッセージ配送制御の呼び出し口

A

0x9865

8

HCSCメッセージ配送制御の応答受信口

A

(凡例)

A:「標準」であることを示します。

B:「詳細」であることを示します。

●性能解析トレースの取得方法と出力先

性能解析トレースを取得するには設定が必要です。設定の詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。