7.7.21 スケジュール駆動受付実行時の障害対策
この項では,スケジュール駆動受付の運用時に発生する障害に対して取得できる情報の種類について説明します。
スケジュール駆動受付に関する障害情報には次の種類があります。
-
メッセージログ
-
メソッドトレース
-
性能解析トレース
-
例外ログ
-
イベント履歴ログ
これらの障害情報について説明します。
- 〈この項の構成〉
(1) スケジュール駆動受付実行時に発生したエラーの伝わり方
スケジュール駆動受付のエラーの伝わり方は,エラーの種類によって異なります。
ここでは,次の場合についてエラーの伝わり方を説明します。
-
カスタム受付フレームワークがエラーをリターンした場合
-
スケジュール駆動受付がエラーを検知した場合
(a) カスタム受付フレームワークがエラーをリターンした場合
カスタム受付フレームワークがエラーをリターンした場合のエラーの伝わり方を次の図に示します。
|
|
図中に示したエラー1〜エラー5の要因を次に示します。
-
エラー1:要求パラメタ不正など
-
エラー2:宛先(ロケーション)が見つからない,サービスアダプタが停止しているなど
-
エラー3:データ変換の失敗など
-
エラー4:宛先不正,サービス部品が停止,通信障害など
-
エラー5:ビジネスプロセス処理上での例外エラーなど
エラー1〜エラー5のどれかが発生した場合,例外をキャッチしたカスタム受付フレームワークはスケジュール駆動受付の受付処理に対して,CSCMsgServerExceptionをスローします。スケジュール駆動受付の受付処理は,キャッチした例外を基にエラーメッセージを作成し,メッセージログに出力します。
CSCMsgServerExceptionの詳細は,マニュアル「サービスプラットフォーム 開発ガイド 受付・アダプタ定義編」の「付録A.3 カスタム受付フレームワークのAPI」を参照してください。
(b) スケジュール駆動受付がエラーを検知した場合
スケジュール駆動受付がエラーを検知した場合のエラーの伝わり方を次の図に示します。
|
|
スケジュール駆動受付は検知した障害を基にエラーメッセージを生成し,メッセージログに出力します。
(2) メッセージログ
メッセージログのJ2EEサーバの稼働ログに,スケジュール駆動受付で発生した各種情報がメッセージとして出力されます。
メッセージログの出力内容や出力先については,「7.4.1 メッセージログ」を参照してください。
(3) メソッドトレース
スケジュール駆動受付のメソッドトレースは,サービスプラットフォームが出力するメソッドトレースの仕様に従います。
メソッドトレースの出力内容および出力先については,「7.4.7(3) メソッドトレース」の「HCSCサーバ(メッセージング基盤)のメソッドトレース」を参照してください。
(4) 性能解析トレース
スケジュール駆動受付の性能解析トレースについて説明します。
(a) 出力形式
性能解析トレースファイルに出力される形式は,J2EEサーバの性能解析トレースと同様です。詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。
(b) 出力される内容
性能解析トレースファイルに出力される内容を次の表に示します。
|
項目 |
内容 |
|
|---|---|---|
|
イベントID |
取得ポイントのイベントIDが出力されます。 取得ポイントの詳細は,「(c) 性能解析トレースの取得ポイント」を参照してください。 |
|
|
リターンコード |
取得ポイント種別が出力されます。
|
|
|
インターフェース名 |
クラス名が出力されます。 |
|
|
オペレーション名 |
メソッド名が出力されます。 |
|
|
オプション情報※ |
メッセージ共通ID |
リクエスト識別情報(親ID)が出力されます。 情報を設定していない場合はnullになります。 |
|
サービスリクエストID |
リクエスト識別情報(子ID)が出力されます。 情報を設定していない場合はnullになります。 |
|
|
付加情報 |
次のオプション情報が出力されます。
|
|
- 注※
-
オプション情報は最大で256バイトです。
(c) 性能解析トレースの取得ポイント
性能解析トレースの取得ポイントを次の図に示します。
|
|
イベントID,トレース取得ポイント,および性能解析トレース取得レベルを次の表に示します。表の「図中の番号」は上の図の番号と対応しています。
|
イベントID |
図中の番号 |
トレース取得ポイント |
レベル |
|---|---|---|---|
|
0x98F0 |
1 |
カスタム受付の入口 |
A |
|
0x98F1 |
2 |
カスタム受付の出口 |
A |
|
0x98F2 |
3 |
カスタム受付フレームワークの呼び出し口 |
B |
|
0x98F3 |
4 |
カスタム受付フレームワークの応答受信口 |
B |
|
0x9860 |
5 |
カスタム受付フレームワークの入口 |
A |
|
0x9861 |
6 |
カスタム受付フレームワークの出口 |
A |
|
0x9864 |
7 |
HCSCメッセージ配送制御の呼び出し口 |
A |
|
0x9865 |
8 |
HCSCメッセージ配送制御の応答受信口 |
A |
- (凡例)
-
A:「標準」であることを示します。
B:「詳細」であることを示します。
(d) 性能解析トレースの取得方法と出力先
性能解析トレースを取得するには設定が必要です。設定の詳細は,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。
(5) 例外ログ
例外ログには例外情報が出力されます。例外ログの概要については,「7.4.7(1) 例外ログ」の「HCSCサーバの例外ログ」を参照してください。
(6) イベント履歴ログ
スケジュール駆動受付では,イベントの履歴をイベント履歴ログとして出力します。イベント履歴ログによって,イベント発生時に実行されたタスクが完了したことや,タスクの実行が省略されたことを確認できます。
イベント履歴ログはスケジュール駆動受付ごとに出力されます。イベント履歴ログはデフォルトで出力されますが,出力しないよう設定することもできます。
なお,待機しているタスクがある状態でタスクの実行が抑止された場合は,待機しているタスクに関するイベント履歴ログは出力されません。
以降でスケジュール駆動受付のイベント履歴ログについて説明します。
(a) 出力形式
スケジュール駆動受付の出力形式を次に示します。
|
|
(b) 出力される内容
イベント履歴ログに出力される内容を次の表に示します。
|
項目 |
内容 |
|---|---|
|
番号 |
トレースレコードの出力通番が表示されます。 |
|
日付 |
トレースレコードの取得日付(yyyy/mm/dd形式)が出力されます。 |
|
時刻 |
トレースレコードの取得時刻(hh:mm:ss.SSS形式)が,ローカル時刻でミリ秒単位に出力されます。 |
|
製品ID |
製品を特定するための識別子として,スケジュール駆動受付を示す「RCPSCD」が出力されます。 |
|
pid |
プロセスを識別するためのIDが出力されます。 |
|
tid |
スレッドを識別するためのIDが出力されます。 |
|
ID |
表示されません。 |
|
受付ID |
受付IDが出力されます。 |
|
取得ポイント |
取得ポイント情報として次に示す情報が出力されます。
|
|
RootAP情報 |
ルートアプリケーション情報 |
|
付加情報 |
次に示す時刻が「yyyy/MM/dd HH:mm:ss.SSS」形式のローカル時刻で出力されます。出力される時刻は,取得ポイント情報によって異なります※5。
時刻を複数出力する場合は「,(コンマ)」で区切られます。 |
|
CRLF |
レコード終端符号が出力されます。 |
- 注※1
-
イベント発生時に出力されます。ただし,タスクの実行を抑止する条件に一致する場合は出力されません。
逐次処理のタスクの実行抑止はタスクの呼び出し機能で設定します。設定方法については,マニュアル「サービスプラットフォーム 解説」の「3.6.3 スケジュール駆動受付でのタスクの呼び出し機能」を参照してください。
- 注※2
-
次の両方の条件に当てはまる場合に出力されます。
-
スケジュール駆動受付内の処理が正常応答した
-
スケジュール駆動受付の呼び出し先から正常応答が返された
タイマ監視機能のタイムアウト発生時に条件が当てはまる場合を含みます。
-
- 注※3
-
次のどちらかの条件に当てはまる場合に出力されます。
-
ビジネスプロセスからエラー応答が返却された
-
スケジュール駆動受付内でエラーが発生した
タイマ監視機能のタイムアウト発生時に条件が当てはまる場合を含みます。
-
- 注※4
-
次のどれかの条件に当てはまる場合に出力されます。
-
イベント発生時に実行中のタスクがあり,かつ,新たにタスクを生成しない設定になっている場合
-
実行を待機できるタスクの最大数を超えて登録されようとした場合
-
タスクが実行できない場合
詳細については,マニュアル「サービスプラットフォーム 解説」の「3.6 ビジネスプロセスのスケジュール設定」を参照してください。
-
- 注※5
-
付加情報で出力される時刻を取得ポイント情報ごとに次の表に示します。
取得ポイント情報
付加情報の出力時刻
イベントの発生時刻
タスク処理の開始時刻
タスク処理の終了時刻
実行を待機しているタスクの数
OCCUR
〇
×
×
〇
(イベント発生時に実行を待機しているタスクの数を出力)
CALL
〇
〇
×
×
RET
〇
〇
〇
×
ERROR
〇
〇
〇
×
OMIT
〇
×
×
×
- (凡例)
-
〇:時刻が出力される
×:時刻が出力されない
(c) 取得ポイント
イベント履歴ログの取得ポイントを次の図に示します。
|
|
図中の番号の説明を次の表に示します。
|
図中の番号 |
トレース取得ポイント |
取得ポイント情報 |
|---|---|---|
|
1 |
イベント発生時 |
OCCUR |
|
スケジュール機能のイベント処理 |
OMIT |
|
|
2 |
タスク呼び出し機能のタスク呼び出し処理 |
OMIT |
|
3 |
タスク処理の開始 |
CALL |
|
4 |
タスク処理の終了 |
RET ERROR |
(d) 出力先
イベント履歴ログの出力先を次に示します。
<J2EEサーバのログ出力ディレクトリ>/csc/rcp/schedule/<受付ID>
<J2EEサーバのログ出力ディレクトリ>は,HCSCサーバが動作するJ2EEサーバ用オプション定義ファイル(usrconf.cfg)のejb.server.log.directoryキーで指定します。J2EEサーバ用オプション定義ファイルについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」を参照してください。
イベント履歴ログのログファイル名を次の表に示します。
|
ログファイルの出力モード |
ログファイル名 |
|---|---|
|
ラップアラウンドモードの場合 |
eventhistory_<面数>.log |
|
シフトモードの場合 |
eventhistory_.log |
イベント履歴ログのローテーションは,次のどちらかの条件に合致した際に実行されます。
-
指定したローテーション時刻に達したとき
ローテーション時刻の指定方法は,Application Serverの設定に従います。詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
-
指定したファイルサイズに達したとき
イベント履歴ログの設定は,次に示すファイルで変更できます。
|
設定内容 |
変更する項目 |
マニュアル参照先 |
|---|---|---|
|
トレースの出力有無 |
スケジュール駆動受付コンフィグファイルのurecp-scd.eventhistory.log.enabledプロパティ |
マニュアル「サービスプラットフォーム リファレンス」の「6.18.1 スケジュール駆動受付コンフィグファイル」 |
|
ファイルサイズ |
スケジュール駆動受付コンフィグファイルのurecp-scd.eventhistory.log.filesizeプロパティ |
|
|
ファイル面数 |
スケジュール駆動受付コンフィグファイルのurecp-scd.eventhistory.log.filenumプロパティ |
|
|
ファイル出力先 |
J2EEサーバ用オプション定義ファイル(usrconf.cfg)のejb.server.log.directory |
マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.2 usrconf.cfg(J2EEサーバ用オプション定義ファイル)」 |
(e) イベント履歴ログに関する注意事項
イベント履歴ログの初期化や停止に失敗した場合は,次のように動作します。
-
スケジュール駆動受付の起動時に,イベント履歴ログのロガー初期化に失敗した場合,メッセージログにワーニングメッセージ(KDEC84252-W)を出力して起動処理を継続します。デフォルトの出力先へログ出力できなかった場合は,該当するスケジュール駆動受付はイベント履歴ログを取得しないで運用を継続します。
-
スケジュール駆動受付の停止時に,イベント履歴ログのロガーの停止に失敗した場合,メッセージログにワーニングメッセージ(KDEC84253-W)を出力して停止処理を継続します。
(7) スケジュール駆動受付の障害情報
(a) スケジュール駆動受付で発生する障害の種類
スケジュール駆動受付で発生する障害の種類と,障害発生時の動作を次の表に示します。
|
障害の発生時期 |
障害発生時の動作 |
障害の主な原因 |
|---|---|---|
|
スケジュール駆動受付のデプロイ時 |
デプロイに失敗。 |
スケジュール駆動受付定義ファイルの設定値が誤っている。 |
|
スケジュール駆動受付の起動時 |
スケジュール駆動受付の起動に失敗。 メッセージKDEC84254-Eが出力され,スケジュールは実行されない。ただし,スケジュール駆動受付の起動処理は続行される。 |
次のどちらかの定義ファイルの設定値に誤りがあり,定義ファイルの解析に失敗。
|
|
スケジュールの実行時※ |
発生する時期によって次のように分類されます。
|
|
|
スケジュール駆動受付の停止時 |
(予期しない例外を除いて,発生する障害はない) |
|
|
スケジュール駆動受付のアンデプロイ時 |
(予期しない例外を除いて,発生する障害はない) |
|
- 注※
-
スケジュール駆動受付で発生した障害を基に,エラーが発生したイベントを特定する方法については,「(d) スケジュール駆動受付で発生した障害の調査方法」を参照してください。
なお,逐次処理のタスクは,エラーの連続回数が規定値に達すると実行抑止するようタスクの呼び出し機能で設定できます。設定方法については,マニュアル「サービスプラットフォーム 解説」の「3.6.3 スケジュール駆動受付でのタスクの呼び出し機能」を参照してください。
(b) ビジネスプロセスの処理時に発生する障害
ビジネスプロセスの処理時に発生する障害は,スケジュール駆動受付が例外を受け取った場合,メッセージログに次のエラーメッセージが出力されます。この場合,タスク処理が失敗したとみなされますが,スケジュールの実行は続行します。
-
スケジュール駆動受付がランタイム例外やエラー(システム例外)を受け取った場合
-
メッセージログにエラーメッセージKDEC84202-Eが出力されます。
-
上記以外の例外(業務例外)を受け取った場合
-
メッセージログにエラーメッセージKDEC84200-Eが出力されます。
実行を待機できるタスク数が最大数に達した場合,タスク情報はタスク情報管理機能に登録されなくなり,現在発生しているイベントに関するタスクは実行されなくなりますが,スケジュールの実行は継続します。なお,この現象がスケジュール駆動受付の起動後に初めて発生した場合は,メッセージログにメッセージKDEC84204-Wが出力されます。
(c) スケジュール駆動受付の処理時に発生する障害
スケジュール駆動受付の処理時に発生する障害の内容を次に示します。
-
作業フォルダの作成に失敗した場合
メッセージログにエラーメッセージが出力され,タスク処理が失敗したとみなされます。スケジュールの実行は続行されます。
作業フォルダの作成に失敗するケースと原因を次に示します。
作業フォルダの作成に失敗するケース
出力されるメッセージ
想定される原因
作業フォルダのルートフォルダが存在しない
KDEC84205-E
HCSCサーバ起動後に,ユーザが作業フォルダのルートフォルダを削除した
作業フォルダの作成に失敗
KDEC84206-E
ディスクフル
-
作業フォルダの削除に失敗した場合
メッセージログに警告メッセージKDEC84207-Wが出力されます。タスク処理とスケジュールの実行は続行します。
-
スケジュール機能が異常停止した場合
エラーメッセージKDEC84212-Eが出力されます。スケジュールは実行されません。
(d) スケジュール駆動受付で発生した障害の調査方法
スケジュール駆動受付で発生した障害から,エラーが発生したイベントの情報を調査できるケースを次に示します。
|
ケース |
出力されるメッセージ |
エラーが発生したイベントの情報を調査する方法 |
|---|---|---|
|
ビジネスプロセスからエラーが返却された場合 |
KDEC84200-E |
メッセージの「RootApInfo = 」の後ろに出力されているルートアプリケーション情報の値を確認し,イベント履歴ログで調査※します。 |
|
タスク処理の監視時間内にビジネスプロセスの処理が完了しなかった場合 |
KDEC84210-W |
|
|
タスクの実行が省略された場合 |
KDEC84208-WまたはKDEC84209-W |
メッセージに出力されている,イベント発生時刻の値を確認します。 |
- 注※
-
ルートアプリケーション情報の値を基に,イベント履歴ログの出力個所を調査します。出力個所では次の項目からイベントの情報を確認できます。
-
event occurrence time=(イベント発生時刻)
-
task processing start time=(タスクの実行開始時刻)
-
task processing end time=(タスクの実行終了時刻)
- 例1:メッセージKDEC84200-Eが出力された場合
-
イベント履歴ログに,ルートアプリケーション情報の値「xxx.xxx.xxx.xxx/19112/0x0000000000000781」が出力された個所を調査した結果を例として次に示します。
0000 2024/09/05 09:47:20.709 RCPSCD BF8DCCE9 736CEB0C rcp3 CALL xxx.xxx.xxx.xxx/19112/0x0000000000000781 event occurrence time = 2024/09/05 09:47:20.709,task processing start time = 2024/09/05 09:47:20.720 0001 2024/09/05 09:47:20.745 RCPSCD BF8DCCE9 736CEB0C rcp3 ERROR xxx.xxx.xxx.xxx/19112/0x0000000000000781 event occurrence time = 2024/09/05 09:47:20.709,task processing start time = 2024/09/05 09:47:20.720,task processing end time = 2024/09/05 09:47:20.745 :
この例では,イベントの発生時刻は「2024/09/05 09:47:20.709」であることを確認できます。
- 例2:メッセージKDEC84210-Wが出力された場合
-
イベント履歴ログに,ルートアプリケーション情報の値「xxx.xxx.xxx.xxx/19112/0x0000000000000b7b」が出力された個所を調査した結果を例として次に示します。
0000 2024/09/06 10:23:42.780 RCPSCD BF8DCCE9 56A78753 rcp3 CALL xxx.xxx.xxx.xxx/19112/0x0000000000000b7b event occurrence time = 2024/09/06 10:23:42.780,task processing start time = 2024/09/06 10:23:42.790 0001 2024/09/06 10:24:12.842 RCPSCD BF8DCCE9 56A78753 rcp3 RET xxx.xxx.xxx.xxx/19112/0x0000000000000b7b event occurrence time = 2024/09/06 10:23:42.780,task processing start time = 2024/09/06 10:23:42.790,task processing end time = 2024/09/06 10:24:12.842 :
この例では,タスクの実行開始時刻は「2024/09/06 10:23:42.790」,実行終了時刻は「2024/09/06 10:24:12.842」であることを確認できます。
ただし,イベント履歴ログだけではビジネスプロセス内のどの処理で時間が掛かっているか確認できないため,性能解析トレースを確認してシステムの性能解析を実行する必要があります。性能解析トレースの調査時にも,メッセージ「KDEC84210-W」に出力されたルートアプリケーション情報の値を使用します。
性能解析トレースでシステムの性能解析を実行する方法については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「7. 性能解析トレースを使用した性能解析」を参照してください。
-