uCosminexus Application Runtime for Apache Tomcat ユーザーズガイド

3021-3-K01-30

前書き

著作権

All Rights Reserved. Copyright (C) 2022, 2025, Hitachi, Ltd.

輸出時の注意

本製品を輸出される場合には、外国為替および外国貿易法の規制ならびに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

Oracle(R)、Java、MySQL、およびNetSuiteは、Oracleおよび/またはその関連会社の登録商標です。その他の名称は、それぞれの所有者の商標である場合があります。

その他記載の会社名、製品名などは、それぞれの会社の商標もしくは登録商標です。

発行

2025年11月 3021-3-K01-30

変更内容

変更内容(3021-3-K01-30) uCosminexus Application Runtime for Apache Tomcat 01-20，uCosminexus Application Runtime with Java for Apache Tomcat 01-20

追加・変更内容

変更個所

統計情報出力機能をサポートしました。

1.2，11.，12.3，12.3.1(1)，12.3.2(1)(a)，12.3.2(1)(b)，12.9.6，13.2.4(4)，13.2.4(6)，13.5，14.1，14.4.3

本製品に関する注意事項を追加しました。

1.3.3

プロセスモニタのメモリ使用量を変更しました。

2.1.3，5.1.3

JDK/Java SEのバージョンを変更しました。

3.1，3.2，4.2.1，6.1，6.3，6.4，7.7.2，7.7.3，13.3.2，16.1

提供媒体の表現を「CD-ROM」「CD」から，「メディア」に変更しました。

3.2，4.7，6.2，付録A

Tomcatのバージョンを変更しました。

3.3

修正パッチの運用手順を変更しました。

4.7，7.7.1，7.7.2

システムを起動するコマンドの指定例を追加しました。

7.1

スナップショットログ収集時ユーザコマンド実行機能をサポートしました。

12.1，12.9.5，13.2.4(4)

スナップショットログのアーカイブファイルおよびアーカイブファイル中のパスの規則について記述を追加しました。

12.2.2

コマンド実行時の出力先と説明の記述を追加しました。

12.3.2(1)(d)

Tomcat プロセスモニタが稼働していないときのスナップショットの取得方法について，出力ファイルに関する記述を追加しました。

12.6.2(1)

Context 要素に対する記述を追加しました。

12.9.7

ログファイルに書き込むときの文字コードについての記述を追加しました。

14.2，14.4.1(2)

次のメッセージを追加しました。

KDLR00205-E，KDLR10037-I，KDLR10038-I，KDLR10039-E，KDLR10040-E，KDLR10041-W，KDLR10042-W，KDLR10043-W，KDLR10044-E，KDLR10045-E，KDLR10047-W，KDLR10050-E，KDLR10051-E，KDLR40014-I，KDLR40067-E，KDLR50000-I，KDLR50001-I，KDLR50002-E，KDLR50003-I，KDLR50004-I，KDLR50005-E，KDLR50007-E，KDLR50008-E，KDLR50009-E

15.2

次のメッセージの内容を変更しました。

KDLR20228-E

15.2

スナップショットログ収集コマンドに対する記述を追加しました。

17.2.1

Linuxに対応する記述を追加しました。

Amazon Linux 2

Amazon Linux 2023

Debian GNU/Linux 11.0

Ubuntu 22.04

付録D.2

単なる誤字・脱字などはお断りなく訂正しました。

はじめに

このマニュアルは，次の製品について説明したものです。

uCosminexus Application Runtime for Apache Tomcat

uCosminexus Application Runtime with Java for Apache Tomcat

以降，この2つの製品を総称して「本製品」と表記します。各製品の独自の説明については，製品名を表記します。

マニュアル中では，本製品の機能，設計，構築および運用方法について説明しています。また，定義ファイルやメッセージなどのリファレンス情報についても記載しています。

マニュアルを読むことで，ユーザがTomcatに本製品を組み込み，適切にシステムを運用できるようになることを目的としています。

対象製品

●適用OS：Amazon Linux 2，Amazon Linux 2023，Debian GNU/Linux 11.0，Red Hat Enterprise Linux 8（AMD/Intel 64），Red Hat Enterprise Linux 9（AMD/Intel 64），Ubuntu 22.04

P-9W43-9D11 uCosminexus Application Runtime with Java for Apache Tomcat 01-20

P-9W43-9N11 uCosminexus Application Runtime for Apache Tomcat 01-20

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

対象読者

対象読者は，次のとおりです。

本製品の概要を知りたい方

本製品を導入してシステムを設計・構築・運用する方

また，次の知識をお持ちの方を前提としています。

Linuxに関する知識

Tomcatに関する知識

クラウドまたはコンテナに関する知識

Java Development Kitに関する知識

Java EEまたはJakarta EEに関する知識

Webアプリケーションに関する知識

読書手順

本製品を使用する環境によって，読む必要のある個所が異なります。対応を次の表に示します。

本製品を使用する環境

読む必要のある個所

オンプレミス環境

仮想マシン環境

第1編　概要

第2編　オンプレミス環境・仮想マシン環境での設計・構築・運用

第4編　機能

第5編　リファレンス

付録

コンテナ仮想化環境

第1編　概要

第3編　コンテナ仮想化環境での設計・構築・運用

第4編　機能

第5編　リファレンス

付録

このマニュアルで使用する記号

このマニュアルで使用している記号を，次のように定義します。

記号

意　味

　｜

横に並べられた複数の項目に対する項目間の区切りを示し，「または」を意味します。

（例）　A｜B

　AまたはBを指定することを示します。

{ 　 }

この記号で囲まれている複数の項目のうちから1つを選択することを示します。項目が横に並べられ，記号｜で区切られている場合は，そのうちの1つを選択します。

（例）　｛A｜B｜C｝

　A，BまたはCのどれかを指定することを示します。

［　］

この記号で囲まれている項目は省略してもよいことを示します。複数の項目が横に並べて記述されている場合には，すべてを省略するか，記号｛ ｝と同じくどれか1つを選択します。

（例1）　［A］

　「何も指定しない」か「Aを指定する」ことを示します。

（例2）　［B｜C］

　「何も指定しない」か「BまたはCを指定する」ことを示します。

…

記述が省略されていることを示します。

（例）　ABC…

　ABCの後ろに記述があり，その記述が省略されていることを示します。

<　>

この記号で囲まれている項目は，該当する要素やファイルなどを指定したり，該当する要素が表示されたりすることを示します。

（例1）　<プロパティ>

　プロパティを記述します。またはプロパティが表示されます。

（例2）　<ファイル名>

　ファイル名を指定します。

Tomcatのインストール先パスおよび環境変数CATALINA_BASEが指すパスの表記

Tomcatのインストール先パスを${CATALINA_HOME}，環境変数CATALINA_BASEが指すパスを${CATALINA_BASE}と表記します。環境変数CATALINA_BASEを使用していない場合は，${CATALINA_BASE}を${CATALINA_HOME}に読み替えてください。

第1編　概要

1　概要

この章では，本製品の目的，概要，前提条件，およびユースケースについて説明します。

1.1　本製品の目的

本製品は，Apache Tomcat（以降，Tomcatと呼びます）※に対し，主に次のアドイン機能を付加します。

本番運用中の障害を早期に検知・通知する機能

スムーズに問題解決するための保守情報の収集機能

uCosminexus Application ServerやHiRDBなどの日立ミドルウェアと保守情報を連携するための情報付加機能

本製品を適用することで，問題解決に必要な保守情報がTomcatのプロセスダウンと同時に消失することを回避できます。また，Tomcatが動作しているマシンに直接ログインできなくても，遠隔で保守情報を収集できます。そのため，特に次の環境で利用するのに適しています。

オートスケーリング機能によって仮想マシンの自動増減が発生するクラウド環境

オーケストレーションツールによってコンテナの起動・停止が頻発するコンテナ仮想化環境

本製品のサポートサービスでは，ユーザにこれらのアドイン機能をご利用いただき，そこで得られた情報を活用して，Tomcatに対する高度なサポートサービスを提供します。

注※

Tomcatは，Webコンテナ機能単体のアプリケーションサーバとして，デファクトスタンダードとなっています。

1.2　本製品の概要

本製品は，次の2つのコンポーネントで構成されています。

Tomcatプロセスモニタ

Tomcatプロセスモニタは，Tomcatの起動コマンドとTomcatサーバプロセスの間に割り込み，Tomcatサーバプロセスの稼働状態監視や保守情報の収集を実行します。

Tomcatサーバプロセス内のフィルタ

Tomcatサーバプロセス内のフィルタは，TomcatのValveやListenerなどの実装として提供されます。各フィルタは，Tomcatサーバプロセス内の各種処理やリクエスト処理の間に割り込み，トレース情報や稼働監視情報を出力します。

これら2つのコンポーネントが図1-1のように連携することで，本製品は，Tomcat単体では実現が困難な機能を提供します。これによって，Tomcatの保守性を向上できます。

図1‒1　本製品の機能構成全体図

本製品が提供する機能について説明します。各説明の番号は図中の番号と対応しています。

Tomcatプロセスモニタ機能は，Tomcatの起動処理を代行し，Tomcatの起動と同時に稼働監視や運用管理用REST APIの受付を開始します。

Tomcatが提供する設定変更の仕組みを利用して，Tomcatを起動するタイミングでTomcatプロセスモニタを起動します。TomcatプロセスモニタはTomcatの起動コマンドの延長で自動起動します。

詳細は，「8.　Tomcatプロセスモニタ機能」を参照してください。

トレース機能は，リクエスト処理の内部状態を把握できる独自のトレース情報を出力します。

リクエストごとに一意のIDを採番し，リクエスト処理がどのような状態でどこまで到達していたかを把握できるトレース情報を常時出力します。uCosminexus Application Serverの「性能解析トレース機能」に相当する機能です。

詳細は，「9.　トレース機能」を参照してください。

統計情報出力機能は，アプリケーション動作に関する統計情報を出力します。

メモリやCPUなどのリソースの利用状況，アプリケーションの負荷，リクエスト数などの統計情報を取得して，定期的に出力します。uCosminexus Application Serverの「稼働情報収集機能」に相当する機能です。

詳細は，「11.　統計情報出力機能」を参照してください。

稼働監視機能は，プロセス監視やヘルスチェックを代行し，異常検知時には即座に指定したコマンド呼び出しや保守情報の収集をします。

クラウドのマネージドサービスやコンテナオーケストレーションツールが提供する既存のヘルスチェック機能に比べて，よりTomcatに特化した高度なプロセス監視・ヘルスチェックを提供します。異常発生からその検知と閉塞までのタイムラグ短縮に寄与します。

詳細は，「10.　稼働監視機能」を参照してください。

ヒント

一般的なクラウドサービスも，オートスケーリング機能の自動スケールインを実現するために，ヘルスチェック機能を提供しています。ただし，それらの多くは，一定時間おきに投入するHTTPリクエストの応答によって正常/異常を判別しています。そのため，プロセスダウンのように，即座に業務が継続できなくなるような障害が発生しても，次のHTTPリクエストが投入されるまでの一定時間はプロセスダウンしているサーバを使い続けます。

一方，本製品の稼働監視機能では，異常発生からその検知と閉塞までのタイムラグが大幅に短縮できます。HTTPリクエストの応答だけでなく，プロセスダウンの即時検知や，高頻度なハートビートによるハングアップも検知するためです。また，本製品にはユーザが指定した任意のシェルスクリプトを呼び出す機能も備わっています。そのため，異常検知時には保守情報を自動収集するだけでなく，クラウドサービスに対して即座に閉塞を指示するコマンドを発行できます。

スナップショットログ収集機能は，異常検知直後に自動的に必要な保守資料を収集し，指定したディレクトリにアーカイブを出力します。

異常が検知されたときだけ，その時点で出力されていた保守資料を自動的に収集・アーカイブし，指定した永続化領域に出力する機能を提供します。

詳細は，「12.　スナップショットログ収集機能」を参照してください。

ヒント

次の環境では，障害発生時の原因解析に必要なログファイルを別のストレージ領域※に永続化しておく必要があります。

オートスケーリング機能によって仮想マシンの自動増減が発生するクラウド環境

オーケストレーションツールによってコンテナの起動・停止が頻発するコンテナ仮想化環境

注※

ログファイルを格納するストレージ領域は，サーバがスケールインされてもログファイルが消失しない領域にする必要があります。

しかし，起動から停止まで正常稼働していた場合を含め，すべてのログファイルを永続化すると，ストレージ領域の容量や書き込み転送量が増大し，従量課金額がかさむリスクが生じます。また，一定時間経過後のログファイルを削除するなど，単調増加を防ぐ仕組みをユーザ側で構築する必要があります。

本製品のスナップショットログ収集機能では，障害発生時にサポートサービスに提供する保守資料（ログファイル）が，障害発生時にだけ自動で出力されます。そして，それを1つのアーカイブファイルとして永続化できます。保守資料がアーカイブされているため，個々の保守資料を永続化するための作業が削減できます。また，永続化先のストレージ容量と書き込み転送量を削減できます。

1.3　本製品の前提条件

この節では，次について説明します。

インストールが必要なOS，OSSおよびJava VM

Tomcatサーバプロセスの前提

その他の注意事項

1.3.1　インストールが必要なOS，OSSおよびJava VM

本製品を使用するためには，次をインストールする必要があります。

リリースノートに記載されたOS

Tomcat

JavaVM

uCosminexus Application Runtime with Java for Apache Tomcatの場合は製品をインストールすると，JavaVMもインストールされます。

詳細は，リリースノートを参照してください。

1.3.2　Tomcatサーバプロセスの前提

本製品を組み込んだTomcatを使用する場合の注意事項を示します。

Tomcatサーバプロセスに対して，Javaのセキュリティマネージャは有効化できません。

Tomcatのドキュメントに記載されているTomcat起動方法のうち一部は使用できません。詳細は「4.1　システムを起動する」を参照してください。

1.3.3　その他の注意事項

本製品全体に関わる注意事項を次に示します。

ファイルパスに使用できる文字に関する注意事項

本製品で使用するファイルパス・ディレクトリパスに，「"」，「$」，「:」，および「`」を含めることはできません。含めると，正しく動作しないおそれがあります。

ファイルパスに関する前提

本製品で設定値として指定するファイルパス中に「../」が含まれる場合，次の前提条件を満たす必要があります。

ファイルパス中のディレクトリは，本製品起動前に存在している

存在しない場合，ファイルの出力やファイルの読み込みに失敗するおそれがあります。

本製品で設定値として指定するファイルパス中にシンボリックリンクが含まれる場合，次の前提条件を満たす必要があります。

本製品起動後に，シンボリックリンクが指すパスの変更をしない

変更した場合，正しく動作しないおそれがあります。

本製品のファイル出力先のディレクトリは，本製品起動後に削除できません。ファイルの出力に失敗するおそれがあります。

JDKのインストールパスに，半角空白（0x20）を含めないでください。正しく動作しないおそれがあります。

複数のコンテナ・マシン間によるディレクトリの共有

複数のコンテナや，複数のマシンで本製品を起動する場合，ファイルの出力先となるディレクトリが一意である必要があります。複数のコンテナ・マシン間でディレクトリを共有する場合，次の設定に対しては，同一の共有ディレクトリを指定しないでください。

common.base（config.properties（本製品の設定ファイル）のプロパティ）

common.baseについては「(1)　本製品全体に関するプロパティ」を参照してください。

デフォルトでcommon.baseを参照する製品のプロパティ（デフォルトから変更する場合だけ）

Tomcatサーバプロセスの一時領域ディレクトリ

デフォルトは${CATALINA_BASE}/tempです。環境変数CATALINA_TMPDIRで変更できます。

JAVACOREDIR環境変数（利用する場合だけ）

システム時刻に関する前提

本製品起動後に，オペレーティングシステムの日時を変更しないでください。

変更した場合，正しく動作しないおそれがあります。

OSのシステムロケールの文字コードに関する前提

Linuxのシステムロケールの文字コードは，UTF-8に設定してください。UTF-8以外を設定した場合，正しく動作しないおそれがあります。

1.4　本製品のユースケース

本製品によって機能を拡張されたTomcat環境は，OS上に直接実行環境を構築するオンプレミス環境や仮想マシン環境だけでなく，次のような環境でも容易に運用できます。

クラウドのマネージドサービスによってひな型の仮想マシンイメージからオートスケーリングさせる環境

コンテナ仮想化技術を使い，オーケストレーションツールによってDockerイメージの起動・停止をする環境

環境に応じたユースケースを次に示します。

1.4.1　オンプレミス環境またはオンプレミス相当のクラウド上仮想マシン環境の場合

本製品を組み込んだTomcat環境をオンプレミス環境で使用する場合，負荷分散や業務継続性を考慮すると，次の図のようなシステム構成が想定されます。

図1‒2　オンプレミス環境の想定システム構成

オンプレミス環境，またはオンプレミス環境相当のクラウド上仮想マシン環境で本製品を使用した効果を次に示します。各説明の番号は図中の番号と対応しています。

本製品が異常を検知した場合，ユーザスクリプトを自動実行させることができます。

ロードバランサの閉塞操作をするようユーザスクリプトに定義することで，異常発生からリクエスト閉塞までの時間を極小化できます。

本製品が異常を検知した場合，サポートサービスへの問い合わせに必要な保守資料（ログファイル，定義ファイル，環境情報など）が自動的に収集されます。

収集された保守資料は，スナップショットログという1つのアーカイブファイルとして出力されます。

Tomcatに対するHTTPリクエストには，本製品によってリクエストごとに一意のIDが採番され，トレースログに出力されます。

採番されたIDは，JAX-RSクライアントやHiRDBのJDBCドライバに渡されるため，uCosminexus Application ServerやHiRDBの性能解析トレース機能と連携できます。

オンプレミス環境，またはオンプレミス環境相当のクラウド上仮想マシン環境で本製品を使用する場合の設計・構築・運用については，このマニュアルの第2編を参照してください。

1.4.2　オートスケーリング構成のクラウド上仮想マシン環境の場合

オートスケーリング構成のクラウド環境（AWSやAzureなど）で，本製品を組み込んだTomcat環境を使用する場合，負荷分散や業務継続性を考慮すると，次の図のようなシステム構成が想定されます。

図1‒3　クラウド環境（AWS）の想定システム構成

オートスケーリング構成のクラウド上仮想マシン環境で本製品を使用した効果を次に示します。各説明の番号は図中の番号と対応しています。

本製品が異常を検知した場合，ユーザスクリプトを自動実行させることができます。

ロードバランサの閉塞操作やオートスケーリングのスケールイン操作をユーザスクリプトに実装することで，異常発生からリクエスト閉塞までの時間を極小化することや，閉塞後のスケール回復ができます。

本製品が異常を検知した場合，サポートサービスへの問い合わせに必要な保守資料（ログファイル，定義ファイル，環境情報など）が自動的に収集されます。

収集された保守資料は，スナップショットログという1つのアーカイブファイルとして出力されます。スナップショットログの出力先は，インスタンスがスケールインされても揮発しない外部ストレージに格納してください。

Tomcatに対するHTTPリクエストには，本製品によってリクエストごとに一意のIDが採番され，トレースログに出力されます。

採番されたIDは，JAX-RSクライアントやHiRDBのJDBCドライバに渡されるため，uCosminexus Application ServerやHiRDBの性能解析トレース機能と連携できます。

オートスケーリング構成のクラウド上仮想マシン環境で本製品を使用する場合の設計・構築・運用については，このマニュアルの第2編を参照してください。

1.4.3　コンテナ仮想化環境の場合

コンテナ仮想化環境のクラウド環境（AWSやAzureなど）で，本製品を組み込んだTomcat環境を使用する場合，負荷分散や業務継続性を考慮すると，次の図のようなシステム構成が想定されます。

図1‒4　コンテナ仮想化環境（Amazon EKS＋AWS Fargate）の想定システム構成

コンテナ仮想化環境で本製品を使用した効果を次に示します。各説明の番号は図中の番号と対応しています。

本製品が異常を検知した場合，ユーザスクリプトを自動実行させることができます。

オーケストレーションツールに異常を知らせるProbe（Readiness Probe）をユーザスクリプトに実装することで，異常発生からリクエスト閉塞までの時間を極小化することや，閉塞後のスケール回復ができます。

本製品が異常を検知した場合，サポートサービスへの問い合わせに必要な保守資料（ログファイル，定義ファイル，環境情報など）が自動的に収集されます。

収集された保守資料は，スナップショットログという1つのアーカイブファイルとして出力されます。スナップショットログの出力先は，インスタンスがスケールインされても揮発しないPersistent Volumeに格納してください。

Tomcatに対するHTTPリクエストには，本製品によってリクエストごとに一意のIDが採番され，トレースログに出力されます。

採番されたIDは，JAX-RSクライアントやHiRDBのJDBCドライバに渡されるため，uCosminexus Application ServerやHiRDBの性能解析トレース機能と連携できます。

コンテナ仮想化環境で本製品を使用する場合の設計・構築・運用については，このマニュアルの第3編を参照してください。

第2編　オンプレミス環境・仮想マシン環境での設計・構築・運用

2　設計

この章では，オンプレミス環境や仮想マシン環境で本製品を使用する場合に考慮する必要がある環境設計ポイントについて説明します。

2.1　オンプレミス環境および仮想マシン環境共通の設計ポイント

ここでは，オンプレミス環境および仮想マシン環境共通の設計ポイントについて説明します。設計のポイントは，次のとおりです。

本製品による性能影響を確認する

TomcatプロセスモニタのHTTP機能に対するセキュリティを確認する

本製品によるリソース消費量を確認する

それぞれについて説明します。

2.1.1　本製品による性能影響を確認する

本製品では保守性を向上させるために，Tomcatサーバプロセスに対するトレース情報を拡充しています。また，Tomcatサーバプロセスに対する稼働監視を強化しています。

そのため，Tomcatの起動および停止性能や，アプリケーションに対するリクエスト処理性能に若干の影響を及ぼします。

本製品を使用する場合は，次に示す性能影響があります。これらの性能影響を考慮して性能設計をしてください。

(1)　リクエスト処理性能

本製品のトレース機能では，リクエスト処理とは別スレッドでログ出力をします。これによって，リクエスト処理性能への影響を極小化しています。ただし，トレース情報として出力する値を取得するために，リクエスト処理スレッド上で実施する処理があるので，若干の性能影響が生じます。アプリケーションの内部保留時間に関係なく，リクエストごとに処理時間が一定であるため，内部保留時間が長い場合は無視できる範囲の影響です。ただし，内部保留時間が短い場合は無視できない性能影響となるおそれがあります。本製品を適用後の環境で性能評価をすることを強く推奨します。

(2)　起動性能

Tomcatサーバプロセスを起動させる前にTomcatプロセスモニタの起動処理が割り込むことになります。そのため，アプリケーションの規模や個数に関係なく，起動に掛かる時間が数秒増加します。

この起動時間の増分は，スケールアウトを開始してからアプリケーションが稼働状態になるまでの時間に影響します。

(3)　停止性能

Tomcatサーバプロセスを停止させる前に，スナップショットログ収集機能でTomcat稼働中情報が必ず取得されます。停止処理に失敗する可能性を考慮し，結果的に正常停止であっても取得されます。そのため，Tomcat稼働中情報の取得処理によって停止時間が増加します。Tomcat稼働中情報の取得については，「12.　スナップショットログ収集機能」を参照してください。

なお，異常停止だけでなく，正常停止でもスナップショットログを収集する設定にしている場合は，スナップショットログ収集処理時間の分，さらに停止時間が増加します。スナップショットログ収集に必要な処理時間は，収集対象のデータ量に比例して増加します。

この停止時間の増分は，システム全体の稼働時間には影響しませんが，リクエストを閉塞させてからスケールインが完了するまでの時間には影響します。

2.1.2　TomcatプロセスモニタのHTTP機能に対するセキュリティを確認する

本製品では，スナップショットログの手動取得およびTomcatサーバプロセスとのプロセス間通信のために，HTTPリクエストを受け付けるHTTP機能が使用されます。システムの運用自動化の妨げになることがあるため，このHTTP機能にはユーザ認証機能や通信暗号化機能を設けていません。

デフォルトの設定では，HTTP機能の受付ポートに接続できるクライアントはループバックアドレスからだけに設定されているため，マシン外部からの接続はできません。

スナップショットログの手動取得などのユーザ公開REST APIをマシン外部から実行する場合は，HTTP機能の受付ポートへ外部から接続できるように設定を変更できます。その際は必ずファイアウォールやNAT／NAPTを適切に設定して，意図しない外部のユーザが不正にHTTP機能の受付ポートに接続できないように通信をブロックしてください。

2.1.3　本製品によるリソース消費量を確認する

本製品を適用したTomcatサーバプロセスでは，リクエスト処理スレッドとは別のスレッドで稼働監視やトレースログ出力を行うため，本製品を適用していない状態と比べてスレッド数が「2スレッド」分増加します。

Tomcatサーバプロセスが生成する最大スレッド数については，Tomcatのドキュメントを参照して算出してください。本製品を使用する場合は，その最大スレッド数に対して「2」を加算して見積もってください。

また，本製品では，Tomcatサーバプロセスと同時にTomcatプロセスモニタのプロセスが起動されるため，OSの仮想メモリの消費量が約3,800MB分増加します。仮想メモリの消費量を見積もる際には，Tomcatサーバプロセスが消費する仮想メモリに対して，3,800MBを加算して見積もってください。

Tomcatサーバプロセスが消費する仮想メモリについては，使用するJavaVMのドキュメントを参照して算出してください。日立JavaVMを使用している場合は，マニュアルuCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンスを参照してください。

2.2　オートスケーリング構成の仮想マシン特有の設計ポイント

ここでは，オートスケーリング構成の仮想マシン特有の設計ポイントについて説明します。設計のポイントは，次のとおりです。

スナップショットログの出力先を不揮発なストレージに設定する

オートスケーリンググループからの閉塞を高速化する

スケールイン開始前にスナップショットログ出力処理時間分の猶予を設ける

それぞれについて説明します。

2.2.1　スナップショットログの出力先を不揮発なストレージに設定する

Tomcatをオートスケーリング構成のマシン上で使用している場合，マシン内だけに保存していたログファイルおよび環境情報はスケールインとともに削除されます。障害発生を契機にスケールインされると，その障害要因の特定が困難になります。

本製品では，稼働監視機能とスナップショットログ収集機能によって，障害発生が検知されるとすぐに障害解析に必要なログファイルや環境情報が自動収集されます。これらを基に，スナップショットログが生成されます。そのため，このスナップショットログの出力先は，マシン外の不揮発ストレージにマウントされたディレクトリに設定してください。これによって，スケールイン後もスナップショットログを参照できます。詳細は，「4.4　オートスケーリング環境で運用する」を参照してください。

2.2.2　オートスケーリンググループからの閉塞を高速化する

Tomcatをオートスケーリング構成のマシン上で使用している場合，本製品の稼働監視機能によって障害が検知された瞬間に，オートスケーリンググループからの切り離し（閉塞）が実施されます。ロードバランサのヘルスチェック機能を使用する場合に比べて，障害発生から閉塞までの不稼働時間を短縮できます。

稼働監視機能のユーザコマンドによる情報通知を使用することで，障害の検知を契機に任意のスクリプトを実行できます。そのスクリプト内で，クラウドベンダが提供するコマンド，APIなどを用いて自マシンをオートスケーリンググループから切り離す処理を実装してください。

オートスケーリンググループから切り離す手段については，各クラウドベンダが提供するドキュメントを参照してください。また，次の点にも注意してください。

実行するコマンドがインストール済みか

コマンドおよびAPIの実行に必要な権限があるか

AWSでAmazon EC2 Auto Scalingを使用している場合のユーザスクリプト実装例を次に示します。

#!/bin/bash

# Get InstanceID
TOKEN=$(curl -X PUT http://169.254.169.254/latest/api/token ¥
             -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id/ ¥
                  -H "X-aws-ec2-metadata-token: ${TOKEN}")
echo InstanceID=${INSTANCEID}

# Get AutoScalingGroupName
ASGNAME=$(aws autoscaling describe-auto-scaling-instances --instance-ids ${INSTANCEID} | ¥
          jq -r '.AutoScalingInstances[].AutoScalingGroupName')
echo AutoScalingGroupName=${ASGNAME}

# Enter Standby state
aws autoscaling enter-standby --instance-ids ${INSTANCEID} ¥
    --auto-scaling-group-name ${ASGNAME} --no-should-decrement-desired-capacity

注

このスクリプトは実装例であり，これをそのまま使用した場合の動作は保証しません。必ずクラウドベンダが提供する最新のドキュメントを参照してユーザ側で適切なスクリプトを記述してください。また，次の点にも注意してください。

実行するコマンドがインストール済みか

コマンドの実行に必要な権限があるか

2.2.3　スケールイン開始前にスナップショットログ出力処理時間分の猶予を設ける

Tomcatをオートスケーリング構成のマシン上で使用している場合，本製品がスナップショットログの収集処理をしている間は，できる限りマシンがスケールインされないようにする必要があります。

ユーザスクリプトによる閉塞をすることで自動的にスケールインされないように構築している場合

このケースに該当する場合は，Tomcatの停止後にスケールインを実行するスクリプトが実行されるように設定してください。これによって，スナップショットログ出力処理が終わるまでスケールインされないようにできます。

systemdを用いてOS起動と同時にTomcatをサービス起動させ，Tomcatの停止後にスケールインを実行する場合のユニットファイル定義例を次に示します。

[Unit]
Description=Apache Tomcat
After=network.target

[Service]
Type=forking
ExecStart=<Tomcatインストール先>/bin/startup.sh
ExecStop=<Tomcatインストール先>/bin/shutdown.sh
ExecStopPost=<スケールインを実行するスクリプトのパス>
TimeoutStopSec=700
SuccessExitStatus=143
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

AWSでAmazon EC2 Auto Scalingを使用している場合のスケールインを実行するスクリプトの実装例を次に示します。

#!/bin/bash

# Get InstanceID
TOKEN=$(curl -X PUT http://169.254.169.254/latest/api/token ¥
             -H "X-aws-ec2-metadata-token-ttl-seconds: 21600")
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id/ ¥
                  -H "X-aws-ec2-metadata-token: ${TOKEN}")
echo InstanceID=${INSTANCEID}

# Polling Instance status
MAX_POLLING_COUNT=10
RETRY_INTERVAL=60
for ((i=1;i<=${MAX_POLLING_COUNT};i++)); do
    INSTSTATUS=$(aws autoscaling describe-auto-scaling-instances --instance-ids ${INSTANCEID} ¥
        | jq -r '.AutoScalingInstances[].LifecycleState')
    echo InstanceStatus=${INSTSTATUS}
    if [ "${INSTSTATUS}" == "Standby" ]; then
        # Terminate instance
        aws autoscaling terminate-instance-in-auto-scaling-group --instance-id ${INSTANCEID} ¥
            --no-should-decrement-desired-capacity
        echo "Instance will be terminated."
        exit 0
    fi
    if [ ${i} -eq ${MAX_POLLING_COUNT} ]; then
        echo "Max polling count reached (count = ${i})."
        exit 1
    fi
    echo "InstanceStatus is not STANDBY. Retry after ${RETRY_INTERVAL} seconds (count = ${i})."
    sleep ${RETRY_INTERVAL}s
done

注

このスクリプトは実装例であり，これをそのまま使用した場合の動作は保証しません。必ずクラウドベンダが提供する最新のドキュメントを参照してユーザ側で適切なスクリプトを記述してください。また，次の点にも注意してください。

実行するコマンドがインストール済みか

コマンドの実行に必要な権限があるか

オートスケーリンググループからの切り離しと同時にスケールインに遷移するように設定している場合（マネージドサービス側で管理）

スナップショットログの出力に掛かる時間を確保できる，十分な猶予時間を設定してください。猶予時間とは，障害を検知されたマシンがオートスケーリンググループから切り離されてから，OSのシャットダウンが開始されるまでの時間を指します。

3　構築

この章では，オンプレミス環境または仮想マシン環境の場合の本製品の構築手順について説明します。

3.1　セットアップの前提条件を確認する

ここで説明するセットアップ手順は，次に示す条件を満たしていることを前提としています。

Tomcatをインストールしている

環境変数CATALINA_HOMEおよび環境変数CATALINA_BASEの値にシンボリックリンクが含まれる場合，シンボリックリンクの後に「..」が含まれていない

Tomcatを起動していない

バージョンに関係なく，本製品をインストールしていない

sudoコマンドを実行して管理者権限でのコマンド実行ができる

ここではsudoコマンドを実行して管理者権限で操作することを前提に説明しています。管理者権限でログインして操作する場合は，sudoコマンドは不要です。

uCosminexus Application Runtime for Apache Tomcatを使用する場合は，さらに次の前提条件を満たしていることも確認してください。

Java SE 17以降に準拠するJava Runtime Environment（JRE）をインストールしている

上記のJREのインストールディレクトリの絶対パスを，環境変数JAVA_HOMEまたはJRE_HOMEに設定している（「${JAVA_HOME}/bin/java」または「${JRE_HOME}/bin/java」が存在する）

この章では，環境構築の自動化を想定して，GUIなどによるオペレータの操作が不要なインストール方法について説明します。

GUIを使ったオペレータの操作でインストールしたい場合は，「付録A　GUIを使用したインストール」を参照してください。

本製品のアーカイブファイルを用いてインストールすることもできます。アーカイブファイルを用いたインストールを実施することによるメリットおよび手順については，「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」を参照してください。

3.2　インストールする

本製品をインストールする操作手順を次に示します。

操作手順

インストールメディアのデータを，本製品をインストールするマシンにコピーする。

本製品のインストールメディアをマウントし，インストールメディアに格納されているX64LINディレクトリを，インストール先のマシン上の任意のディレクトリにX64LINディレクトリごとコピーしてください。

これ以降，X64LINディレクトリのコピー先を<インストーラのパス>と表記します。

setupコマンドに実行権限を付ける。

「<インストーラのパス>/X64LIN/setup」という実行ファイルに対して，管理者権限で実行権限を付与します。

実行例

$ sudo chmod +x <インストーラのパス>/X64LIN/setup

PPインストーラのsetupコマンドで，セットアッププログラムを実行する。

次の引数でsetupコマンドを実行します。

$ sudo <インストーラのパス>/X64LIN/setup -f -k <形名> <インストーラのパス>

<形名>はインストールする製品エディションによって異なります。

形名がP-9W43-9N11の場合は，次のとおりコマンドを実行してください。

$ sudo <インストーラのパス>/X64LIN/setup -f -k P-9W43-9N11 <インストーラのパス>

これでインストール作業は完了です。本製品は次のパスにインストールされます。

/opt/hitachi/ucart

uCosminexus Application Runtime with Java for Apache Tomcatをインストールした場合は，本製品に加えて日立JavaVMがインストールされます。インストールされるパスを次に示します。

JDK 17ベースの日立JavaVMをインストールする場合のパス

/opt/Cosminexus/jdk17

インストールが正常に完了しているかどうかは，インストール先のinstall.logで確認できます。次のコマンドを実行してください。

$ sudo cat /opt/hitachi/ucart/install.log

次の出力例のように「rc=0 msg=I:Installation completed.」と出力されていればインストールは正常に完了しています。

出力例

2022/06/30 12:34:56 rc=0 msg=I:Installation completed.

なお，ソフトウェアサポートサービスのWebサイトから修正パッチが提供されている場合は，最新の修正パッチを入手して適用してください。ソフトウェアサポートサービスのWebサイトにアクセスできない場合は，本製品に同梱されている修正パッチメディアを利用してください。修正パッチの適用方法については，「4.7　修正パッチを適用する」を参照してください。

3.3　Tomcatに組み込む

本製品をTomcatに組み込むための方法を次に示します。

ここでは，Tomcatのインストール先パスを${CATALINA_HOME}と表記し，環境変数CATALINA_BASEが指すパスを${CATALINA_BASE}と表記します。環境変数CATALINA_BASEを使用していない場合は，${CATALINA_BASE}を${CATALINA_HOME}に読み替えてください。

操作手順を次に示します。

操作手順

インストールディレクトリとファイルの所有グループをTomcat実行ユーザに合わせて変更する。

root以外のユーザでTomcatを実行する場合，本製品のインストールディレクトリとその配下のサブディレクトリおよびファイルの所有グループを，Tomcat実行ユーザが属するグループに変更します（Tomcat実行ユーザに書き込み権限を与えないように，所有ユーザはrootのままにしてください）。

Tomcat実行ユーザが属するグループ名が「tomcat」の場合の実行例を次に示します。

$ sudo chgrp -R tomcat /opt/hitachi/ucart

各種定義ファイルのバックアップを作成する。

次の3つの定義ファイルについて，編集前の状態でバックアップを作成しておきます。

${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

また，次の2つのファイルについても，すでに存在する場合はバックアップを作成しておきます。

${CATALINA_HOME}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.shを作成する。

本製品の動作に必要な環境変数を，${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）に定義します。

このファイルのテンプレートをコピーして使うこともできます。次のコマンドでコピーできます。

$ sudo cp /opt/hitachi/ucart/template/tomcat/setenv.sh "${CATALINA_BASE}/bin/setenv.sh"

ユーザ側でカスタマイズが必要な場合は，コピーしたあとのファイルを修正してください。

setenv.sh（Tomcat起動時の環境変数定義ファイル）の詳細は，「13.3　setenv.sh（Tomcat起動時の環境変数定義ファイル）」を参照してください。

${CATALINA_BASE}/conf/catalina.propertiesを編集する。

本製品の動作に必要なプロパティを，${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）に追記します。

sedコマンドを利用して置換する場合は，次のように実行してください。

$ sudo sed -i -e "s/^¥(common¥.loader=[^¥r]*¥)¥(¥r¥?¥)$/¥1,¥"¥${com.cosminexus.appruntime.lib.path}¥/tomcat¥/common¥/*.jar¥"¥2/g" "${CATALINA_BASE}/conf/catalina.properties"

catalina.properties（Tomcatのプロパティ定義ファイル）の詳細は，「13.4　catalina.properties（Tomcatのプロパティ定義ファイル）」を参照してください。

${CATALINA_BASE}/conf/server.xmlを編集する。

本製品の動作に必要な定義を，${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）に追記します。

このファイルのテンプレートをコピーして使うこともできます。ユーザ側でserver.xml（Tomcatのサーバ設定ファイル）のカスタマイズが必要な場合は，テンプレートからコピーしたあとでカスタマイズしてください。

Tomcat 9.xの場合

$ sudo cp /opt/hitachi/ucart/template/tomcat9/server.xml "${CATALINA_BASE}/conf/server.xml"

Tomcat 10.1.xの場合

$ sudo cp /opt/hitachi/ucart/template/tomcat10.1/server.xml "${CATALINA_BASE}/conf/server.xml"

server.xml（Tomcatのサーバ設定ファイル）の詳細は，「13.5　server.xml（Tomcatのサーバ設定ファイル）」を参照してください。

${CATALINA_BASE}/conf/context.xmlを編集する。

本製品の動作に必要な定義を，${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）に追記します。

このファイルのテンプレートをコピーして使うこともできます。ユーザ側でcontext.xml（Tomcatのコンテキスト設定ファイル）のカスタマイズが必要な場合は，テンプレートからコピーしたあとでカスタマイズしてください。

Tomcat 9.xの場合

$ sudo cp /opt/hitachi/ucart/template/tomcat9/context.xml "${CATALINA_BASE}/conf/context.xml"

Tomcat 10.1.xの場合

$ sudo cp /opt/hitachi/ucart/template/tomcat10.1/context.xml "${CATALINA_BASE}/conf/context.xml"

context.xml（Tomcatのコンテキスト設定ファイル）の詳細は，「13.6　context.xml（Tomcatのコンテキスト設定ファイル）」を参照してください。

これでTomcatへの組み込み作業は完了です。

4　運用

この章では，オンプレミス環境または仮想マシン環境の場合のシステムの起動，停止，設定変更，アンセットアップ方法などについて説明します。

4.1　システムを起動する

本製品を組み込んだTomcatの起動方法を説明します。

オートスケーリング環境下で本製品とTomcatを使用する場合は，先に「4.4　オートスケーリング環境で運用する」を参照してください。

4.1.1　本製品を組み込んだTomcatの起動方法

本製品を組み込んだTomcatは，用途に応じて次のどれかのコマンドで起動できます。

バックグラウンドで起動する場合

次のどちらかのコマンドで起動できます。

$ sudo "${CATALINA_HOME}/bin/startup.sh"

または

$ sudo "${CATALINA_HOME}/bin/catalina.sh" start

リモートデバッグを有効にしてバックグラウンドで起動する場合

$ sudo "${CATALINA_HOME}/bin/catalina.sh" jpda start

フォアグラウンドで起動する場合

$ sudo "${CATALINA_HOME}/bin/catalina.sh" run

root以外のユーザでTomcatを実行する場合は，sudoコマンドに「-u <Tomcat実行ユーザ名またはユーザID>」オプションを付けて起動するか，またはTomcat実行ユーザでログインしているシェル上でsudoコマンドを介さないで起動してください。

なお，同一マシン内に同時に起動するTomcatのインスタンスが複数ある場合は，TomcatプロセスモニタのHTTP機能の受付ポート番号が同一マシン内で重複しないように設定する必要があります。起動する前にconfig.properties（本製品の設定ファイル）のmonitor.rest.portプロパティを変更してください。

重要

どの起動方法でも，-securityオプションは使用できません。

本製品を使用する場合，Tomcatのドキュメント「Tomcat Setup」に記載されている「jsvc」を使用したデーモン起動はできません。また，${CATALINA_HOME}/bin/daemon.shを使用した起動もできません。必ず，${CATALINA_HOME}/bin/catalina.shまたは${CATALINA_HOME}/bin/startup.shを使用して起動してください。

catalina.sh debugでTomcatを起動した場合，本製品が適用されていない（Tomcatプロセスモニタが起動していない）状態となります。デバッグのためにcatalina.sh debugを使用したい場合は，catalina.sh jpda startの使用を検討してください。

4.2　システムを停止する

本製品を組み込んだTomcatの停止方法を説明します。

4.2.1　本製品を組み込んだTomcatの停止方法

本製品を組み込んだTomcatは，用途に応じて次のどれかの方法で正常に停止できます。

次のどちらかのコマンドを実行する。

$ sudo "${CATALINA_HOME}/bin/shutdown.sh"※

または

$ sudo "${CATALINA_HOME}/bin/catalina.sh" stop※

注※　-forceオプションはサポートしていません。

フォアグラウンドで起動していた場合は，catalina.sh runを実行したコンソール上で［Ctrl］＋［C］キーを入力する。

TomcatプロセスモニタのPIDに対してSIGTERMシグナルを送信する。

重要

本製品を使用する場合，それぞれのプロセスのPIDは親子関係になっています。次の表に，その親子関係を示します。システムの停止をするためにSIGTERMシグナルを送信する場合は，表の（A）または（B）のPIDに対して送信してください。

プロセス

PID

親PID

コマンドライン

ラッパースクリプト

（A）

catalina.shまたはstartup.shの呼び出し元プロセスのPIDです。

シェルやsystemdから起動した場合，通常は「1」です。

bash /opt/hitachi/ucart/script/wrapper.sh …(略)… org.apache.catalina.startup.Bootstrap start

Tomcatプロセスモニタ

（B）

（A）

<使用しているjavaのパス※> …(略)… com.cosminexus.appruntime.tomcat.monitor.ProcessMonitor …(略)… org.apache.catalina.startup.Bootstrap start

Tomcatサーバプロセス

（C）

（B）

<使用しているjavaのパス※> …(略)… org.apache.catalina.startup.Bootstrap start

注※

uCosminexus Application Runtime with Java for Apache Tomcatを使用している場合は「/opt/Cosminexus/jdk17/bin/java」です。

4.3　設定を変更する

本製品の設定変更は，次に示すconfig.properties（本製品の設定ファイル）で実施します。

/opt/hitachi/ucart/conf/config.properties

ファイルの編集には管理者権限が必要です。管理者権限を持たないユーザが設定変更する場合は，次の手順を実施してください。

操作手順

「/opt/hitachi/ucart/template/config.properties」を任意の場所にコピーする。

手順1.でコピーしたファイルを編集する。

環境変数PROCESS_MONITOR_CONFIG_PATHに，手順1.のコピー先のファイルパスを設定する。

重要

環境変数PROCESS_MONITOR_CONFIG_PATHが未設定の場合，デフォルトのファイル「/opt/hitachi/ucart/conf/config.properties」で動作します。環境変数PROCESS_MONITOR_CONFIG_PATHが必ず設定されるようにするため，setenv.sh（Tomcat起動時の環境変数定義ファイル）への記載を推奨します。

config.properties（本製品の設定ファイル）の詳細は，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

Tomcatがすでに起動している状態で定義内容を変更した場合，変更した定義内容を反映するためには，Tomcatプロセスモニタを一度停止し，再起動する必要があります。

4.4　オートスケーリング環境で運用する

クラウドサービスから提供されるオートスケーリング機能（Amazon EC2 Auto Scalingなど）を使用して，オートスケーリング環境下のインスタンスで本製品とTomcatを使用する場合について説明します。オートスケーリング環境で運用するには，スナップショットログの出力先をインスタンスの外部にあるストレージ（インスタンスのスケールインとともに削除されないストレージ）に切り替えてください。これは，異常停止時によるスケールイン時に必要な保守資料を永続化しておくために必要です。

スナップショットログの出力先をインスタンスの外部にあるストレージに切り替える手順を次に示します。システムを起動する前に実施してください。

操作手順

スナップショットログの出力先となる外部ストレージをNFSでマウントする。

本製品とTomcatを使用するマシン上の任意のディレクトリに対し，Tomcat実行ユーザの権限で読み書き可能な状態で，外部ストレージをNFSでマウントします。これ以降，マウントポイントのディレクトリを<スナップショットログ出力先ディレクトリ>と表記します。

config.properties（本製品の設定ファイル）を編集してスナップショットログの出力先を変更する。

config.propertiesに対し，次のプロパティを追加してください。

snapshot.log.filepath=<スナップショットログ出力先ディレクトリ>/${INSTANCEID}/snapshot

上記の「INSTANCEID」の部分は例です。このあとの手順3.で設定する環境変数名と一致していれば任意の名称を使用できます。

環境変数INSTANCEIDを設定する。

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）のスクリプト上で，クラウドサービスから提供されている手段を使用して，オートスケーリング環境下の個々のインスタンスを一意に識別できるIDを取得し，環境変数INSTANCEIDに設定します。

インスタンスを一意に識別できるIDの取得方法は，各クラウドサービスのドキュメントを参照してください。

「INSTANCEID」という環境変数名は例です。snapshot.log.filepathプロパティに使用した環境変数名と一致していれば任意の名称を使用できます。

システムを起動する。

システムの起動方法は，「4.1.1　本製品を組み込んだTomcatの起動方法」を参照してください。

これで設定は完了です。

設定の確認方法

設定が正しく反映されているかどうかは，Tomcatプロセスモニタを起動した直後に，「<スナップショットログ出力先ディレクトリ>/${INSTANCEID}」が指す外部ストレージ上のディレクトリが作成されているかどうかで確認できます。

4.5　保守資料を収集する

本製品を使用している場合，スナップショットログ収集機能によって，サポートサービスに提供する必要がある保守資料が収集されます。自動で保守情報が収集される場合（自動収集）と手動で保守情報を収集する場合（手動収集）があります。それぞれについて説明します。

自動収集

次の契機で保守情報が収集されます。

Tomcatプロセスモニタによって，Tomcatサーバプロセスの異常が検知されたとき

Tomcatプロセスモニタの稼働監視機能によって，Tomcatサーバプロセスのプロセスダウン，スローダウン，ハングアップなどの状態異常を検知した場合に自動的に収集されます。スナップショットログが自動で収集されるタイミングの詳細については，「8.5　自動でスナップショットログが収集されるタイミング」を参照してください。

収集されたログは，config.properties（本製品の設定ファイル）のsnapshot.log.filepathプロパティに指定したパスに出力されます。config.properties（本製品の設定ファイル）の詳細は，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

手動収集

次のどちらかの操作で保守情報を収集します。

スナップショットログ収集コマンド（collect-snapshot.sh）の実行

Tomcatを実行しているマシンのコンソールに直接アクセスすることが可能な場合は，次のコマンドを実行して任意のタイミングで収集できます。

$ sudo /opt/hitachi/ucart/bin/collect-snapshot.sh <コマンド引数>

コマンドの詳細は，「17.2　スナップショットログ収集コマンド」を参照してください。

スナップショットログ収集REST APIの実行

スナップショットログ収集REST APIに対してHTTPでGETリクエストを発行すると，レスポンスボディとしてスナップショットログを収集できます。

REST APIの詳細は，「18.2　スナップショットログ収集REST API」を参照してください。

ただし，リモートマシンからREST APIを受け付けられるようにするには，config.properties（本製品の設定ファイル）のmonitor.rest.bindaddressプロパティに「接続先のIPアドレス」または「0.0.0.0」を指定する必要があります。

上記の手動収集の方法は，障害時以外でも使用します。Tomcatサーバプロセスの通常稼働時に保守情報を収集する場合や，スナップショットログの出力テストを実施する場合などです。

スナップショットログ収集機能の詳細については，「12.　スナップショットログ収集機能」を参照してください。

4.6　サポートサービスへ問い合わせる

サポートサービスへ問い合わせる際は，「4.5　保守資料を収集する」を参照して，スナップショットログを収集し，サポートサービス窓口に送付してください。スナップショットログの送付がない場合，追加の資料の収集が必要になったり，より多くの調査時間が掛かったりすることがあります。

スナップショットログの中に含まれる情報や設定項目については，「12.　スナップショットログ収集機能」を参照してください。

4.7　修正パッチを適用する

修正パッチを適用する方法について説明します。

ここで説明する修正パッチの適用手順は，次の環境を前提としています。

TomcatおよびTomcatプロセスモニタを停止済み（または一度も起動していない）

修正パッチの適用対象バージョンである本製品をインストール済み

構築時に「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従ってインストールを実施した場合，「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従って修正パッチを適用してください。

操作手順

次の手順では，修正パッチのアーカイブファイル名を「PACK_TAR.Z」として記載します。

修正パッチのアーカイブ（PACK_TAR.Z）を取得する。

ソフトウェアサポートサービスのWebサイト，または本製品に同梱された修正パッチメディアから，修正パッチのアーカイブ（PACK_TAR.Z）を取得し，修正パッチ適用対象のマシン上に配置します。

修正パッチのアーカイブを任意のディレクトリに展開する。

次のコマンドを実行し，修正パッチのアーカイブを任意のディレクトリに展開します。

$ cd <PACK_TAR.Zを配置したディレクトリ>
$ gunzip -S .Z ./PACK_TAR.Z
$ tar -xf ./PACK_TAR

UPDATEコマンドを実行して修正パッチを適用する。

次のコマンドを管理者権限で実行し，修正パッチを適用します。

$ sudo ./UPDATE -f

インストールディレクトリとファイルの所有グループをTomcat実行ユーザに合わせて変更する。

root以外のユーザでTomcatを実行するために，構築時に本製品のインストール先ディレクトリとその配下のサブディレクトリおよびファイルの所有グループをTomcat実行ユーザが属するグループに変更していた場合は，修正パッチ適用後にも再度変更してください（Tomcat実行ユーザに書き込み権限を与えないようにするため，所有ユーザはrootのまま変更しないでください）。

Tomcat実行ユーザが属するグループ名が「tomcat」の場合の実行例を次に示します。

$ sudo chgrp -R tomcat /opt/hitachi/ucart

これで修正パッチの適用は完了です。

4.8　アンセットアップする

本製品のアンセットアップ方法について説明します。

ここで説明するアンセットアップ手順は，次に示す条件を満たしていることを前提としています。

TomcatおよびTomcatプロセスモニタを停止している

「3.3　Tomcatに組み込む」のセットアップ手順に従って，次の3つの定義ファイルについて，編集前の状態でバックアップを作成している

${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

次のファイルがセットアップ前にすでに存在していた場合は，バックアップを作成している

${CATALINA_HOME}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

この章では，環境構築の自動化を想定して，GUIなどによるオペレータの操作が不要なアンセットアップ方法について説明します。GUIを使ったオペレータの操作によってアンセットアップしたい場合は，「付録B　GUIを使用したアンセットアップ」を参照してください。

構築時に「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従ってインストールを実施した場合，「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従ってアンセットアップを実施してください。

操作手順

Tomcatの定義ファイルを編集前の状態に戻す。

次の3つの定義ファイルについて，セットアップ時に取得したバックアップを使用して，編集前の状態に戻します。

${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

setenv.sh（Tomcat起動時の環境変数定義ファイル）を編集前の状態に戻す。

次のファイルがセットアップ前にすでに存在していた場合は，バックアップを使用して，編集前の状態に戻します。

${CATALINA_HOME}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

セットアップ前には存在しなかった場合は，setenv.sh（Tomcat起動時の環境変数定義ファイル）自体を削除してください。

PPインストーラを使用して本製品をアンインストールする。

次のコマンドを管理者権限で実行します。

$ sudo /etc/hitachi_x64setup -f -u -k <形名>

<形名>はインストールする製品エディションによって異なります。

形名がP-9W43-9N11の場合は，次のとおりコマンドを実行してください。

$ sudo /etc/hitachi_x64setup -f -u -k P-9W43-9N11

これでアンセットアップは完了です。

第3編　コンテナ仮想化環境での設計・構築・運用

5　設計

この章では，コンテナ仮想化環境で本製品を使用する場合に考慮する必要がある環境設計ポイントについて説明します。

5.1　コンテナ仮想化環境共通の設計ポイント

ここでは，コンテナ仮想化環境共通の設計ポイントについて説明します。設計のポイントは，次のとおりです。

本製品による性能影響を確認する

TomcatプロセスモニタのHTTP機能に対するセキュリティを確認する

本製品によるリソース消費量を確認する

スナップショットログの出力先を不揮発なストレージに設定する

それぞれについて説明します。

5.1.1　本製品による性能影響を確認する

本製品では保守性を向上させるために，Tomcatサーバプロセスに対するトレース情報を拡充しています。また，Tomcatサーバプロセスに対する稼働監視を強化しています。

そのため，Tomcatの起動および停止性能や，アプリケーションに対するリクエスト処理性能に若干の影響を及ぼします。

本製品を使用する場合は，次に示す性能影響があります。これらの性能影響を考慮して性能設計をしてください。

(1)　リクエスト処理性能

本製品のトレース機能では，リクエスト処理とは別スレッドでログ出力をします。これによって，リクエスト処理性能への影響を極小化しています。ただし，トレース情報として出力する値を取得するために，リクエスト処理スレッド上で実施する処理があるので，若干の性能影響が生じます。アプリケーションの内部保留時間に関係なく，リクエストごとに処理時間が一定であるため，内部保留時間が長い場合は無視できる範囲の影響です。ただし，内部保留時間が短い場合は無視できない性能影響となるおそれがあります。本製品を適用後の環境で性能評価をすることを強く推奨します。

(2)　起動性能

Tomcatサーバプロセスを起動させる前にTomcatプロセスモニタの起動処理が割り込むことになります。そのため，アプリケーションの規模や個数に関係なく，起動に掛かる時間が数秒増加します。

この起動時間の増分は，コンテナを起動してからアプリケーションが稼働状態になるまでの時間に影響します。

(3)　停止性能

Tomcatサーバプロセスを停止させる前に，スナップショットログ収集機能でTomcat稼働中情報が必ず取得されます。停止処理に失敗する可能性を考慮し，結果的に正常停止であっても取得されます。そのため，Tomcat稼働中情報の取得処理によって停止時間が増加します。Tomcat稼働中情報の取得については，「12.　スナップショットログ収集機能」を参照してください。

なお，異常停止だけでなく，正常停止でもスナップショットログを取得する設定にしている場合は，スナップショットログ収集処理時間の分，さらに停止時間が増加します。スナップショットログ収集に必要な処理時間は，収集対象のデータ量に比例して増加します。

この停止時間の増分は，システム全体の稼働時間には影響しませんが，リクエストを閉塞させてからコンテナが停止するまでの時間には影響します。

5.1.2　TomcatプロセスモニタのHTTP機能に対するセキュリティを確認する

本製品では，スナップショットログの手動取得およびTomcatサーバプロセスとのプロセス間通信のために，HTTPリクエストを受け付けるHTTP機能が使用されます。システムの運用自動化の妨げになることがあるため，このHTTP機能にはユーザ認証機能や通信暗号化機能を設けていません。

デフォルトの設定では，HTTP機能の受付ポートに接続できるクライアントはループバックアドレスからだけに設定されているため，コンテナ外部からの接続はできません。

スナップショットログの手動収集などのユーザ公開REST APIをコンテナ外部から実行する場合は，HTTP機能の受付ポートへ外部から接続できるように設定を変更することを推奨します。そのため，HTTP機能の受付ポートに対しては，必ずファイアウォールやNAT／NAPTを適切に設定して，意図しない外部のユーザが不正にHTTP機能の受付ポートに接続できないように通信をブロックしてください。

5.1.3　本製品によるリソース消費量を確認する

本製品を適用したTomcatサーバプロセスでは，リクエスト処理スレッドとは別のスレッドで稼働監視やトレースログ出力を行うため，本製品を適用していない状態と比べてスレッド数が「2スレッド」分増加します。

Tomcatサーバプロセスが生成する最大スレッド数については，Tomcatのドキュメントを参照して算出してください。本製品を使用する場合は，その最大スレッド数に対して「2」を加算して見積もってください。

また，本製品では，Tomcatサーバプロセスと同時にTomcatプロセスモニタのプロセスが起動されるため，OSの仮想メモリの消費量が約3,800MB分増加します。仮想メモリの消費量を見積もる際には，Tomcatサーバプロセスが消費する仮想メモリに対して，3,800MBを加算して見積もってください。

Tomcatサーバプロセスが消費する仮想メモリについては，使用するJavaVMのドキュメントを参照して算出してください。日立JavaVMを使用している場合は，マニュアルuCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンスを参照してください。

5.1.4　スナップショットログの出力先を不揮発なストレージに設定する

Tomcatをオートスケーリング構成のコンテナ上で使用している場合，コンテナ内だけに保存していたログファイルや環境情報はスケールインとともに削除されるため，障害発生を契機にスケールインされたときにその障害要因の特定が困難になります。

本製品では，稼働監視機能とスナップショットログ収集機能によって，障害発生が検知されるとすぐに障害解析に必要なログファイルや環境情報が自動収集されてスナップショットログが生成されます。そのため，このスナップショットログの出力先をコンテナ外の永続化ストレージにマウントされたディレクトリに設定して，スケールイン後もスナップショットログを参照できるようにしてください。詳細は，「6.3　Dockerfileを作成する」を参照してください。

5.2　Kubernetesなどのコンテナオーケストレーションツール特有の設計ポイント

ここでは，Kubernetesなどのコンテナオーケストレーションツール特有の設計ポイントについて説明します。設計のポイントは，次のとおりです。

コンテナの閉塞を高速化する

スケールイン開始前にスナップショットログ出力処理時間分の猶予を設ける

それぞれについて説明します。

5.2.1　コンテナの閉塞を高速化する

Kubernetesなどのオーケストレーションツールによって管理されたコンテナ上でTomcatを使用している場合，本製品の稼働監視機能によって障害が検知された瞬間に，コンテナの切り離し（閉塞）をします。これによって，Tomcatサーバプロセスへのヘルスチェック機能を使用する場合に比べて，障害発生から閉塞までの不稼働時間を短縮できます。

稼働監視機能のユーザコマンドによる情報通知を使用することで，障害の検知を契機に任意のスクリプトを実行できます。そのスクリプト内で，特定のファイルを書き出すなど，Readiness Probeに検知させることができる処理を実装してください。

Readiness Probeの定義方法については，Kubernetesのドキュメントを参照してください。

障害検知時に特定の空ファイルを書き出すユーザスクリプトと，その空ファイルの有無を1秒間隔で監視する※Readiness Probeの定義例を次に示します。

注※

「test ! -e /tmp/tomcat-failure-detected」というコマンドの成否で空ファイルの有無を判定します。

ユーザスクリプトの例

#!/bin/bash
touch /tmp/tomcat-failure-detected

Kubernetesのマニフェスト定義の例

readinessProbe:
  exec:
    command:
    - /bin/sh
    - -c
    - test ! -e /tmp/tomcat-failure-detected
  initialDelaySeconds: 1
  periodSeconds: 1

重要

ここに示した定義は例であり，これをそのまま使用した場合の動作は保証しません。必ずKubernetesが提供する最新のドキュメントを参照して適切なスクリプトを記述してください。

5.2.2　スケールイン開始前にスナップショットログ出力処理時間分の猶予を設ける

Kubernetesなどのオーケストレーションツールによって管理されたコンテナ上でTomcatを使用している場合，本製品がスナップショットログの収集処理中は，できる限りコンテナが破棄されないように設計する必要があります。なお，本製品のTomcatプロセスモニタが停止するまでは，Liveness Probeが正常に判定されます。そのため，稼働監視機能による異常検知を契機にスナップショットログが出力されるケースについては，考慮する必要はありません。

Kubernetesからのスケールイン操作によってコンテナが停止される場合は，停止シグナルを送出してから強制停止に遷移するまでの猶予時間を十分な長さに設定してください。Tomcatの正常停止に失敗したときに，スナップショットログの出力が完全に終わるまで，コンテナが破棄されないようにするためです。

詳細は，「7.2　システムを停止する」または「7.4　Kubernetes環境で運用する」を参照してください。

6　構築

この章では，コンテナ仮想化環境の場合の本製品の構築手順を説明します。なお，TomcatがインストールされたDockerイメージを作成済みであることを前提としています。

6.1　セットアップの前提条件を確認する

ここで説明するセットアップ手順は，本製品の前提OSをベースイメージとして，TomcatがインストールされたDockerイメージを作成済みであることを前提としています。Tomcatから提供されている公式のDockerイメージも利用できます。

このセットアップ手順で作成，変更するDockerイメージは，次の図に示す階層になることを想定しています。

図6‒1　作成，変更するDockerイメージ

注※

uCosminexus Application Runtime with Java for Apache Tomcatを使用する場合は，他社製のJava Runtime Environment（JRE）は使用しません。そのため，JREがインストールされたDockerイメージがなくても問題はありません。

図中の「（A）TomcatがインストールされたDockerイメージ」は，次の状態となっていることを前提としています。なお，Tomcatから提供されている公式のDockerイメージは，これらの条件を満たしています。

Tomcatをインストールしている

Tomcatを起動していない

環境変数CATALINA_HOMEがTomcatのインストール先の絶対パスを指すように設定している

環境変数CATALINA_HOMEの値にシンボリックリンクが含まれる場合，シンボリックリンクの後に「..」が含まれていない

環境変数CATALINA_BASEを定義していない

環境変数PATHに，Tomcatのインストール先直下のbinディレクトリを指す絶対パスが含まれている

バージョンに関係なく，本製品をインストールしていない

本製品を使用する場合は，さらに次の前提条件も含まれます。なお，Tomcatから提供されている公式のDockerイメージを使用する場合，次の条件を満たしているかどうかは，使用するJREによって異なります。Tomcatから提供されている公式のDockerイメージの配布サイトでご確認ください。

TomcatがインストールされたDockerイメージに，Java SE 17以降に準拠するJava Runtime Environment（JRE）がインストール済みであること

上記のJREのインストールディレクトリの絶対パスが，環境変数JAVA_HOMEまたはJRE_HOMEにセット済みであること（「${JAVA_HOME}/bin/java」または「${JRE_HOME}/bin/java」が存在すること）

「6.2　インストーラを準備する」および「6.3　Dockerfileを作成する」の手順は，本製品のアーカイブファイルを用いて実施することもできます。アーカイブファイルを用いることによるメリットおよび手順については，「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」を参照してください。

6.2　インストーラを準備する

Dockerイメージのビルド時に必要となる本製品のインストーラを準備します。

操作手順を次に示します。

操作手順

インストールメディアのデータを，Dockerイメージをビルドするマシンにコピーする。

本製品のインストールメディアをマウントし，インストールメディアに格納されているX64LINディレクトリを，Dockerイメージをビルドするマシン上の任意のディレクトリにX64LINディレクトリごとコピーしてください。

これ以降，X64LINディレクトリのコピー先を<インストーラのパス>と表記します。

インストーラをTARファイル形式にアーカイブする。

tarコマンドを実行してX64LINディレクトリのコピー先をTARファイル形式にアーカイブします。以降，作成したアーカイブファイルのパスを<インストーラアーカイブのパス>と表示します。

tarコマンドの実行例を次に示します。

$ tar -cf <インストーラアーカイブのパス> <インストーラのパス>

6.3　Dockerfileを作成する

「図6‒1　作成，変更するDockerイメージ」に示した「（A）TomcatがインストールされたDockerイメージ」をベースイメージとして，「（B）本製品をインストールするDockerイメージ」のDockerfileを作成します。

「（B）本製品をインストールするDockerイメージ」用のDockerfileの例を次に示します。下線部分については，使用する環境やベースイメージに合わせて変更してください。

# Base image　                                         ［1.］
FROM tomcat:9.0.106-jre17

# Install prerequired packages                         ［2.］
<前提パッケージのインストール>

# Install uCART　                                      ［3.］
ADD <インストーラアーカイブのパス> /tmp
RUN chmod +x /tmp/X64LIN/setup
RUN /tmp/X64LIN/setup -f -k <形名> /tmp
RUN rm -rf /tmp/X64LIN

# Overwrite configuration files of Apache Tomcat　     ［4.］
RUN cp /opt/hitachi/ucart/template/tomcat/setenv.sh "${CATALINA_HOME}/bin/"
RUN cp /opt/hitachi/ucart/template/tomcat9/server.xml "${CATALINA_HOME}/conf/"
RUN cp /opt/hitachi/ucart/template/tomcat9/context.xml "${CATALINA_HOME}/conf/"
RUN sed -i -e "s/^¥(common¥.loader=[^¥r]*¥)¥(¥r¥?¥)$/¥1,¥"¥${com.cosminexus.appruntime.lib.path}¥/tomcat¥/common¥/*.jar¥"¥2/g" "${CATALINA_HOME}/conf/catalina.properties"

# Edit configuration file of uCART　                   ［5.］
RUN echo monitor.rest.bindaddress=0.0.0.0 >> /opt/hitachi/ucart/conf/config.properties
RUN echo snapshot.log.filepath=/ucart-snapshots/¥${HOSTNAME}/snapshot >> /opt/hitachi/ucart/conf/config.properties

# Expose HTTP port of uCART Process Monitor　          ［6.］
EXPOSE 28081

# Start Tomcat　                                       ［7.］
CMD [ "catalina.sh", "run" ]

［説明］

ベースとなる「（A）TomcatがインストールされたDockerイメージ」を指定します。

Tomcatから提供されている公式のDockerイメージも使用できます。また，ユーザが作成したDockerイメージも使用できます。ユーザが作成したDockerイメージを使用する場合は，必ず環境変数CATALINA_HOMEがTomcatのインストール先の絶対パスを指すように設定してください。また，環境変数CATALINA_BASEは定義しないでください。

前提パッケージをインストールします。本製品に必要な前提パッケージについては，製品のリリースノートを参照してください。

本製品のインストーラをコンテナ上に展開してインストールを実行します。

本製品の動作に必要な設定を定義します。各定義ファイルの詳細は，「13.　定義ファイル」を参照してください。

この定義例では，本製品の動作に必要な設定があらかじめ記載されているTomcatの各種定義ファイルを，本製品のテンプレートからコピーして上書きしていますなお，Tomcat 10.1.xを使用する場合は，templateディレクトリ直下のTomcat 9.xディレクトリをTomcat 10.1.xディレクトリに書き換えてください。

config.properties（本製品の設定ファイル）に次の2つの設定を追記します。

monitor.rest.bindaddress=0.0.0.0

Tomcatプロセスモニタで使用するHTTP機能の受付ポートを，localhostだけでなくコンテナ外からもアクセスを可能にします。

snapshot.log.filepath=/ucart-snapshots/${HOSTNAME}/snapshot

異常検知時のスナップショットログ出力先を，Dockerホスト上の記憶域にマウントするパスに変更します。親ディレクトリ名に「${HOSTNAME}」を採用してコンテナごとに異なるディレクトリに出力されるようにすることで，同時刻に複数のコンテナから同じファイル名で出力することを防止できます。

本製品のTomcatプロセスモニタで使用するHTTP機能の受付ポートである28081番ポートへ，コンテナ外からのアクセスを可能にします。

デフォルトの実行コマンドとして，Tomcatの起動コマンドを指定します。「"catalina.sh", "run"」を指定してください。

6.4　Dockerイメージをビルドする

本製品をインストールするDockerイメージ，およびユーザアプリケーションをデプロイするDockerイメージをビルドする手順を説明します。なお，ビルドする前に，次の条件をすべて満たしている必要があります。

「図6‒1　作成，変更するDockerイメージ」に示した「（A）TomcatがインストールされたDockerイメージ」のベースイメージがpull可能であること

インストーラアーカイブのパスに本製品のインストーラをアーカイブしたTARファイルが存在すること

操作手順

「6.3　Dockerfileを作成する」で作成したDockerイメージをビルドする。

docker buildコマンドを実行します。

実行例：

$ docker build ./ -t tomcat:9.0.106-jre17-ucart1.20

下線部分のイメージ名とタグは任意です。この例では，イメージ名を「tomcat」，タグ名を「9.0.106-jre17-ucart1.20」としています。

「（C）ユーザアプリケーションをデプロイするDockerイメージ」のDockerfileのイメージ名・タグ名を書き換える。

Dockerfileのベースイメージのイメージ名・タグ名を，手順1.でビルドしたDockerイメージのイメージ名・タグ名に変更します。ここでの例に従った場合は「tomcat:9.0.106-jre17-ucart1.20」にします。

手順2.でイメージ名・タグ名を書き換えた「（C）ユーザアプリケーションをデプロイするDockerイメージ」をビルドする。

7　運用

この章では，コンテナ仮想化環境の場合のシステムの起動，停止，設定方法，運用方法などについて説明します。

7.1　システムを起動する

「6.4　Dockerイメージをビルドする」でビルドしたユーザアプリケーションをデプロイしたDockerイメージ※に対してdocker runコマンドを実行します。これによって，Tomcatプロセスモニタがコンテナ上で起動します（本製品が適用された状態）。さらに，TomcatプロセスモニタがTomcatサーバプロセスを子プロセスとして起動します。

注※

「図6‒1　作成，変更するDockerイメージ」に示した「（C）ユーザアプリケーションをデプロイするDockerイメージ」を指します。

docker runコマンドを実行する際，次を指定してください。

スナップショットログ出力先として指定した「/ucart-snapshots」ディレクトリがData Volumeにマウントされるように，「-v」オプションでDockerホスト上に存在する任意のディレクトリを指定する。

Tomcatのポート番号に加えて，本製品のTomcatプロセスモニタで使用するHTTP機能の受付ポートである28081番ポートを「-p」オプションで公開する。

docker runコマンドの指定例を次に示します。

$ docker run -p 8080:8080 -p 28081:28081 -v /var/snapshots:/ucart-snapshots <イメージ名>

下線部の値は任意です。実行環境に合わせて指定してください。

<イメージ名>には，「（B）本製品をインストールするDockerイメージ」をベースとしてビルドした「（C）ユーザアプリケーションをデプロイするDockerイメージ」のイメージ名・タグ名を指定してください。

docker runコマンド以外を使用する場合，SELinuxがEnforcingに設定されているとコンテナの起動に失敗することがあります。podman runコマンドを実行する場合の指定例を次に示します。

$ podman run -p 8080:8080 -p 28081:28081 -v /var/snapshots:/ucart-snapshots:Z ＜イメージ名＞

下線部の値は任意です。実行環境に合わせて指定してください。

コンテナがDockerホスト上の指定したディレクトリにアクセスできるように指定してください。

スナップショットログ出力先の設定が正しく反映されているかどうか確認する方法

設定が正しく反映されているかどうかは，コンテナを起動した直後に，「<スナップショットログ出力先ディレクトリ>/<コンテナごとの環境変数HOSTNAMEの値>」が指すData Volume上のディレクトリが作成されているかどうかで確認できます。ここで示した例では，「/var/snapshots/<コンテナごとの環境変数HOSTNAMEの値>」というディレクトリが作成されていることを確認します。

7.2　システムを停止する

起動したコンテナのコンテナIDを指定してdocker stopコマンドを実行します。これによって，TomcatサーバプロセスおよびTomcatプロセスモニタが停止します。

一定時間内にTomcatサーバプロセスが正常停止できずに異常停止した場合，スナップショットログの収集および出力をするための猶予時間が必要です。そのため，「-t」オプションで，SIGKILLが送出されるまでの待機時間を延長することを推奨します（デフォルトは10秒です）。

docker stopコマンドの指定例を次に示します。

$ docker stop -t 60 <コンテナID>

下線部のSIGKILL待機秒数は任意です。ここでは例として60秒を指定しています。スナップショットの収集と出力を完了させるために必要な時間を指定してください。

7.3　設定を変更する

本製品の設定変更は，次に示すconfig.properties（本製品の設定ファイル）で実施します。

/opt/hitachi/ucart/conf/config.properties

本製品をインストールするDockerイメージ用のDockerfileの設定項目を追加することで，ほかのプロパティと同じように設定を追加できます。Dockerfileの設定項目の追加については，「6.3　Dockerfileを作成する」参照してください。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

7.4　Kubernetes環境で運用する

本製品を組み込んだDockerイメージを，Kubernetes環境で運用する場合のマニフェストの定義例を次に示します。下線部分は使用する環境に合わせて変更してください。

apiVersion: v1
kind: Service
metadata:
  name: tomcat-ucart
spec:
  selector:
    app: tomcat-ucart
  ports:
  - name: "tomcat-http-port"
    port: 8080
    targetPort: 8080
  - name: "ucart-http-port"                 ［1.］
    port: 28081
    targetPort: 28081
  type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: tomcat-ucart
spec:
  replicas: 1
  selector:
    matchLabels:
      app: tomcat-ucart
  template:
    metadata:
      labels:
        app: tomcat-ucart
    spec:
      containers:
      - name: tomcat-ucart
        image: <イメージ名>                 ［2.］
        ports:
        - containerPort: 8080
        - containerPort: 28081              ［3.］
        volumeMounts:                       ［4.］
        - name: snapshot-volume
          mountPath: /ucart-snapshots
        startupProbe:                       ［5.］
          httpGet:
            path: /path-to-healthcheck
            port: 8080
        readinessProbe:                     ［6.］
          exec:
            command:
            - /bin/sh
            - -c
            - test ! -e /tmp/tomcat-failure-detected
          initialDelaySeconds: 1
          periodSeconds: 1
      terminationGracePeriodSeconds: 60      ［7.］
      volumes:                               ［4.］
      - name: snapshot-volume
        persistentVolumeClaim:
          claimName: ucart-snapshot-pvc

［説明］

コンテナ外に公開するマッピング先ポート番号を指定します。マッピング先ポート番号は，Tomcatプロセスモニタが使用するHTTP機能の受付ポートのマッピング先ポート番号を指します。

「6.4　Dockerイメージをビルドする」でビルドした，「（C）ユーザアプリケーションをデプロイするDockerイメージ」のイメージ名を指定します。

Tomcatプロセスモニタが使用するHTTP機能の受付ポートである28081番ポートを公開ポートとして指定します。

スナップショットログの出力先として指定したパスをPersistent Volumeにマウントします。マウント先のPersistent VolumeとPersistence Volume Claimは，事前に作成するか，またはこのマニフェストファイルに定義を追記してください。

Tomcatの起動完了を検知するためのStartup Probeを定義します。GETリクエストによってユーザアプリケーションの起動完了を確認できるURLを指定してください。

Tomcatの正常稼働を監視するためのReadiness Probeを定義します。詳細は，「5.2.1　コンテナの閉塞を高速化する」を参照してください。

コンテナに正常停止シグナルを送出してから，強制停止に遷移するまでの猶予時間を指定します。ここでは例として60秒を指定していますが，スナップショットの収集と出力を完了させるのに十分な時間を指定してください。

7.5　保守資料を収集する

本製品を使用している場合，スナップショットログ収集機能によって，サポートサービスに提供する必要がある保守資料が自動的に収集されます。自動で保守情報が収集される場合（自動収集）と手動で保守情報を収集する場合（手動収集）があります。それぞれについて説明します。

自動収集

次の契機で保守情報が収集されます。

TomcatプロセスモニタによってTomcatサーバプロセスの異常が検知されたとき

Tomcatプロセスモニタの稼働監視機能によって，Tomcatサーバプロセスのプロセスダウン，スローダウン，ハングアップなどの状態異常を検知した場合に自動的に収集されます。スナップショットログが自動で収集されるタイミングの詳細については，「8.5　自動でスナップショットログが収集されるタイミング」を参照してください。

収集されたログは，config.properties（本製品の設定ファイル）のsnapshot.log.filepathプロパティに指定したパスに出力されます。config.properties（本製品の設定ファイル）の詳細は，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

手動収集

次の操作で保守情報を収集します。

スナップショットログ収集REST APIの実行

スナップショットログ収集REST APIに対してHTTPでGETリクエストを発行すると，レスポンスボディとしてスナップショットログを収集できます。

スナップショットログ収集REST APIの詳細は，「18.2　スナップショットログ収集REST API」を参照してください。

スナップショットログ収集機能の詳細については，「12.　スナップショットログ収集機能」を参照してください。

7.6　サポートサービスへ問い合わせる

本製品のサポートサービスへ問い合わせる際は，「7.5　保守資料を収集する」を参照して，スナップショットログを収集し，サポートサービス窓口に送付してください。スナップショットログの送付がない場合，追加の資料の収集が必要になったり，より多くの調査時間が掛かったりすることがあります。

スナップショットログの中に含まれる情報や設定項目については，「12.　スナップショットログ収集機能」を参照してください。

7.7　修正パッチを適用したDockerイメージをビルドする

修正パッチを適用したDockerイメージをビルドする場合の前提条件，作成方法，およびビルド方法を説明します。

7.7.1　修正パッチ適用前の前提条件を確認する

ここで説明する手順で作成するDockerイメージは，次の図に示す階層になることを想定しています。

図7‒1　作成，変更するDockerイメージ

注※

「6.4　Dockerイメージをビルドする」で作成したDockerイメージ。

構築時に「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従ってDockerイメージをビルドした場合，「付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ」の内容に従って修正パッチを適用したDockerイメージのビルドを実施してください。

なお，以降の説明では，修正パッチのアーカイブファイル名を「PACK_TAR.Z」として記載します。

7.7.2　修正パッチを適用したDockerfileを作成する

「6.4　Dockerイメージをビルドする」で作成した「（B）本製品をインストールするDockerイメージ」をベースイメージとして，「（B'）本製品の修正パッチを適用したDockerイメージ」を作成します。

本製品の修正パッチを適用したDockerイメージ用のDockerfileの例を次に示します。下線部分については，使用する環境やベースイメージに合わせて変更してください。

# Base image                                ［1.］
FROM tomcat:9.0.106-jre17-ucart1.20

# Update uCART                              ［2.］
RUN mkdir /tmp/ucart-patch
WORKDIR /tmp/ucart-patch
COPY ＜修正パッチのアーカイブ(PACK_TAR.Z)のパス＞ ./
RUN gunzip -S .Z PACK_TAR.Z -c | tar xvf -
RUN ./UPDATE -f; [ $? -eq 1 ] && true
WORKDIR /
RUN rm -rf /tmp/ucart-patch

［説明］

ベースとなる「（B'）本製品の修正パッチを適用したDockerイメージ」を指定します。

本製品の修正パッチをコンテナ上に展開してUPDATEプログラムを実行します。「-f」オプションを付けて実行してください。なお，UPDATEプログラムの実行結果（戻り値）が”1”であれば，正常にパッチ適用が成功したことを意味します。

7.7.3　修正パッチを適用したDockerイメージをビルドする

ここでは，本製品の修正パッチを適用したDockerイメージ，およびユーザアプリケーションをデプロイするDockerイメージをビルドする手順を説明します。なお，ビルドする前に，修正パッチのアーカイブ（PACK_TAR.Z）のパスにファイルが存在することを確認してください。

操作手順

「7.7.2　修正パッチを適用したDockerfileを作成する」で作成したDockerイメージをビルドする。

docker buildを実行します。

実行例：

$ docker build ./ -t tomcat:9.0.106-jre17-ucart1.20.1

下線部分のイメージ名とタグは任意です。この例では，イメージ名を「tomcat」，タグ名を「9.0.106-jre17-ucart1.20.1」としています。

「6.4　Dockerイメージをビルドする」で作成した「（C）ユーザアプリケーションをデプロイするDockerイメージ」のDockerfileのイメージ名・タグ名を書き換える。

Dockerfileのベースイメージのイメージ名・タグ名を，手順1.でビルドしたDockerイメージのイメージ名・タグ名に変更します。ここでの例に従った場合は「tomcat:9.0.106-jre17-ucart1.20.1」にします。

手順2.でイメージ名・タグ名を書き換えた「（C'）ユーザアプリケーションをデプロイするDockerイメージ」をビルドする。

第4編　機能

8　Tomcatプロセスモニタ機能

この章では，Tomcatプロセスモニタ機能の概要，適用方法，解除方法，Tomcatプロセスモニタを使用する上で知っておいていただきたいことなどを説明します。

8.1　Tomcatプロセスモニタ機能の概要

Tomcatプロセスモニタは，Tomcatサーバプロセスを管理・監視するプロセスです。Tomcatの高信頼化を実現するための，各種機能（トレース機能，稼働監視機能，およびスナップショットログ収集機能）を管理します。

Tomcatプロセスモニタは，ラッパースクリプトを介して，Tomcatが提供する起動オペレーションに従って起動されます。次の図に示すとおり，TomcatプロセスモニタはTomcatと同時に起動されるため，通常の運用でTomcatプロセスモニタを意識する必要はありません。

図8‒1　本製品適用前と適用後の起動オペレーション

8.2　Tomcatプロセスモニタ機能の適用方法

Tomcatプロセスモニタ機能の適用方法を説明します。Tomcatプロセスモニタ機能を含め，本製品の設定をデフォルトのまま使用する場合は次の手順を実施してください。これによって，Tomcatプロセスモニタが起動されます。

オンプレミス環境または仮想マシン環境の場合

「3.　構築」および「4.　運用」

コンテナ仮想化環境の場合

「6.　構築」および「7.　運用」

Tomcatプロセスモニタの起動時の設定をデフォルトから変更したい場合は，「13.3　setenv.sh（Tomcat起動時の環境変数定義ファイル）」を参照して，setenv.sh（Tomcat起動時の環境変数定義ファイル）の内容を変更してください。

Tomcatプロセスモニタは，「13.2　config.properties（本製品の設定ファイル）」に示すファイルの設定に従い動作します。設定を変更したい場合は，「13.2　config.properties（本製品の設定ファイル）」を参照して変更してください。

8.3　Tomcatプロセスモニタ機能の解除方法

Tomcatプロセスモニタ機能の設定を解除したい場合は，Tomcatプロセスモニタ機能のために編集したsetenv.sh（Tomcat起動時の環境変数定義ファイル）の内容を，編集前の状態に戻してください。

8.4　Tomcatプロセスモニタ機能適用後の終了ステータス

Tomcatプロセスモニタ機能適用後の，Tomcat起動失敗時と停止時の終了ステータスについて説明します。

Tomcatの起動失敗時の終了ステータス

本製品を組み込んだTomcatの起動に失敗した原因とその終了ステータスを次の表に示します。

表8‒1　Tomcatの起動に失敗した原因と終了ステータス

原因

終了ステータス

環境変数JRE_HOMEの値不正

101※

config.properties（本製品の設定ファイル）のI/Oエラー

101

config.properties（本製品の設定ファイル）のバリデーションエラー

101

Tomcatプロセスモニタの一時領域へのアクセスエラー

101

セキュリティマネージャが設定されている

101

その他のTomcat起動前のエラー

102

稼働監視機能によるTomcatの停止要求発生

110

Tomcatプロセスモニタ終了時点で，Tomcatが停止していない

103

上記以外の原因

Tomcatプロセスモニタ機能を適用していないときの終了ステータスと同じ値

注※　Tomcatのバージョンによっては，Tomcatプロセスモニタ機能を適用していないときの終了ステータスと同じ値になります。

Tomcat停止時の終了ステータス

Tomcatの停止時の終了ステータスは，原則，Tomcatプロセスモニタ機能を適用していないときの終了ステータスと同じ値となります。ただし，SIGTERM以外の受信可能なシグナルをTomcatプロセスモニタが受信した場合は，SIGTERMシグナルを送信したときと同じ値になります。

8.5　自動でスナップショットログが収集されるタイミング

デフォルトでは，次に示すどれかの条件が成立した場合に，自動でスナップショットログが収集されます。

Tomcatサーバプロセス開始前にTomcatプロセスモニタが終了する場合

ただし，Tomcatプロセスモニタのログファイルのセットアップが完了する前は収集されません。

稼働監視機能が異常を検知した場合

Tomcatサーバプロセスが，次に示す値以外の終了ステータスで終了した場合

0

143（SIGTERMシグナルで終了した場合）

ここに示すスナップショットログの収集に関する条件は，config.properties（本製品の設定ファイル）で変更できます。稼働監視機能については，「10.3　稼働監視機能の設定（監視項目）」を参照してください。終了ステータスの条件については，「(4)　スナップショットログ収集機能に関するプロパティ」のsnapshot.onshutdownrequest.collect.conditionを参照してください。

8.6　Tomcatサーバプロセスの強制終了

稼働監視機能が検知した障害または異常な設定によって，Tomcatプロセスモニタが停止する場合，Tomcatサーバプロセスが強制終了されます。

Tomcatサーバプロセスの強制終了は，次の2段階で実行されます。

Tomcatサーバプロセスに対するSIGTERMの送信

Tomcatサーバプロセスに対するSIGKILLの送信

1.のTomcatサーバプロセスが終了したかどうかの確認は，config.properties（本製品の設定ファイル）の「monitor.tomcat.forcestop.timeout」で設定するタイムアウト時間内で実施されます。そのため，Tomcatサーバプロセスが確実に終了するタイムアウト時間を設定する必要があります。「monitor.tomcat.forcestop.timeout」については，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

「monitor.tomcat.forcestop.timeout」で設定するタイムアウト時間内にTomcatサーバプロセスが終了しなかった場合は，2.が実行されます。

8.7　TomcatプロセスモニタのHTTP機能

Tomcatプロセスモニタは，次の処理を実行するために，HTTP機能を持っています。

運用管理用REST APIの受付処理

稼働監視コンポーネントとTomcatサーバプロセスとのプロセス間HTTP通信処理

TomcatプロセスモニタのHTTP機能の各設定については，「(2)　Tomcatプロセスモニタに関するプロパティ」のmonitor.rest.から始まるプロパティを参照してください。また，稼働監視コンポーネント専用のHTTP通信の設定については，「10.　稼働監視機能」を参照してください。

8.8　Tomcatプロセスモニタの一時領域

Tomcatプロセスモニタが利用する一時領域ディレクトリは，次のとおりです。

<Tomcatサーバプロセスの一時領域※1>/<TomcatプロセスモニタのHTTP機能の受付ポート番号※2>

注※1

Tomcatの環境変数CATALINA_TMPDIRで変更できます。

注※2

config.properties（本製品の設定ファイル）のmonitor.rest.portに指定した値です。

9　トレース機能

この章では，トレース機能の概要，セットアップ方法，アンセットアップ方法，および取得されるトレース情報について説明します。

9.1　トレース機能の概要

本製品のトレース機能とは，Tomcatを利用したシステムで，リクエスト実行中の性能影響個所や障害発生個所の特定を手助けする機能です。Tomcatの処理の入口と出口には，多くのトレース取得ポイントが設定されています。これによって，障害発生個所などを特定しやすくなります。また，uCosminexus Application Serverと組み合わせて使用する場合は，PRFトレース機能と連携できます。

メモ

Tomcatの内部処理の調査はスレッドダンプなどを活用してください。

トレース機能を使用するための前提条件，トレース取得ポイント，トレースの種類，およびuCosminexus Application Serverとの連携について説明します。

トレース機能使用時の前提条件

トレース機能を使用する際の前提条件は，ホストアドレスにIPv4のアドレスが割り当てられていることです。IPv4アドレスおよびIPv6アドレスの両方を持つホストで稼働させる場合，java.net.preferIPv6Addressesはデフォルト値（false）のままにします。

トレース取得ポイント

本製品のトレース取得ポイントを次の図に示します。

図9‒1　本製品のトレース取得ポイント

トレースの種類

本製品のトレース機能では，次の種類のトレースを取得します。

サーバの開始時および終了時のトレース

詳細は，「9.4　サーバの開始時および終了時のトレース」を参照してください。

Webアプリケーションの開始時および終了時のトレース

詳細は，「9.5　Webアプリケーションの開始時および終了時のトレース」を参照してください。

HTTPリクエストおよびサーブレット・フィルタのトレース

詳細は，「9.6　HTTPリクエストおよびサーブレット・フィルタのトレース」を参照してください。

HTTPセッションのトレース

詳細は，「9.7　HTTPセッションのトレース」を参照してください。

JAX-RSクライアントのトレース

詳細は，「9.8　JAX-RSクライアントのトレース」を参照してください。

Tomcat JDBC Connection Poolのトレース

詳細は，「9.9　Tomcat JDBC Connection Poolのトレース」を参照してください。

重要

データベースへのアクセスのトレースは，Tomcat JDBC Connection Pool経由でアクセスした場合に取得します。

JAX-RSクライアントのトレースは，JAX-RS Client仕様のサードパーティライブラリ経由でアクセスした場合に取得します。java.net.URLConnectionクラスを直接利用したアクセスなど，JavaAPIを直接呼び出した場合にはトレースを取得しません。

セキュリティマネージャが有効な環境での動作は保証しません。

uCosminexus Application Serverとの連携

TomcatとuCosminexus Application Serverを組み合わせてシステムを構築する場合に限り，PRFトレースと連携できます。連携すると，TomcatからuCosminexus Application ServerへのHTTPの呼び出しを1つの処理単位として，uCosminexus Application Serverのパフォーマンストレーサで認識できます。これによって，TomcatからuCosminexus Application Serverまでの処理をまとめて調査できます。PRFトレースおよびパフォーマンストレーサについては，uCosminexus Application Serverのマニュアルを参照してください。

9.2　トレース機能のセットアップ方法

本製品をインストールしたあと，トレース機能を有効にするために次の手順でセットアップをしてください。

Server要素に子要素として設定を追記する。

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）に記載されているServer要素の子要素として，次の内容を追記してください。Server要素のほかの子要素よりも前に記載することを推奨します。

<Listener className="com.cosminexus.appruntime.tomcat.tracer.ServerComponentHandler" />

Engine要素に子要素として設定を追記する。

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）に記載されているEngine要素の子要素として，次の内容を追記してください。Engine要素のほかの子要素よりも前に記載することを推奨します。

<Valve  className="com.cosminexus.appruntime.tomcat.tracer.RequestTraceValve" />

Resource要素のjdbcInterceptors属性に設定を追記する。

次のファイルに記載されているResource要素のjdbcInterceptors属性にcom.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandlerを追記してください。ただし，Resource要素のfactory属性がorg.apache.tomcat.jdbc.pool.DataSourceFactoryの場合に限ります。

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

なお，設定を追記しない場合は，Tomcat JDBC Connection Poolのトレースを取得できません。

設定を追記する例を次に示します。太字が追記する個所です。

<Resource
  ・・・省略・・・
  factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
  ・・・省略・・・
  jdbcInterceptors="com.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandler"
  ・・・省略・・・
  />

Context要素に子要素として設定を追記する。

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）に記載されているContext要素の子要素として，次の内容を追記してください。Context要素のほかの子要素との記載順序は問いません。

<Loader loaderClass="com.cosminexus.appruntime.tomcat.tracer.WebappTraceClassLoader" />

Eclipse Jersey以外のJAX-RSクライアントを使用する場合，ユーザプログラムを変更する。

Eclipse Jersey以外のJAX-RSクライアントを使用する場合は，ユーザプログラム中のClientオブジェクトにJaxrsClientTraceFeatureを登録する必要があります。登録しない場合，JAX-RSクライアントのトレースを取得できません。登録する例を次に示します。

import javax.ws.rs.client.Client;
import com.cosminexus.appruntime.common.tracer.JaxrsClientTraceFeature;

Client client = <Clientオブジェクトの取得>;
client.register(JaxrsClientTraceFeature.class); // JaxrsClientTraceFeatureの登録

なお，Eclipse Jersey 2.x系を使用する場合は，ユーザプログラムの変更は不要です。この手順を実施する必要はありません。

必要に応じてconfig.properties（本製品の設定ファイル）のプロパティを設定する。

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

9.3　トレース機能のアンセットアップ方法

トレース機能が不要になった場合，トレース機能のセットアップ時に追記および変更した設定を元に戻してください。

9.4　サーバの開始時および終了時のトレース

次の場合に，サーバに関するトレース情報が取得されます。

Tomcatサーバコンポーネントの初期化処理が開始したとき

Tomcatサーバコンポーネントの終了処理が完了したとき

サーバの開始時および終了時のトレースの一覧を次の表に示します。

表9‒1　サーバの開始時および終了時のトレースの一覧

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

0xe200

サーバが起動するとき

INFO

0

-

-

0xe201

サーバが終了するとき

INFO

0

-

-

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.5　Webアプリケーションの開始時および終了時のトレース

次の場合に，Webアプリケーションに関するトレース情報が取得されます。

Webアプリケーション（WAR単位）の初期化処理が開始したとき

Webアプリケーション（WAR単位）の終了処理が完了したとき

Webアプリケーションの開始時および終了時のトレースの一覧を次の表に示します。

表9‒2　Webアプリケーションの開始時および終了時のトレースの一覧

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

0xe210

Webアプリケーションが開始するとき

INFO

0

-

Webアプリケーションのコンテキストパス

0xe211

Webアプリケーションが停止するとき

INFO

0

-

Webアプリケーションのコンテキストパス

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.6　HTTPリクエストおよびサーブレット・フィルタのトレース

HTTPリクエストおよびサーブレット・フィルタのトレース情報が取得されます。HTTPリクエストおよびサーブレット・フィルタのトレースの一覧を次の表に示します。

表9‒3　HTTPリクエストおよびサーブレット・フィルタのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース1

0xe230

HTTPリクエストを受信した直後

FINE

0

HTTPメソッド

リクエストURI※3

トレース2

0xe231

HTTPレスポンスを送信する直前

FINE

正常リターンの場合：0

例外リターンの場合：1

HTTPメソッド

リクエストURI※3

トレース3

0xe240

最初のサーブレットまたはフィルタを呼び出す直前※1

FINER

0

サーブレット・フィルタ名※2

リクエストURI※3

トレース4

0xe241

最後のサーブレットの処理，または最初のフィルタの処理が完了した直後※1

FINER

正常リターンの場合：0

例外リターンの場合：1

サーブレット・フィルタ名※2

リクエストURI※3

注※1

1つのリクエストで複数のフィルタやサーブレットが呼び出される場合，最初に呼び出されるものだけがトレース取得の対象です。

注※2

Webアプリケーションデプロイ記述子に記載している場合は記載した名前が取得されます。記載していない場合は実装依存の名前が取得されます。

注※3

URIにパスワードなどの機密情報が含まれていないことを確認してください。

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

トレース取得シーケンス

HTTPリクエストおよびサーブレット・フィルタのトレース取得シーケンスを次の図に示します。なお，図中の番号（トレース1など）は，「表9‒3　HTTPリクエストおよびサーブレット・フィルタのトレースの一覧」と対応しています。

図9‒2　HTTPリクエストおよびサーブレット・フィルタのトレース取得シーケンス（同期リクエスト）

図9‒3　HTTPリクエストおよびサーブレット・フィルタのトレース取得シーケンス（非同期リクエスト）

9.7　HTTPセッションのトレース

HTTPセッションのトレース情報が取得されます。HTTPセッションのトレースの一覧を次の表に示します。

表9‒4　HTTPセッションのトレースの一覧

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

0xe250

HTTPセッションが作成された直後

FINE

0

-

セッションID

0xe251

HTTPセッションが無効にされる直前

FINE

0

-

セッションID

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.8　JAX-RSクライアントのトレース

JAX-RSクライアントのトレース情報が取得されます。Eclipse Jersey 2.x系を使用する場合は，自動的にトレース情報が取得されます。一方で，Eclipse Jersey 2.x系以外のJAX-RSクライアントを使用する場合は，ユーザプログラムを変更する必要があります。ユーザプログラムの変更については，「9.2　トレース機能のセットアップ方法」を参照してください。

JAX-RSクライアントのトレースの一覧を次の表に示します。

表9‒5　JAX-RSクライアントのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース1

0xe260

JAX-RSクライアントでHTTPリクエストが発行される前

FINE

0

HTTPメソッド

エンドポイントURI※2

トレース2

0xe261

JAX-RSクライアントでHTTPリクエストが発行され，HTTPレスポンスを受け取ったあと※1

FINE

0

HTTPメソッド

エンドポイントURI※2

注※1

HTTPレスポンスを受け取らなかった場合は，トレースを取得しません。

注※2

URIにパスワードなどの機密情報が含まれていないことを確認してください。

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

トレース取得シーケンス

JAX-RSクライアントのトレース取得シーケンスを次の図に示します。なお，図中の番号（トレース1など）は，「表9‒5　JAX-RSクライアントのトレースの一覧」と対応しています。

図9‒4　JAX-RSクライアントのトレース取得シーケンス

9.9　Tomcat JDBC Connection Poolのトレース

Tomcat JDBC Connection Poolに関しては，次のトレース情報が取得されます。

javax.sql.DataSourceインターフェイス

java.sql.Connectionインターフェイス

java.sql.Statementのインターフェイス

java.sql.PreparedStatementインターフェイス

java.sql.CallableStatementインターフェイス

それぞれのトレースについて，説明します。

9.9.1　javax.sql.DataSourceインターフェイスのトレース

javax.sql.DataSourceインターフェイスのトレースの一覧を次の表に示します。

表9‒6　javax.sql.DataSourceインターフェイスのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース1

0xe270

javax.sql.DataSource.getConnectionメソッドの呼び出しでコネクション取得に成功した直後

FINE

0

-

コネクションID※

（凡例）

-：出力なし

注※

物理コネクションオブジェクトのハッシュコードを16進数で表記した文字列を示します。

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.9.2　java.sql.Connectionインターフェイスのトレース

java.sql.Connectionインターフェイスのトレースの一覧を次の表に示します。

表9‒7　java.sql.Connectionインターフェイスのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース2

0xe271

java.sql.Connection.closeメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe272

java.sql.Connection.closeメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe273

java.sql.Connection.commitメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe274

java.sql.Connection.commitメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe275

java.sql.Connection.rollbackメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe276

java.sql.Connection.rollbackメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe277

java.sql.Connection.createStatementメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe278

java.sql.Connection.createStatementメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe279

java.sql.Connection.prepareCallメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe27a

java.sql.Connection.prepareCallメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe27b

java.sql.Connection.prepareStatementメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

コネクションID

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe27c

java.sql.Connection.prepareStatementメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.9.3　java.sql.Statementのインターフェイスのトレース

java.sql.Statementインターフェイスのトレースの一覧を次の表に示します。

表9‒8　java.sql.Statementインターフェイスのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース2

0xe280

java.sql.Statement.executeメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe281

java.sql.Statement.executeメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe282

java.sql.Statement.executeBatchメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe283

java.sql.Statement.executeBatchメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe284

java.sql.Statement.executeQueryメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe285

java.sql.Statement.executeQueryメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe286

java.sql.Statement.executeUpdateメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe287

java.sql.Statement.executeUpdateメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.9.4　java.sql.PreparedStatementインターフェイスのトレース

java.sql.PreparedStatementインターフェイスのトレースの一覧を次の表に示します。

表9‒9　java.sql.PreparedStatementインターフェイスのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース2

0xe290

java.sql.PreparedStatement.executeメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe291

java.sql.PreparedStatement.executeメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe292

java.sql.PreparedStatement.executeBatchメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe293

java.sql.PreparedStatement.executeBatchメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe294

java.sql.PreparedStatement.executeQueryメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe295

java.sql.PreparedStatement.executeQueryメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe296

java.sql.PreparedStatement.executeUpdateメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe297

java.sql.PreparedStatement.executeUpdateメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.9.5　java.sql.CallableStatementインターフェイスのトレース

java.sql.CallableStatementインターフェイスのトレースの一覧を次の表に示します。

表9‒10　java.sql.CallableStatementインターフェイスのトレースの一覧

シーケンス図との対応

イベントID

トレース取得ポイント

取得レベル

リターンコード（Rc）

インターフェイス名（INT）

オペレーション情報（OPR）

トレース2

0xe2a0

java.sql.CallableStatement.executeメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe2a1

java.sql.CallableStatement.executeメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターンの場合：例外クラス名

トレース2

0xe2a2

java.sql.CallableStatement.executeBatchメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe2a3

java.sql.CallableStatement.executeBatchメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターン：例外クラス名

トレース2

0xe2a4

java.sql.CallableStatement.executeQueryメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe2a5

java.sql.CallableStatement.executeQueryメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターン：例外クラス名

トレース2

0xe2a6

java.sql.CallableStatement.executeUpdateメソッドを呼び出す前

FINE

0

メソッド引数のシグネチャ

-

正常リターンの場合：トレース3

例外リターンの場合：トレース4

0xe2a7

java.sql.CallableStatement.executeUpdateメソッドからリターンするとき

FINE

正常リターンの場合：0

例外リターンの場合：1

メソッド引数のシグネチャ

正常リターンの場合：空文字（""）

例外リターン：例外クラス名

（凡例）

-：出力なし

トレース機能で取得された情報は，Tomcatトレースログに出力されます。詳細は，「14.4.1　Tomcatトレースログ」を参照してください。

9.9.6　Tomcat JDBC Connection Poolのトレース取得シーケンス

Tomcat JDBC Connection Poolのトレース取得シーケンスを次の図に示します。なお，図中の番号（トレース1など）は，次の表と対応しています。

表9‒6　javax.sql.DataSourceインターフェイスのトレースの一覧

表9‒7　java.sql.Connectionインターフェイスのトレースの一覧

表9‒8　java.sql.Statementインターフェイスのトレースの一覧

表9‒9　java.sql.PreparedStatementインターフェイスのトレースの一覧

表9‒10　java.sql.CallableStatementインターフェイスのトレースの一覧

図9‒5　Tomcat JDBC Connection Poolのトレース取得シーケンス

9.10　ユーザ作成スレッドおよび非同期処理API利用上の注意事項

「9.6　HTTPリクエストおよびサーブレット・フィルタのトレース」で示した，アプリケーション情報の引き継ぎまたは採番をしたスレッド外で，トレース情報を取得した場合の注意事項を示します。

ユーザ作成スレッド上でトレースを取得する場合

スレッド作成元にアプリケーション情報が設定されている場合，アプリケーション情報を引き継いで取得します。スレッド作成時点のアプリケーション情報を引き継ぐため，リクエスト処理が完了済みでも，スレッド作成時点のリクエストに対応するアプリケーション情報を取得します。

javax.servlet.AsyncContextのstartメソッドに指定している，java.lang.Runnableを実装したオブジェクトのrunメソッド上でトレースを取得する場合

アプリケーション情報を引き継ぎません。クライアントアプリケーション情報およびルートアプリケーション情報を情報なし（0.0.0.0，0，0x0000000000000000）として扱います。

なお，「HTTPリクエストおよびサーブレット・フィルタのトレース（0xe230～0xe241）」については，非同期リクエストモードに変更した（javax.servlet.ServletRequest.startAsyncメソッドを呼び出した）場合も正しいアプリケーション情報を取得します。

10　稼働監視機能

この章では，稼働監視機能の概要と，必要な設定について説明します。

10.1　稼働監視機能の概要

Tomcat自身にリクエストを試行するPull型のヘルスチェックでは，Tomcat自身がスローダウンやハングアップを起こしていると，障害発生の検知が遅れてしまうことがあります。本製品の稼働監視機能ではヘルスチェックを代行するほか，Push型での障害通知ができます。この障害通知によって，エラーレートの低減や，素早い障害対策が図れるようになります。

稼働監視機能では，各監視項目が障害発生時などに発行するイベントを監視することで，次の問題を把握できます。

本製品に関する設定の誤り

Tomcatサーバプロセスの起動失敗

Tomcatサーバプロセスのハングアップ・スローダウン

また，イベント検知時に次の処理を実行させることもできます。

スナップショットログ収集処理

Tomcatサーバプロセス停止処理のトリガー

ユーザコマンド実行（事前に定義されている場合）

この節では，稼働監視機能の位置づけ，稼働監視機能の概要（監視項目，検知したイベントに対するアクション），および稼働監視機能の検知内容の出力（イベントプロパティ）を説明します。

10.1.1　稼働監視機能の位置づけ

稼働監視機能は，Tomcatプロセスモニタが起動する稼働監視コンポーネントとして動作します。そして，Tomcatプロセスモニタが起動するTomcatサーバプロセスを稼働監視します。

稼働監視機能の位置づけを次の図に示します。

図10‒1　稼働監視機能の位置づけ

図中の番号について次に説明します。

稼働監視機能は，Tomcatサーバプロセスと，Tomcatプロセスモニタ上で起動する稼働監視コンポーネントとの間で通信を実行して，各種イベントを検知します。これによって，ヘルスチェックやハートビート監視などの機能を実現します。

稼働監視機能では，イベントを検知した際に対応する動作（アクション）を定義できます。アクションとして，「クラウドまたはコンテナ管理基盤に情報を通知する処理」を実行するユーザコマンドを定義すれば，クラウドまたはコンテナ管理基盤に情報を通知できます。稼働監視機能で検知したイベントはログに出力されます。出力されたログは，スナップショットログとして収集されます。

10.1.2　稼働監視機能の概要

稼働監視機能が持つ監視項目の種類について説明します。また，監視によってイベントを検知した場合に実行させるアクションの種類についても説明します。

(1)　稼働監視機能の監視項目

稼働監視機能の監視項目の種類を次に示します。設定方法などの詳細については，該当する項を参照してください。

表10‒1　稼働監視機能の監視項目の種類

監視項目

概要

設定方法の説明個所

プロセスの起動監視

Tomcatサーバプロセスの起動が成功したかどうかを監視します。

Tomcatサーバプロセス起動失敗時のスナップショットログ収集によって，失敗要因の解析・特定を容易にする目的があります。

10.3.1

ハートビート監視

Tomcatサーバプロセスのハングアップを監視します。

Tomcatサーバプロセス側からの定期的なハートビート送信によって，TomcatサーバプロセスへのHTTPリクエストによるヘルスチェックよりも迅速に障害検知し，素早い障害対策を図る目的があります。

10.3.2

プロセス生存監視

Tomcatサーバプロセスの生存状況を監視します。

Tomcatサーバプロセスが異常終了した場合，スナップショットログが収集される前にユーザコマンドを実行することで，素早い障害対策を図る目的があります。

10.3.3

ヘルスチェック

TomcatのHTTPリクエスト受付のヘルスチェックをします。

障害検知時のスナップショットログ収集によって，障害要因の解析・特定を容易にする目的があります。

10.3.4

リクエスト処理の停滞監視

TomcatのHTTPリクエスト処理のスローダウン・ハングアップを監視します。

Tomcatサーバプロセス側からの定期的なリクエスト処理スレッド情報の送信によって，リクエスト処理のスローダウン・ハングアップを迅速に検知し，素早い障害対策を図る目的があります。

10.3.5

(2)　稼働監視で検知したイベントに対するアクション

イベントを検知した場合の動作は，監視項目ごとの設定によって異なります。

稼働監視でイベントを検知すると，ログを出力し，定義されたアクションを実行します。定義できるアクションには次の種類があり，複数選択することもできます。

スナップショットログ収集

Tomcatサーバプロセス停止

ユーザコマンドの実行

障害を検知した場合，あらかじめ指定したコマンドを実行させることで，情報通知ができます。ユーザコマンドの設定については，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」を参照してください。

ユーザコマンドを実行する場合は，ほかのアクションはユーザコマンドの実行終了後に実行されます。

10.1.3　稼働監視機能の検知内容の出力（イベントプロパティ）

稼働監視コンポーネントが各機能の監視時に検知した内容は，イベントプロパティとしてJSON形式で出力されます。

イベントプロパティは，メッセージログのKDLR20225-Iメッセージに出力されます。文字コードはUTF-8です。

「10.3　稼働監視機能の設定（監視項目）」で記述するイベントプロパティの，記述形式について次に説明します。

この章ではイベントプロパティを複数行で記載しますが，本製品のログの出力として使う場合は，1行となります。

<>で説明を付記している場合は，出力される文字列の一例を示しています。

timestamp属性については，出力される日付時刻のパターン文字列で表しています。

succeeded属性がfalseの例しかない項目の成功イベントについては，形式は同一で，succeeded属性がtrueとなります。

10.2　稼働監視機能の設定（基本項目）

稼働監視機能は次の2つによって動作します。

本製品の稼働監視コンポーネント

Tomcatプロセスモニタ機能を適用することで起動します。

Tomcatサーバプロセスから稼働監視コンポーネントへの通信に関する設定は，Tomcatプロセスモニタで変更できます。

稼働監視用ライフサイクルリスナー

Tomcatサーバプロセスに設定します。

この節では，これらの動作に関する設定について記載します。

10.2.1　Tomcatプロセスモニタ側の設定

稼働監視コンポーネントは，Tomcatプロセスモニタを起動することで開始します。

Tomcatプロセスモニタの適用と起動については，「8.2　Tomcatプロセスモニタ機能の適用方法」を参照してください。

なお，Tomcatサーバプロセスから稼働監視コンポーネントへのHTTP通信に関して，次に示すタイムアウト時間を変更できます。変更はconfig.properties（本製品の設定ファイル）で実施します。

接続タイムアウト時間

読み込みタイムアウト時間

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.rest.connecttimeout=3000
healthcheck.rest.readtimeout=10000

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

これらのタイムアウトは，TomcatプロセスモニタのHTTP機能の受付ポートへの通信障害や，稼働監視コンポーネントでの処理遅延などによって，発生する場合があります。そのため，TomcatプロセスモニタとTomcatサーバプロセスの通信環境を考慮して，適切な時間を設定してください。デフォルト値は，一般的な環境を想定したタイムアウト時間が設定されています。

ヒント

タイムアウト時間の設定に関する注意点を次に示します。

タイムアウト時間を長く設定すると，Tomcatプロセスモニタ自体の障害の検知が遅れることがあります。

タイムアウト時間を短く設定し過ぎると，Tomcatサーバプロセス側からの本来の障害通知の前に，Tomcatプロセスモニタ側の障害と誤検知することがあります。

10.2.2　Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定

稼働監視機能では，稼働監視用にライフサイクルリスナーを提供します。

稼働監視用ライフサイクルリスナーは，次の個所に設定します。

項目

説明

設定対象のファイル

server.xml（Tomcatのサーバ設定ファイル）※1

設定する要素

com.cosminexus.appruntime.tomcat.healthcheck.MonitoringListener※2

注※1

server.xml（Tomcatのサーバ設定ファイル）の記述方法については，Tomcatのドキュメントを参照してください。

本製品を使用するためserver.xml（Tomcatのサーバ設定ファイル）に追加が必要な要素については，「13.5　server.xml（Tomcatのサーバ設定ファイル）」を参照してください。

注※2

Serverコンポーネントに設定します。設定個所はListener要素のclassName属性です。

設定する要素について次に説明します。

com.cosminexus.appruntime.tomcat.healthcheck.MonitoringListener

Tomcatサーバプロセス起動時に，稼働監視に必要な情報を稼働監視コンポーネントに送信します。また，停滞検出バルブで検出したリクエスト停滞情報を稼働監視コンポーネントに送信します。

このListenerはServer要素にだけネストすることができます。このListener要素にclassName属性以外の属性はありません。

リクエスト停滞情報および停滞検出バルブについては，「10.3.5　リクエスト処理の停滞監視」を参照してください。

設定例を次に示します。

<Server ...>
  ...
  <Listener className="com.cosminexus.appruntime.tomcat.healthcheck.MonitoringListener"
 ... />
  ...
</Server>

10.3　稼働監視機能の設定（監視項目）

監視項目ごとに，検知できる内容と，設定できる内容を説明します。

10.3.1　プロセスの起動監視

プロセスの起動監視は，Tomcatサーバプロセスの起動が成功したかどうかを監視します。

Tomcatサーバプロセスの起動時に，次の理由で稼働監視が継続できないと判断した場合，Tomcatサーバプロセス起動時のエラーとして検知します。

Tomcatサーバプロセス初期化完了通知待ちタイムアウトが発生した場合

スナップショットで，Tomcatサーバプロセスが出力するログを収集する設定ができていない場合

Tomcatサーバプロセス開始完了通知待ちタイムアウトが発生した場合

これらのエラー発生時の動作と，エラーを検知するための設定について次に説明します。

(1)　Tomcatサーバプロセス初期化完了通知待ちタイムアウト

Tomcatサーバプロセス初期化完了通知待ちタイムアウトとは，Tomcatプロセスモニタ起動後，Tomcatサーバプロセス起動前の稼働監視コンポーネント開始時から，Tomcatサーバプロセス初期化完了通知を受信するまでにタイムアウトが発生することを指します。

この場合，ライフサイクルリスナーが正常に登録されていないため，Tomcatサーバプロセス側からの通知ができないと判断されます。この際，メッセージKDLR20208-Eを出力します。エラーを検知した場合は，「10.2.2　Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定」の設定を見直してください。

(a)　障害検知時の動作

Tomcatサーバプロセス初期化完了通知待ちタイムアウトが発生した場合，障害検知後のアクションとして，次のように動作します。

スナップショットログを収集します。

Tomcatサーバプロセスが起動済みであればTomcatサーバプロセスを停止します。

これ以外のアクション（ユーザコマンドの指定を含む）を定義することはできません。

(b)　設定できる内容

Tomcatサーバプロセス初期化完了通知タイムアウト時間を変更することで，タイムアウト時間を設定できます。

config.properties（本製品の設定ファイル）に，稼働監視コンポーネントを開始してからのタイムアウト時間をミリ秒単位で指定します。0を指定した場合はタイムアウトしません。

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.initdelay.timeout=60000

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(2)　Tomcatサーバプロセスが出力するログをスナップショットログで収集する設定の妥当性

Tomcatサーバプロセス起動前の稼働監視コンポーネント開始時に，本製品はcommon.base※とsnapshot.include.paths※で指定されたディレクトリから更新チェック用ログファイルを探し，ファイルの状態を確認します。更新チェック用ログファイルの本製品のデフォルトのファイル名はcatalina.*.logです。ファイルにアクセスできない場合は，メッセージKDLR20206-Eを出力します。

注※

common.base，およびsnapshot.include.pathsは，config.properties（本製品の設定ファイル）のプロパティです。common.baseについては「(1)　本製品全体に関するプロパティ」を，snapshot.include.pathsについては「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

Tomcatサーバプロセス初期化完了通知を受信した時に，更新チェック用ログファイルの内容に変更が発生していなかった場合，スナップショットで正常にTomcatログ（Tomcatサーバプロセスが出力するログ）を収集する設定ができていないと判断し，エラーが発生します。この際，メッセージKDLR20207-Eを出力します。エラーを検知した場合は，「12.　スナップショットログ収集機能」に示す設定を見直してください。

(a)　障害検知時の動作

スナップショットでログ収集が正しく設定されていない場合，障害検知後のアクションとして，次のように動作します。

スナップショットログを収集します。

Tomcatサーバプロセスが起動済みであれば，Tomcatサーバプロセスを停止します。

これ以外のアクション（ユーザコマンドの指定を含む）を定義することはできません。

(b)　設定できる内容

更新チェックに使用するログファイルをconfig.properties（本製品の設定ファイル）にglob形式で設定することで，エラーを検知できます。

該当するプロパティの設定形式を次に示します。ログファイル名パターンのデフォルト値は「catalina.*.log」です。

healthcheck.unchangedlogfile.logfilename.glob=<ログファイル名パターン>

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(3)　Tomcatサーバプロセス開始完了通知待ちタイムアウト

「Tomcatサーバプロセス開始完了通知待ちタイムアウト」とは，Tomcatサーバプロセス初期化完了通知を受信してから，Tomcatサーバプロセス開始完了通知を受信するまでにタイムアウトが発生することを指します。この場合，Tomcatサーバプロセスの起動に失敗したと判断されます。この際，メッセージKDLR20209-Eを出力します。

Tomcatサーバプロセス開始完了通知待ちタイムアウトが発生すると，次に示すJSON形式のイベントプロパティが出力されます。

{
 "type": "startdelay",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false
}

(a)　障害検知時の動作

Tomcatサーバプロセス開始完了通知待ちタイムアウトが発生した場合，障害検知後のアクションとして，次のように動作します。

スナップショットログを収集します。

Tomcatサーバプロセス開始完了通知待ちをリトライします。

最大リトライ回数分のタイムアウトが発生した場合は，スナップショットログを収集してTomcatサーバプロセスを停止します。

デフォルトの設定では，1分経過するたびにスナップショットログを収集し，5分経過でTomcatサーバプロセスを停止します。設定の変更方法については，「(b)　設定できる内容」を参照してください。

(b)　設定できる内容

Tomcatサーバプロセス開始完了通知待ちタイムアウトに関して設定できる内容を次に示します。

Tomcatサーバプロセス開始完了通知待ちタイムアウト時間の変更

Tomcatサーバプロセス開始完了通知待ちタイムアウト時間を変更することで，タイムアウトまでの時間を調整できます。

config.properties（本製品の設定ファイル）に，Tomcatサーバプロセス初期化完了通知を受信してからのタイムアウト時間をミリ秒単位で指定します。0を指定した場合はタイムアウトしません。

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.startdelay.timeout=60000

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

障害検知時の動作の変更

障害検知時の動作のうち，次の項目をconfig.properties（本製品の設定ファイル）で変更できます。

ユーザコマンドの実行

ユーザコマンドを定義する場合は，別途「10.4　稼働監視機能の設定（ユーザコマンドの実行）」の定義が必要です。

最大リトライ回数

スナップショットログの収集有無

Tomcatサーバプロセスの停止有無

該当するプロパティと設定例を次に示します。この例では，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」で設定する「ユーザコマンド定義のID」として，「exec1」を設定しています。

healthcheck.startdelay.actions.failure.usercommand.idrefs.1=exec1
healthcheck.startdelay.actions.failure.retrymax=4
healthcheck.startdelay.actions.failure.snapshot=true
healthcheck.startdelay.actions.afterretry.terminate=true

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

なお，healthcheck.startdelay.actions.afterretry.terminateをfalseに変更した場合は，最大リトライ回数分のタイムアウトが発生したあとでも，次の状態となります。

Tomcatサーバプロセスが停止しない

Tomcatプロセスモニタが動作中

そのため，「Tomcatサーバプロセス開始完了」の状態にならないことがTomcatサーバプロセスが出力するログなどから分かっている場合には，明示的にTomcatプロセスモニタを停止する必要があります。一方，最大リトライ回数分のタイムアウトが発生したあとに稼働監視コンポーネントがTomcatサーバプロセス開始完了通知を受信できた場合には，通常どおり稼働監視を継続します。

10.3.2　ハートビート監視

稼働監視コンポーネントは，Tomcatサーバプロセスから定期的に送信されるハートビートを監視し，ハートビート待ちタイムアウトが発生するかどうかによって，Tomcatサーバプロセスのハングアップを監視できます。

(1)　障害発生の判定基準

ハートビート待ちタイムアウトの計測を開始してから，Tomcatサーバプロセスからのハートビートを受信できなかった場合，障害発生と判定します。

詳細な状態は次のとおりです。

表10‒2　ハートビートの監視状態とその説明

状態

説明

初期状態

Tomcatサーバプロセスからの開始完了通知受信時にハートビート待ちタイムアウトの計測を開始します。

正常状態

毎回のハートビート受信時にプロセスは正常に稼働していると判定し，ハートビート待ちタイムアウトをリセットして計測を開始します。プロセスが正常に稼働していると判定している間は，イベントは発行しません。

異常状態

ハートビート待ちタイムアウトが発生した場合，障害発生と判定し，メッセージKDLR20223-Wを出力して障害イベントを1回発行します。

その後，ハートビートを受信した場合は障害の回復と判定し，メッセージKDLR20224-Iを出力し回復イベントを1回発行して正常状態に戻ります。

障害イベント・回復イベントの発行時に出力されるイベントプロパティと，イベント検知後のアクションについては，「(2)　障害検知時の動作」を参照してください。

(2)　障害検知時の動作

(a)　障害検知時に出力されるイベントプロパティ

障害イベント・回復イベントの発行時には，JSON形式のイベントプロパティを出力します。障害イベントの例を次に示します。

{
 "type": "heartbeatdelay",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false
}

(b)　障害検知後のアクション

障害イベントの通知を受けた場合，デフォルトでは次のアクションを実行します。

スナップショットログを収集します。

Tomcatサーバプロセスの停止指示は出さないで処理を続行します。

アクションの変更方法については「(b)　障害イベント・回復イベントの通知後の動作」を参照してください。

(3)　設定できる内容

ハートビート監視では，Tomcatサーバプロセスから定期的に送信されるハートビートを監視します。ハートビートの送信は，「10.2.2　Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定」で設定したライフサイクルリスナーによって実施されます。

ハートビート監視に関して設定できる内容を次に示します。

(a)　ハートビートの監視設定

Tomcatプロセスモニタのconfig.properties（本製品の設定ファイル）で次の項目を設定できます。

Tomcatプロセスモニタ側のハートビート監視の有効／無効

Tomcatプロセスモニタ側のハートビート待ちタイムアウト時間

Tomcatサーバプロセス側のハートビート送信間隔

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.heartbeatdelay.enabled=true
healthcheck.heartbeatdelay.timeout=60000
healthcheck.heartbeat.interval=10000

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(b)　障害イベント・回復イベントの通知後の動作

障害イベント・回復イベントの通知後の動作は，次の項目を組み合わせてconfig.properties（本製品の設定ファイル）で指定できます。

ユーザコマンドの実行

ユーザコマンドを定義する場合は，別途「10.4　稼働監視機能の設定（ユーザコマンドの実行）」の定義が必要です。

スナップショットログの収集有無

Tomcatサーバプロセスの停止有無

回復イベントの通知時にアクションを実行する場合で，そのアクション実行時間がhealthcheck.heartbeat.intervalで指定したインターバルを超えるとき，次のハートビート送信が遅れることがあります。

該当するプロパティと設定例を次に示します。この例では，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」で設定する「ユーザコマンド定義のID」として，「exec1」「exec2」を設定しています。

healthcheck.heartbeatdelay.actions.failure.usercommand.idrefs.1=exec1
healthcheck.heartbeatdelay.actions.failure.snapshot=true
healthcheck.heartbeatdelay.actions.failure.terminate=false
healthcheck.heartbeatdelay.actions.recovery.usercommand.idrefs.1=exec2

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

10.3.3　プロセス生存監視

プロセス生存監視は，修正パッチの適用後に使用できる機能です。プロセス生存監視では，Tomcatサーバプロセスの生存状況を監視し，Tomcatサーバプロセスが異常終了した場合には，ユーザコマンドを実行します。

Tomcatサーバプロセスの生存状況が監視されている場合，次の順序で動作します。

Tomcatサーバプロセスが障害によって異常終了したとTomcatプロセスモニタが判定する。

スナップショットログを収集する。

Tomcatプロセスモニタが終了する。

この場合，主にスナップショットログ収集に掛かる時間の分，Tomcatプロセスモニタの終了が遅れます。例えば，Tomcatプロセスモニタの終了後にロードバランサからのリクエストを閉塞する場合，スナップショットログ収集に掛かる時間の分，閉塞の開始が遅れます。

稼働監視機能のプロセス生存監視では，Tomcatサーバプロセスの異常を検知した場合，スナップショットログが収集される前にユーザコマンドを実行します。動作の順序を次に示します。

Tomcatサーバプロセスの生存状況を監視することで，Tomcatサーバプロセスの異常終了を検知する。

ユーザコマンドを実行する。

スナップショットログを収集する。

Tomcatプロセスモニタが終了する。

このように，プロセス生存監視によって，Tomcatプロセスモニタの終了を待つことなく，必要な処理を開始できます。

(1)　障害発生の判定基準

Tomcatサーバプロセスの停止処理の実行時，次の場合に障害が発生したと判定します。

稼働監視機能を起因とする停止要求ではない場合，かつ，Tomcatサーバプロセスの終了ステータスが障害発生を示す値であった場合

稼働監視機能を起因とする停止要求ではない場合，かつ，Tomcatサーバプロセスがプロセス終了待ちタイムアウト時間内に終了しなかった場合

Tomcatサーバプロセスの終了ステータスの値，およびプロセス終了待ちタイムアウト時間は，config.properties（本製品の設定ファイル）で指定します。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(2)　障害検知時の動作

(a)　障害検知時に出力されるイベントプロパティ

Tomcatサーバプロセスの異常終了を検知した時は，次のJSON形式のイベントプロパティを出力します。

イベントプロパティ（Tomcatサーバプロセスが終了した場合）

{
 "type": "shutdown",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false,
 "exitstatus": 137<Tomcatサーバプロセスの終了ステータスの値>
}

イベントプロパティ（Tomcatサーバプロセスがプロセス終了待ちタイムアウト時間内に終了しなかった場合）

{
 "type": "shutdown",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false
}

(b)　障害検知後のアクション

Tomcatサーバプロセスの障害発生を検知した場合，ユーザが定義したコマンドを実行します。コマンドを定義する方法については，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」を参照してください。

(3)　設定できる内容

config.properties（本製品の設定ファイル）で，次の項目を設定できます。

Tomcatサーバプロセスの異常終了時に，ユーザコマンドを実行する終了ステータスの値

Tomcatサーバプロセスの異常終了検知時に実行するコマンド

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

該当するプロパティと設定例を次に示します。この例では，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」で設定する「ユーザコマンド定義のID」を「exec1」としています。

healthcheck.shutdown.enabled=true
healthcheck.shutdown.actions.failure.condition=ERROR
healthcheck.shutdown.actions.failure.usercommand.idrefs.1=exec1

10.3.4　ヘルスチェック

TomcatのHTTPリクエスト受付のヘルスチェックを実施できます。

稼働監視コンポーネントからOPTIONSメソッドによるヘルスチェックHTTPリクエストを送信することで，ヘルスチェックを実施します。

(1)　障害発生の判定基準

ヘルスチェックHTTPリクエストによる通信に失敗した場合，およびエラーステータスコードが返ってきた場合，障害発生と判定します。

詳細な状態は次のとおりです。

表10‒3　ヘルスチェックの状態とその説明

状態

説明

初期状態

Tomcatサーバプロセスからの開始完了通知受信時にヘルスチェックHTTPリクエストの送信を開始します。

正常状態

ヘルスチェックの結果，ステータスコードの値が400未満のHTTPレスポンスを受信した場合，ヘルスチェック成功と判定します。ヘルスチェック成功と判定している間は，イベントは発行しません。

異常状態

次の状態を障害発生と判定し，障害の種類に応じた障害イベントを1回発行します。

ヘルスチェックHTTPリクエストで接続失敗（接続タイムアウト発生を含む）やデータ送受信失敗（読み込みタイムアウト発生を含む）をした場合。この際，タイムアウトの場合はメッセージKDLR20216-Wを，タイムアウト以外の通信失敗の場合はメッセージKDLR20214-Wをそれぞれ出力します。

ステータスコードの値が400以上のHTTPレスポンスを受信した場合。この際，メッセージKDLR20215-Wを出力します。

その後，ステータスコードの値が400未満のHTTPレスポンスを受信した場合は，障害の回復と判定し，メッセージKDLR20218-Iを出力し回復イベントを1回発行して正常状態に戻ります。

障害イベント・回復イベントの発行時に出力されるイベントプロパティと，イベント検知後のアクションについては，「(2)　障害検知時の動作」を参照してください。

(2)　障害検知時の動作

(a)　障害検知時に出力されるイベントプロパティ

障害イベント・回復イベントの発行時には，JSON形式のイベントプロパティを出力します。

ヘルスチェックの結果に応じて，出力するイベントプロパティは次のように異なります。

イベントプロパティ（接続失敗またはデータ送受信失敗）

{
 "type": "httprequest",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false,
 "port": 8080<リクエスト先のポート番号>,
 "virtualhost": "127.0.0.1",
 "method": "GET",
 "path": "*<Request-URIに指定するパス>",
 "errorkind": "connectfailure<エラー種別:connectfailureまたはiofailure>",
 "exceptionname": "xxx<発生した例外クラス名>",
 "exceptionmsg": "yyy<発生した例外メッセージ>"
}

イベントプロパティ（エラー応答）

{
 "type": "httprequest",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false,
 "port": 8080<リクエスト先のポート番号>,
 "virtualhost": "127.0.0.1",
 "method": "GET",
 "path": "*<Request-URIに指定するパス>",
 "errorkind": "errorresponse",
 "statuscode": 500<ヘルスチェックレスポンスのステータスコード>
}

成功イベントプロパティ

{
 "type": "httprequest",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": true,
 "port": 8080<リクエスト先のポート番号>,
 "virtualhost": "127.0.0.1",
 "method": "GET",
 "path": "*<Request-URIに指定するパス>",
 "statuscode": 200<ヘルスチェックレスポンスのステータスコード>
}

(b)　障害検知後のアクション

障害イベントの通知を受けた場合，デフォルトでは次のアクションを実行します。

スナップショットログを収集します。

Tomcatサーバプロセスの停止指示は出さないで処理を続行します。

アクションの変更方法については「(b)　障害イベント・回復イベントの通知後の動作」を参照してください。

(3)　設定できる内容

ヘルスチェックに関して設定できる内容を次に示します。

(a)　ヘルスチェックの監視設定

Tomcatプロセスモニタのconfig.properties（本製品の設定ファイル）で，次に示す項目を設定できます。

ヘルスチェックの有効／無効

ヘルスチェックのインターバル

ヘルスチェックHTTPリクエストのHTTP接続タイムアウト時間

ヘルスチェックHTTPリクエストのHTTP読み込みタイムアウト時間

該当するプロパティと設定例を次に示します。この例ではデフォルト値を記載しています。

healthcheck.httprequest.enabled=true
healthcheck.httprequest.check.default.interval=30000
healthcheck.httprequest.check.default.connecttimeout=3000
healthcheck.httprequest.check.default.readtimeout=10000

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(b)　障害イベント・回復イベントの通知後の動作

障害イベント・回復イベントの通知後の動作は，config.properties（本製品の設定ファイル）で変更できます。変更できる内容は次のとおりです。

ユーザコマンドの実行

ユーザコマンドを定義する場合は，別途「10.4　稼働監視機能の設定（ユーザコマンドの実行）」の定義が必要です。

スナップショットログの収集有無

Tomcatサーバプロセスの停止有無

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

なお，障害イベント・回復イベントの通知時にアクションを実行する場合は，そのアクション実行時間が経過したあとにhealthcheck.httprequest.check.default.intervalで指定したインターバルを空けて次のヘルスチェックHTTPリクエストを送信します。

該当するプロパティと設定例を次に示します。この例では，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」で設定する「ユーザコマンド定義のID」として，「exec1」「exec2」を設定しています。

接続失敗の検知の場合

healthcheck.httprequest.actions.connectfailure.usercommand.idrefs.1=exec1
healthcheck.httprequest.actions.connectfailure.snapshot=true
healthcheck.httprequest.actions.connectfailure.terminate=false

データ送受信失敗の検知の場合

healthcheck.httprequest.actions.iofailure.usercommand.idrefs.1=exec1
healthcheck.httprequest.actions.iofailure.snapshot=true
healthcheck.httprequest.actions.iofailure.terminate=false

レスポンスステータスコードによるエラー検知の場合

healthcheck.httprequest.actions.errorresponse.usercommand.idrefs.1=exec1
healthcheck.httprequest.actions.errorresponse.snapshot=true
healthcheck.httprequest.actions.errorresponse.terminate=false

回復イベントに対するユーザコマンドを定義する場合

healthcheck.httprequest.actions.recovery.usercommand.idrefs.1=exec2

10.3.5　リクエスト処理の停滞監視

リクエスト処理の停滞監視は，TomcatのHTTPリクエスト処理のスローダウン・ハングアップを監視します。

リクエスト処理の停滞を検知するには，リクエスト処理スレッドの停滞を検出する，次に示すTomcat標準のバルブ実装を定義します。このマニュアルでは停滞検出バルブと表記します。

org.apache.catalina.valves.StuckThreadDetectionValve

リクエスト処理の停滞を検知する方法について説明します。

(1)　障害発生の判定基準

停滞検出バルブからのリクエスト処理停滞通知を受信した場合，障害発生と判定します。

詳細な状態は次のとおりです。

表10‒4　リクエスト処理の停滞監視の状態とその説明

状態

説明

初期状態

Tomcatサーバプロセスからの開始完了通知受信時にリクエスト停滞検知の監視を開始します。

正常状態

Tomcatサーバプロセスから停滞検出バルブの情報を受け取り，停滞しているスレッドや停滞検知バルブによってインタラプトされたスレッドがない場合は正常と判定します。正常と判定している間は，イベントは発行しません。

異常状態

Tomcatサーバプロセスから停滞検出バルブの情報を受け取り，停滞しているスレッドや停滞検知バルブによってインタラプトされたスレッドの情報がある場合，障害発生と判定し，メッセージKDLR20220-Wを出力して障害イベントを1回発行します。すでに障害が発生しているスレッドとは異なるスレッドの情報がある場合は，そのたびに新しい障害発生と判定し，メッセージKDLR20220-Wは出力しないで障害イベントを発行します。

その後，停滞検出バルブの情報から，停滞しているスレッドも停滞検知バルブによってインタラプトされたスレッドもなくなった場合は，障害の回復と判定し，メッセージKDLR20221-Iを出力し回復イベントを1回発行して正常状態に戻ります。

障害イベント・回復イベントの発行時に出力されるイベントプロパティと，イベント検知後のアクションについては，「(2)　障害検知時の動作」を参照してください。

(2)　障害検知時の動作

(a)　障害検知時に出力されるイベントプロパティ

障害イベント・回復イベントの発行時には，JSON形式のイベントプロパティを出力します。

リクエスト処理の結果に応じて，出力するイベントプロパティは次のように異なります。

イベントプロパティ

{
 "type": "stuckthread",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": false,
 "objectName": "Catalina:context=/examples,host=localhost,name=StuckThreadDetectionValve,type=valve",
 "count": 2<停滞しているスレッド数>,
 "ids": [1000,1001]<停滞しているスレッドID>,
 "interruptedcount": 0<前回報告時から新たにinterruptされたスレッド数>
}

成功イベントプロパティ

{
 "type": "stuckthread",
 "timestamp": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
 "succeeded": true,
 "objectName": "Catalina:context=/examples,host=localhost,name=StuckThreadDetectionValve,type=valve"
}

(b)　障害検知後のアクション

稼働監視コンポーネントでリクエスト処理の停滞を検知した場合，スナップショットログを収集します。

アクションの変更方法については「(c)　障害イベント・回復イベントの通知後の動作」を参照してください。

(3)　設定できる内容

リクエスト処理の停滞監視に関して設定できる内容を次に示します。

(a)　Tomcat標準の停滞検出バルブの定義

リクエスト処理の停滞監視をする場合，停滞検出バルブは次の個所に設定します。

表10‒5　停滞検出バルブの設定項目

項目

説明

設定対象のファイル

server.xml（Tomcatのサーバ設定ファイル）※1

または

context.xml（Tomcatのコンテキスト設定ファイル）※1

設定する要素

org.apache.catalina.valves.StuckThreadDetectionValve※2

注※1

server.xml（Tomcatのサーバ設定ファイル）およびcontext.xml（Tomcatのコンテキスト設定ファイル）の記述方法については，Tomcatのドキュメントを参照してください。

server.xml（Tomcatのサーバ設定ファイル）に本製品独自に追加が必要な要素については，「13.5　server.xml（Tomcatのサーバ設定ファイル）」を参照してください。

context.xml（Tomcatのコンテキスト設定ファイル）に本製品独自に追加が必要な要素については，「13.6　context.xml（Tomcatのコンテキスト設定ファイル）」を参照してください。

注※2

Engine，HostまたはContextコンポーネントに設定します。

設定する要素について次に説明します。

org.apache.catalina.valves.StuckThreadDetectionValve

リクエスト処理の停滞を検知します。

停滞検出バルブを定義したコンポーネントのバックグラウンドスレッド実行（Tomcatのデフォルト：10秒間隔）によって，リクエスト処理の停滞の通知が実施されます。

リクエスト処理停滞と見なすしきい値（単位：秒）はValve要素に設定できます。Tomcatのデフォルトは600秒です。

停滞検出バルブの設定例を次に示します。

<Context>
  ...
  <Valve className="org.apache.catalina.valves.StuckThreadDetectionValve" .../>
  ...
</Context>

(b)　リクエスト処理停滞通知の監視設定

Tomcatプロセスモニタのconfig.properties（本製品の設定ファイル）で，停滞検出バルブからのリクエスト処理停滞通知を監視するかどうかを設定できます。

該当するプロパティと設定例を次に示します。デフォルトは無効（false）です。

healthcheck.stuckthread.enabled=false

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

(c)　障害イベント・回復イベントの通知後の動作

障害イベント・回復イベントの通知後の動作は，次の項目を組み合わせてconfig.properties（本製品の設定ファイル）で指定できます。

ユーザコマンドの実行

ユーザコマンドを定義する場合は，別途「10.4　稼働監視機能の設定（ユーザコマンドの実行）」の定義が必要です。

スナップショットログの収集

Tomcatサーバプロセスの停止

該当するプロパティと設定例を次に示します。この例では，「10.4　稼働監視機能の設定（ユーザコマンドの実行）」で設定する「ユーザコマンド定義のID」として，「exec1」「exec2」を設定しています。

healthcheck.stuckthread.actions.failure.usercommand.idrefs.1=exec1
healthcheck.stuckthread.actions.failure.snapshot=true
healthcheck.stuckthread.actions.failure.terminate=false
healthcheck.stuckthread.actions.recovery.usercommand.idrefs.1=exec2

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

10.4　稼働監視機能の設定（ユーザコマンドの実行）

稼働監視によって障害を検知した場合に，ユーザが定義したコマンドを実行させることができます。

ユーザコマンドは，稼働監視コンポーネントで管理するスレッドプールを使って，java.lang.ProcessBuilderによって実行します。クラウド・コンテナの管理インフラに情報を通知するコマンドを定義することで，情報通知ができます。

ユーザコマンドを定義するには，コマンドの内容とコマンドを実行するスレッドプールをconfig.properties（本製品の設定ファイル）に設定する必要があります。

設定できる項目は次のとおりです。

スレッドプールのサイズ

実行するコマンド

コマンドの引数

ユーザコマンドの標準出力をリダイレクトするファイルパス

ユーザコマンドの標準エラー出力をリダイレクトするファイルパス

該当するプロパティと設定例を次に示します。プロパティキーの「healthcheck.usercommand.defs.」の後ろに指定した<group-id>文字列がユーザコマンド定義のIDになります。この例では，「exec1」がユーザコマンド定義のIDです。

healthcheck.usercommand.threadpoolsize=10
healthcheck.usercommand.defs.exec1.command=senderrorCommand
healthcheck.usercommand.defs.exec1.args.1=param1
healthcheck.usercommand.defs.exec1.stdout.file.path=${common.base}/stdout.log
healthcheck.usercommand.defs.exec1.stderr.file.path=${common.base}/stderr.log

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

ユーザコマンド定義のIDは，各監視項目の障害検知時の動作のアクションとして複数指定できます。複数指定したユーザコマンドのうち，1つの実行に失敗した場合，そのユーザコマンドに失敗したことを示すメッセージKDLR20228-Eを出力して，次のコマンドの実行を継続します。スレッドプールはユーザコマンド全体で共有します。

11　統計情報出力機能

この章では，統計情報出力機能の概要と，必要な設定について説明します。

11.1　統計情報出力機能の概要

統計情報出力機能とは，次のような情報を確認できるログを定期的に出力することで，保守情報として使用する機能です。

メモリやCPUなどのリソースの利用状況

Webアプリケーションの負荷やリクエスト数

Tomcatプロセスモニタが起動するTomcatサーバプロセスを対象に，統計情報を取得しログを出力します。

統計情報出力機能では，Tomcatサーバプロセスにライフサイクルリスナーを設定して，定期的にTomcatサーバプロセスのMBeanサーバを参照します。MBeanサーバを参照することで統計情報を取得し，取得した情報を統計情報ログへ出力します。

統計情報出力機能の位置づけを次の図に示します。

図11‒1　本製品中の統計情報出力機能の位置づけ

11.1.1　統計情報出力機能の前提条件

統計情報出力機能の前提条件について説明します。

統計情報の取得方法

統計情報出力機能は，TomcatサーバプロセスのJMXを利用して統計情報を取得します。統計情報出力機能が有効な場合でも，Tomcatサーバプロセスの機能に影響を及ぼしてTomcatサーバプロセスの動作を遅延させることはありません。

データベースアクセスの統計情報

次の統計情報を出力できます。

javax.sql.DataSourceインターフェイス

Tomcat JDBC Connection Pool

11.2　統計情報出力機能のセットアップ方法

本製品をインストールしたあと，統計情報出力機能を有効にするために次の手順でセットアップを実施してください。

11.2.1　server.xml（Tomcatのサーバ設定ファイル）を編集する

${CATALINA_BASE}/conf/server.xmlファイルに記載されているServer要素の子要素として，次の内容を追記してください。

<Listener className="com.cosminexus.appruntime.tomcat.stats.JmxAgentListener" />

11.2.2　config.properties（本製品の設定ファイル）を編集する

統計情報ログのログ出力インターバルや統計情報ログの保存期間などの設定が必要な場合は，config.properties（本製品の設定ファイル）にプロパティを設定してください。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

11.3　統計情報出力機能のアンセットアップ方法

統計情報出力機能が不要になった場合，「11.2.1　server.xml（Tomcatのサーバ設定ファイル）を編集する」で実施した設定を元に戻してください。その後，config.properties（本製品の設定ファイル）に次のプロパティを設定してください。

stats.enabled=false

11.4　統計情報出力機能の開始と終了

統計情報出力機能の開始と終了について説明します。

Tomcatプロセスモニタの起動時，Tomcatプロセスモニタは統計情報出力機能を開始します。統計情報出力機能は，開始時に必要な設定情報を読み込みます。そのため，必要な設定情報が読み込めない場合は，エラーメッセージを出力し，Tomcatプロセスモニタを終了します。

TomcatプロセスモニタによるTomcatサーバプロセスの起動後，Tomcatサーバプロセスに設定するライフサイクルリスナーによって統計情報出力機能は動作します。Tomcatサーバプロセス上の統計情報出力機能は，必要な設定情報をTomcatプロセスモニタ上の統計情報出力機能に要求して取得します。そのため，要求した情報の取得に失敗した場合，エラーログを出力し，Tomcatプロセスモニタを終了します。

Tomcatプロセスモニタの終了時，統計情報出力機能も終了します。

11.5　統計情報出力機能のタイマースレッド

統計情報出力機能は，定期的に統計情報をMBeanサーバから取得してログ出力するためのタイマースレッドを作成します。ここでは，MBeanサーバから統計情報を取得する処理を「情報収集」と呼びます。

開始されたタイマースレッドは，一定間隔ごとに情報を収集して，カテゴリごとにログ出力を行います。統計情報ログを開けなかった場合はエラーログを出力し，エラーが起きたカテゴリを情報収集とログ出力の対象から除外します。情報収集とログ出力はTomcatサーバプロセス上で動作しますが，統計情報出力機能がTomcatサーバプロセスの動作に影響を及ぼして，Tomcatサーバプロセスの動作を遅延させることはありません。

なお，統計情報出力機能が終了すると，タイマースレッドも終了します。

統計情報出力機能のタイマースレッドと出力ファイルの関係を次の図に示します。

図11‒2　統計情報出力機能のタイマースレッドと動作

統計情報出力機能のタイマーの動作

統計情報出力機能のタイマーは，ログ出力のタイミングを決定するために動作します。

統計情報出力機能は，前回の情報収集の開始時刻からログ出力インターバルが経過していた場合にログ出力を行います。ログ出力インターバルは，config.properties（本製品の設定ファイル）のstats.log.intervalプロパティに指定した時間です。

統計情報出力機能のタイマーの動作イメージを次の図に示します。

図11‒3　統計情報出力機能のタイマーの動作のイメージ

統計情報出力機能のタイマーの高負荷時の動作

負荷が高くなり，情報収集とログ出力に掛かった時間がログ出力インターバルよりも長くなった場合は，ログ出力のあとすぐに次の情報収集を開始します。

統計情報出力機能のタイマーの高負荷時の動作イメージを次の図に示します。

図11‒4　統計情報出力機能のタイマーの高負荷時の動作のイメージ

統計情報出力機能のログ出力インターバルの分割時の動作

config.properties（本製品の設定ファイル）のstats.log.sampling-countプロパティには，ログ出力インターバル間の情報収集の回数を指定できます。統計情報ログのレコードに含まれる出力内容に，最大値または最小値を求めたい項目がある場合，指定を検討してください。最大値または最小値を求めたい出力内容が，統計情報ログのレコードに含まれる場合，タイマースレッドは情報収集インターバルごとに情報を収集します。そのため，stats.log.sampling-countプロパティの値を大きくすると取得する最大値または最小値の精度が高くなります。情報収集インターバルは，stats.log.intervalプロパティに指定したログ出力インターバルの時間を，stats.log.sampling-countプロパティに指定した回数で分割した時間になります。

ログ出力インターバルを分割する場合のタイマーの動作イメージを次の図に示します。

図11‒5　ログ出力インターバルを分割する場合のタイマーの動作のイメージ

情報を収集した統計情報は，ログ出力インターバルごとに，統計情報ログへ出力します。統計情報ログのフォーマットと出力例については，「14.4.3　統計情報ログ」を参照してください。

12　スナップショットログ収集機能

この章では，スナップショットログ収集機能の概要，収集方法，機密情報のマスキング，出力テスト，およびユースケース別の設定方法について説明します。

12.1　スナップショットログ収集機能の概要

スナップショットログ収集機能とは，障害を検知したときに，原因の解析に必要な保守情報（スナップショットログ）を一括で収集できる機能です。

障害が発生した場合は，原因の解析をサポートサービスに依頼するために，次の情報を収集する必要があります。

ログの情報

スレッドダンプの情報

実行環境の情報

スナップショットログ収集機能を利用すると，これらの情報を一括で自動収集できるため，迅速にサポートサービスへ問い合わせることができます。

また，この機能には，スナップショットログを自動収集する方法に加え，手動収集する方法も備わっています。手動収集では，次のどちらかを利用して任意のタイミングで情報を収集できます。

スナップショットログ収集コマンド

スナップショットログ収集REST API

そのため，サポートサービスに依頼するときだけでなく，自身で障害の原因を解析するときにも，この機能を利用できます。

スナップショットログ収集機能には，このほかにも次の機能があります。

収集対象のカスタマイズ

パスワードなどの機密情報のマスキング

障害発生時の，揮発性のある環境※1での情報の保持※2

注※1

コンテナ環境などを指します。

注※2

スナップショットログの出力先を永続化領域に指定する必要があります。

スナップショットログ収集時ユーザコマンド実行機能

12.2　スナップショットログの出力

スナップショットログの出力先，および出力形式について説明します。

12.2.1　スナップショットログの出力先

スナップショットログの出力先は，次のとおりです。

<snapshot.log.filepathの指定値>_<yyyy-MM-dd_HH-mm-ss.SSS>_<n>.zip

説明

「snapshot.log.filepath」は，config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

「yyyy-MM-dd_HH-mm-ss.SSS」は，時刻情報を示します。

「n」は，「何回目のスナップショットログ出力要求か」を表す通番※を示します。

注※

Tomcatプロセスモニタを起動するたびにリセットされます。

スナップショットログの出力先を変更したい場合は，「12.9.1　スナップショットログの出力先を変更したい場合」を参照してください。

12.2.2　スナップショットログの出力形式

スナップショットログ収集機能では，収集された情報（スナップショットログ）がzip形式で出力されます。スナップショットログのzipファイル内のパスの規則を次の表に示します。スナップショットログのzipファイルに含まれるファイルの詳細は，「12.3.1　ファイルによる情報の収集」および「12.3.2　コマンドの実行による情報の取得」を参照してください。

表12‒1　スナップショットログのzipファイル内のパスの規則

形式

zipファイル内のパス

備考

ファイル・ディレクトリ

絶対パスの先頭の「/」を除いた値（ルートディレクトリからの相対パス）

なし

アーカイブファイル内のファイル

アーカイブファイルの絶対パスの先頭の「/」を除いた値に，「_」およびアーカイブファイル内の絶対パスを加えた値※

アプリケーションをwar形式でデプロイしている場合，デプロイメント・ディスクリプタファイルが該当します。

注※

アーカイブファイルおよびアーカイブファイル中のパスに，URLの仕様によって使用できない文字を含む場合，パーセントエンコーディングされることがあります。

ファイル・ディレクトリの，zipファイル内のパスの例を次に示します。

収集ファイルの絶対パス

/var/log/messages

スナップショットログのzipファイル内のパス

var/log/messages

アーカイブファイル内の，zipファイル内のパスの例を次に示します。

アーカイブファイルの絶対パス

/var/tomcat/webapps/sample.war

アーカイブファイル内のファイルの絶対パス

/WEB-INF/web.xml

スナップショットログのzipファイル内のパス

var/tomcat/webapps/sample.war_/WEB-INF/web.xml

12.3　スナップショットログの収集対象

スナップショットログ収集機能で収集される情報を次の表に示します。表中の情報を収集できる場合，それらがスナップショットログに格納された状態で出力されます。

表12‒2　スナップショットログ収集機能の収集対象情報と収集方法

カテゴリ

収集対象情報

収集方法※

ホストマシン

OSバージョン情報

インストールPP情報

コマンド

定義情報

ファイル

環境変数

コマンド

ホストマシンのリソース使用状況

ログ（syslog）

ファイル

JavaVM

システムプロパティ

コマンド

ログ

ファイル

コアダンプ

スレッドダンプ

コマンド

Tomcat

バージョン情報

コマンド

定義情報

ファイル

標準出力・標準エラー出力

ログ

Tomcatサーバプロセスが出力するログファイル

独自ログファイル

JavaVMログ（日立JavaVMを使用している場合だけ）

トレース機能のログ

Webアプリケーション

定義情報

ファイル

ログ

Tomcatプロセスモニタ

バージョン情報

ファイル

定義情報

ログ

インストーラログ

メッセージログ

保守ログ

JavaVMログ（日立JavaVMを使用している場合だけ）

Tomcatサーバプロセス

統計情報出力ログ

ファイル

注※

収集方法が「コマンド」になっている収集対象情報は，本製品がOSのコマンドを実行することで取得されます。

収集方法が「ファイル」の場合の詳細は，「12.3.1　ファイルによる情報の収集」を参照してください。収集方法が「コマンド」の場合の詳細は，「12.3.2　コマンドの実行による情報の取得」を参照してください。

12.3.1　ファイルによる情報の収集

「表12‒2　スナップショットログ収集機能の収集対象情報と収集方法」で収集方法が「ファイル」になっている収集対象情報は，ファイルに含まれた状態で収集されます。ここでは，スナップショットログ収集機能で収集されるファイルについて説明します。

収集対象を変更したい場合は，「12.8.1　収集対象を変更したい場合」を参照してください。

重要

収集対象外のファイルは収集されません。また，収集対象および収集対象外の両方に当てはまるファイルは収集されません。例えば，snapshot.include.paths.<n>※とsnapshot.exclude.globs.<n>※にそれぞれ同じファイルを指定した場合は，そのファイルは収集されません。

注※

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

(1)　収集対象のパス

スナップショットログ収集機能の収集対象のパスを次の表に示します。glob形式で表記しています。

表12‒3　スナップショットログ収集機能の収集対象のパス

収集対象のパス（glob形式）

パスの説明

/etc/hosts

ホスト定義ファイルのパス

/var/log/messages*

syslogのパス

/var/log/syslog*

syslogのパス

${CATALINA_BASE}/bin/setenv.sh

Tomcatの環境設定スクリプトのパス

${CATALINA_HOME}/bin/setenv.sh

Tomcatの環境設定スクリプトのパス

${CATALINA_BASE}/conf

Tomcatの設定ディレクトリのパス

${CATALINA_HOME}/conf

Tomcatの設定ディレクトリのパス

<common.base※1の指定値>

ログ出力先ディレクトリのパス

<monitor.log.maintenance.filepath※1の指定値>*

Tomcatプロセスモニタの保守ログのパス

<monitor.log.message.filepath※1の指定値>*

Tomcatプロセスモニタのメッセージログのパス

<snapshot.include.paths.<n>※1の指定値>

追加で指定した収集対象のファイルのパス※2

<tracer.log.filepath※1の指定値>*

トレース機能のログのパス

${stats.log.filepath}*

統計情報ログのパス

<本製品のインストールディレクトリ>/internal/metrics-default.yaml

統計情報出力機能のリソースファイルのパス

（凡例）

*：ワイルドカードを示します。

注※1

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「13.2.4　指定可能なプロパティ」の各プロパティの説明を参照してください。

注※2

複数のパスを収集対象に指定できます。収集対象のファイルを追加したい場合は，「(2)　スナップショットログの収集対象を追加する」を参照してください。

なお，これらのパスがディレクトリを指す場合，サブディレクトリの情報も収集されます。収集対象のパスにファイルが存在しない場合は，情報が収集されません。

(2)　その他の収集対象

「表12‒3　スナップショットログ収集機能の収集対象のパス」の情報に加え，次の表に示す情報も収集されます。

表12‒4　スナップショットログ収集機能のその他の収集対象

収集対象

説明

config.properties（本製品の設定ファイル）

なし

本製品のバージョン情報ファイル

/etc/.hitachi/pplistd/pplistd

/etc/.hitachi/ppinfo

<本製品のインストールディレクトリ>/internal/version.dat

本製品のインストールログ

<本製品のインストールディレクトリ>/install.log

各アプリケーションのデプロイメント・ディスクリプタファイル

デプロイされたアプリケーション内の次のファイルが収集されます。

/META-INF/context.xml

/WEB-INF/web.xml

/WEB-INF/tomcat-web.xml

コマンド実行結果格納ディレクトリ

スナップショットログ収集中にコマンドが実行され，結果がファイルに出力されます。コマンド実行結果格納ディレクトリには，これらのファイルが格納されます。

コマンド実行結果格納ディレクトリの詳細は，「12.3.2　コマンドの実行による情報の取得」を参照してください。

(3)　独自の収集対象パス（日立JavaVMを使用する場合）

日立JavaVMを利用している場合，「(1)　収集対象のパス」および「(2)　その他の収集対象」で示した情報に加え，スレッドダンプファイルも収集されます。詳細を次の表に示します。

表12‒5　スナップショットログ収集機能で日立JavaVMを利用する場合だけ収集される情報

収集対象

説明

スレッドダンプファイル

Tomcatサーバプロセスが起動してから出力されたスレッドダンプファイルがすべて収集されます。次のファイルが収集対象です。

スナップショットログ収集時に要求したスレッドダンプファイル

スナップショットログ収集要求以前に出力されたスレッドダンプファイル

なお，スレッドダンプファイルの出力ファイル名および出力内容は，マニュアルuCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンスを参照してください。

(4)　収集対象外ファイル

スナップショットログ収集機能で収集対象外のファイルパスを次の表に示します。パスはglob形式です。

表12‒6　収集対象外のパス

収集対象外のパス（glob形式）

説明

${CATALINA_BASE}/conf/tomcat-users.xml

Tomcat Managerのログインユーザ定義ファイルのパス

${CATALINA_HOME}/conf/tomcat-users.xml

Tomcat Managerのログインユーザ定義ファイルのパス

<snapshot.log.filepath※1の指定値>*.zip

過去に出力されたスナップショットファイルのパス

<snapshot.exclude.globs.<n>※1の指定値>

収集対象外に指定したファイルのパス※2

注※1

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

注※2

複数のパスを収集対象外に指定できます。収集対象外のパスを指定したい場合は，「(1)　特定のファイルおよび特定のディレクトリを収集対象外にする」を参照してください。

12.3.2　コマンドの実行による情報の取得

「表12‒2　スナップショットログ収集機能の収集対象情報と収集方法」で収集方法が「コマンド」になっている収集対象情報は，本製品がOSのコマンドを実行することで取得されます。ここでは，OSのコマンド実行による情報取得の仕組みと，取得される情報について説明します。

次のファイルに記載されない，障害の解析に必要な情報は，本製品がOSのコマンドを実行することで取得されます。

定義ファイル

ログファイル

コマンドを実行した場合の標準出力および標準エラー出力の内容は，コマンド実行結果格納ディレクトリ以下に出力され，スナップショットログに収集されます。コマンド実行結果格納ディレクトリは，次のパスに作成されます。

<Tomcatプロセスモニタの一時領域>/snapshot_<yyyy-MM-dd_HH-mm-ss.SSS>_<n>

<Tomcatプロセスモニタの一時領域>については，「8.8　Tomcatプロセスモニタの一時領域」を参照してください。

パスの<yyyy-MM-dd_HH-mm-ss.SSS>の部分は，時刻情報を示します。<n>の部分は，Tomcatプロセスモニタを起動してから何番目の取得要求かを表す通番※を示します。

注※

一番目の取得要求を1とします。

コマンド実行結果格納ディレクトリは，スナップショットログの取得要求時に作成され，スナップショットログのファイルの出力後に削除されます。出力処理中にエラーが発生した場合もコマンド実行結果格納ディレクトリは削除されます。

次に，本製品がOSのコマンドを実行することで取得される情報について説明します。

(1)　Tomcat稼働中情報の取得

スナップショットログの取得時に，Tomcatサーバプロセスが稼働している場合だけTomcat稼働中情報が取得されます。Tomcat稼働中情報とは，次に示す「モニタリング情報」と「スレッドダンプ情報」を指します。Tomcat稼働中情報は，コマンド実行結果格納ディレクトリ以下に出力されます。

(a)　モニタリング情報

モニタリング情報の取得について説明します。

実行環境のメモリおよびCPUの使用状況を測定し，マシンリソースの使用情報が取得されます。測定には少なくとも5秒は掛かるため，次の場合だけ測定します。

表12‒7　マシンリソースの使用情報の出力トリガーと取得条件

出力トリガー

取得条件

Tomcatサーバプロセスの停止要求時

snapshot.onshutdownrequest.watchcommand.enabled※の指定値がtrueのとき

稼働監視の異常検知時

snapshot.onhealthcheck.watchcommand.enabled※の指定値がtrueのとき

統計情報出力機能の初期化処理失敗時

snapshot.on-init-stats.watchcommand.enabled※の指定値がtrueのとき

スナップショットログ収集コマンド

「17.2　スナップショットログ収集コマンド」で指定した値

スナップショットログ収集REST API

「18.2　スナップショットログ収集REST API」で指定した値

注※

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

出力トリガーについては，「(2)　Tomcat稼働中情報の取得」を参照してください。

モニタリング情報の取得時に実行されるコマンド，出力先，およびその説明を次の表に示します。なお，各コマンドは並列で実行されます。

表12‒8　モニタリング情報の取得時のコマンド，出力先，およびその説明

コマンド

出力先

説明

vmstat 1 5

vmstat.txt

CPU，メモリ，およびディスクI/Oなどのマシンリソースの使用状況をモニタリングして取得します。

iostat 1 5

iostat.txt

I/Oデバイスの使用状況を取得します。

top -b -n 5

top.txt

プロセスごとのCPUの使用状況をモニタリングして取得します。

sar -A 1 5

sar.txt

各種マシンリソースの使用状況をモニタリングして取得します。※

注※

Tomcatプロセスモニタの実行ユーザがroot権限を持っている場合に，結果が格納されます。

(b)　スレッドダンプ情報

Tomcatサーバプロセスのスレッドダンプ情報が取得されます。スレッドダンプ情報はTomcatサーバプロセスに負荷をかけるため，稼働監視で障害を検知した場合だけ取得されます。ただし，スレッドダンプ情報の取得回数，および取得間隔を設定することで，そのほかのタイミングでも取得できます。

スレッドダンプ情報の出力トリガー，取得回数，および取得間隔を次の表に示します。

表12‒9　スレッドダンプ情報の出力トリガー，取得回数，および取得間隔

出力トリガー

取得回数

取得間隔

稼働監視の異常検知時

デフォルトの場合：

3回

変更した場合：

<snapshot.onhealthcheck.threaddumpnum※の指定値>回

デフォルトの場合：

1,000ミリ秒

変更した場合：

<snapshot.default.threaddumpinterval※の指定値>ミリ秒

Tomcatサーバプロセスの停止要求時

デフォルトの場合：

取得されない

設定した場合：

<snapshot.onshutdownrequest.threaddumpnum※の指定値>回

デフォルトの場合：

取得されない

変更した場合：

<snapshot.default.threaddumpinterval※の指定値>ミリ秒

統計情報出力機能の初期化処理失敗時

デフォルトの場合：

3回

変更した場合：

<snapshot.on-init-stats.threaddumpnum※の指定値>回

デフォルトの場合：

1,000ミリ秒

変更した場合：

<snapshot.default.threaddumpinterval※の指定値>ミリ秒

スナップショットログ収集コマンド

「17.2　スナップショットログ収集コマンド」で指定した値

デフォルトの場合：

1,000ミリ秒

変更した場合：

<snapshot.default.threaddumpinterval※の指定値>ミリ秒

スナップショットログ収集REST API

「18.2　スナップショットログ収集REST API」で指定した値

注※

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

表の内容について説明します。

稼働監視の障害検知時のスレッドダンプの取得

デフォルトでは，1,000ミリ秒間隔で3回取得されます。ただし，取得回数および取得間隔は変更できます。取得回数および取得間隔を変更する方法については，「12.9.4　稼働監視で障害を検知したときのTomcat稼働中情報取得時の条件をカスタマイズしたい場合」を参照してください。

Tomcatサーバプロセスの停止要求時のスレッドダンプの取得

デフォルトでは取得されません。設定すれば取得できます。設定方法については，「12.9.3　Tomcatサーバプロセスの停止要求時，停止する前にTomcat稼働中情報を取得したい場合」を，出力トリガーについては，「(2)　Tomcat稼働中情報の取得」を参照してください。

出力トリガーの詳細については，「(2)　Tomcat稼働中情報の取得」を参照してください。

(c)　スレッドダンプ情報（日立JavaVMを使用する場合）

日立JavaVMを利用する場合，kill -3コマンドの実行によってTomcatサーバプロセスのスレッドダンプ情報が取得されます。

スレッドダンプ情報は，次のとおりに出力されます。

<スレッドダンプの出力先>/<スレッドダンプのファイル名>

スレッドダンプの出力先

スレッドダンプの出力先は，次のどちらかです。

環境変数JAVACOREDIRの値

common.java.hitachi.javacoredir※の指定値

注※　config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(1)　本製品全体に関するプロパティ」を参照してください。

スレッドダンプの出力先を変更したい場合は，「12.8.5　スレッドダンプの出力先を変更したい場合（日立JavaVM使用時）」を参照してください。

スレッドダンプのファイル名

「表12‒10　kill -3 <pid>コマンド実行時の出力先とその説明（日立JavaVMを使用する場合）」を参照してください。

取得されたスレッドダンプファイルは，スナップショットログの出力処理が完了したあとに削除されます。スレッドダンプのファイル名，およびスレッドダンプに出力される内容については，マニュアルuCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンスを参照してください。

次の表に，kill -3 <pid>コマンド実行時の出力先およびその説明を示します。

表12‒10　kill -3 <pid>コマンド実行時の出力先とその説明（日立JavaVMを使用する場合）

コマンド

出力先

説明

kill -3 <pid>

sigquit_<n>.txt

sigquit_<n>.txtには，シグナルを送信した結果を出力します。

（凡例）

<n>：ある出力要求での何回目の取得かを示します。

<pid>：TomcatサーバプロセスのPIDを示します。

(d)　スレッドダンプ情報（他社製JavaVMを使用する場合）

他社製JavaVMを使用する場合で，jcmdコマンドを利用できるときは，jcmdコマンドの実行によってTomcatサーバプロセスのスレッドダンプ情報が取得されます。スレッドダンプに出力される内容は，使用しているJavaVMのマニュアルを参照してください。

次の表に，jcmdコマンド実行時の出力先およびその説明を示します。

なお，jcmdコマンドは次のパスを使用します。

<Javaのインストールディレクトリ>/bin/jcmd

表12‒11　jcmdコマンド実行時の出力先とその説明（他社製JavaVMを使用する場合）

コマンド

出力先

説明

<jcmdコマンドのパス> <pid> Thread.print

jcmd_thread_<n>.txt

スレッドダンプ情報を出力します。

<jcmdコマンドのパス> <pid> GC.heap_info

jcmd_heapinfo_<n>.txt

ヒープ情報を出力します。

<jcmdコマンドのパス> <pid> Thread.dump_to_file -format=json <コマンド実行結果格納ディレクトリ>/jcmd_dump_thread_<n>.json

次の2つが出力されます。

jcmd_dump_stdouterr_<n>.txt

jcmd_dump_thread_<n>.json

JDKのバージョンが21以降の場合だけ，コマンドを実行します。

jcmd_dump_stdouterr_<n>.txtには，コマンドの実行結果を出力します。

jcmd_dump_thread_<n>.jsonには，スレッドダンプ情報を出力します。

（凡例）

<n>：ある出力要求での何回目の取得かを示します。

<pid>：TomcatサーバプロセスのPIDを示します。

次のどちらかの場合は，kill -3 <pid>コマンドの実行によってスレッドダンプが取得されます。

jcmdコマンドが存在しない場合

jcmdコマンドが失敗した場合

kill -3 <pid>コマンド実行時の出力先およびその説明を次の表に示します。

表12‒12　kill -3 <pid>コマンド実行時の出力先およびその説明（他社製JavaVMを使用する場合）

コマンド

出力先

説明

kill -3 <pid>

sigquit_<n>.txt

Tomcatサーバプロセスの標準出力にスレッドダンプを出力します。

sigquit_<n>.txtには，シグナルを送信した結果を出力します。

（凡例）

<n>：ある出力要求での何回目の取得かを示します。

<pid>：TomcatサーバプロセスのPIDを示します。

(2)　環境情報の取得

スナップショットログの取得時に，Tomcatサーバプロセスが稼働しているかどうかに関係なく，必ず環境情報が取得されます。環境情報は，コマンド実行結果格納ディレクトリ以下に出力されます。

(a)　ホストマシン情報

ホストマシン情報およびネットワーク使用状況が取得されます。これらの情報の取得時に実行されるコマンド，出力先，およびその説明を次の表に示します。なお，各コマンドは並列で実行されます。

表12‒13　ホストマシン情報の取得時のコマンド，出力先，およびその説明

コマンド

出力先

説明

df

df.txt

ディスクの使用状況を取得します。

ps -eflm

ps.txt

プロセスの状況を取得します。

netstat -s

netstat_s.txt

ネットワーク統計情報を取得します。

netstat -an

netstat_an.txt

ネットワークの使用状況を取得します。

sysctl -a

sysctl.txt

サービスの状況を取得します。

rpm -qa

rpm_qa.txt

ホストマシンにインストールされているPP情報を取得します。

rpm -qai

rpm_qai.txt

ホストマシンにインストールされているPP情報の詳細を取得します。

dpkg -l

dpkg.txt

ホストマシンにインストールされているPP情報を取得します。

uname -a

uname_a.txt

OSのバージョン情報を取得します。

env

env.txt

環境変数を取得します。

set

set.txt

シェル変数およびシェル関数を取得します。

ipcs

ipcs.txt

プロセス間通信機能の状況を取得します。

ipcs -t

ipcs_t.txt

プロセス間通信機能の制御時刻を取得します。

ipcs -p

ipcs_p.txt

プロセス間通信機能のプロセス情報を取得します。

ipcs -c

ipcs_c.txt

プロセス間通信機能のユーザ情報を取得します。

ipcs -u

ipcs_u.txt

プロセス間通信機能のサマリを取得します。

ipcs -l

ipcs_l.txt

プロセス間通信機能の制限値情報を取得します。

${CATALINA_HOME}/bin/version.sh

tomcat_version.txt

Tomcatのバージョン情報を取得します。

(b)　Javaの実行環境情報

Javaの実行環境情報について説明します。

Javaの実行環境情報を取得するために，システムプロパティの値が取得されます。ここで取得される対象は，Tomcatプロセスモニタのシステムプロパティです。

すべてのシステムプロパティのキーおよび値が「<key>=<value>」形式で，system_properties.txtに出力されます。

重要

Tomcatサーバプロセスのシステムプロパティは出力されません。

12.4　機密情報のマスキング

定義ファイル中に機密情報を平文で記述している場合，スナップショットログに機密情報が含まれないようにマスキングする必要があります。

12.4.1　定義情報のマスキング

接続先情報や認証情報などの機密情報が，スナップショットログに平文で格納されないように，指定したルールと合致する文字列をマスキングできます。ルールは，正規表現で指定します。正規表現に合致した文字列の最初のグループが「*****」に置換されます。

デフォルトのマスキングルール

次のルールに合致する情報は，スナップショットログに含まれないように必ずマスキングされます。

password="(.+?)"

このルールは，ユーザがマスキングルールを追加するかどうかに関係なく，必ず適用されます。

追加のマスキングルール

デフォルトのマスキングルールに合致しない情報を追加でマスキングしたい場合は，マスキングルールを追加してください。マスキングルールの追加方法については，「12.8.2　機密情報のマスキングルールを追加したい場合」を参照してください。

マスキングルールの適用対象

マスキングルールが適用される対象は，次のとおりです。

表12‒14　マスキングルールの適用対象

適用対象

説明

${CATALINA_BASE}/conf以下のすべてのファイル

Tomcatの設定ディレクトリを指します。

${CATALINA_HOME}/conf以下のすべてのファイル

デプロイされたアプリケーション内の次のファイル

/META-INF/context.xml

/WEB-INF/web.xml

/WEB-INF/tomcat-web.xml

各アプリケーションのデプロイメント・ディスクリプタファイルを指します。

${CATALINA_BASE}/bin/setenv.sh

Tomcatの環境設定スクリプトを指します。

${CATALINA_HOME}/bin/setenv.sh

envコマンドの実行結果

envコマンドを実行して取得する環境変数を指します。envコマンドの詳細は，「(a)　ホストマシン情報」を参照してください。

setコマンドの実行結果

setコマンドを実行して取得するシェル変数およびシェル関数を指します。

setコマンドの詳細は，「(a)　ホストマシン情報」を参照してください。

システムプロパティの一覧

システムプロパティについては，「(b)　Javaの実行環境情報」を参照してください。

重要

ログファイルにはマスキングルールが適用されません。

12.4.2　config.properties（本製品の設定ファイル）のマスキング

config.properties（本製品の設定ファイル）の次のプロパティキーの指定値は，「12.4.1　定義情報のマスキング」で示したマスキングルールに関係なく，マスキングされます。

snapshot.maskingrule.regexes.<n>

例えば，config.properties（本製品の設定ファイル）を「config.properties（本製品の設定ファイル）の指定例」のように作成した場合，「スナップショットログの出力例」のように出力されます。

config.properties（本製品の設定ファイル）の指定例

snapshot.log.filepath=${common.base}/snapshot
snapshot.maskingrule.regexes.1=secretToken="(.+?)"
snapshot.maskingrule.regexes.2=^DB_PASSWORD=(.+)$
snapshot.default.threaddumpinterval=1000

スナップショットログの出力例

snapshot.log.filepath=${common.base}/snapshot
snapshot.maskingrule.regexes.1=*****
snapshot.maskingrule.regexes.2=*****
snapshot.default.threaddumpinterval=1000

上記のように，太字のプロパティキーの指定値が「*****」に置換され，マスキングされます。

12.5　スナップショットログの自動収集

スナップショットログの自動収集について説明します。

12.5.1　障害時の保守情報の収集

TomcatプロセスモニタがTomcatサーバプロセスの障害を検知すると，保守情報（スナップショットログ）が次のパスに自動で出力されます。

<snapshot.log.filepath※の指定値>_<yyyy-MM-dd_HH-mm-ss.SSS>_<n>.zip

説明

「snapshot.log.filepath」は，config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

このパスの<yyyy-MM-dd_HH-mm-ss.SSS>_<n>の値を「スナップショットログID」と呼びます。

「yyyy-MM-dd_HH-mm-ss.SSS」は，時刻情報を示します。

「n」は，「Tomcatプロセスモニタを起動してから何番目の収集要求か」を表す通番※を示します。

注※　一番目の収集要求を1とします。

スナップショット収集中のログは，Tomcatプロセスモニタのメッセージログに出力されます。

スナップショットログのログファイルの活用方法を次に示します。

サポートサービスに障害の原因解析を依頼する場合

zipファイルをサポートサービスに送付してください。

自身で障害の原因を解析する場合

zipファイルを展開して調査してください。スナップショットログに含まれる情報については，「12.3　スナップショットログの収集対象」を参照してください。

(1)　スナップショットログの自動収集の条件

スナップショットログが出力される条件は，「8.5　自動でスナップショットログが収集されるタイミング」を参照してください。

(2)　Tomcat稼働中情報の取得

本製品が障害を検知したときに，Tomcatサーバプロセスが稼働中であればTomcat稼働中情報が取得されます。ただし，config.properties（本製品の設定ファイル）のプロパティで設定すれば，TomcatプロセスモニタがTomcatサーバプロセスの停止要求を検知したとき，停止する前にTomcat稼働中情報を取得できます。設定方法は，「12.9.3　Tomcatサーバプロセスの停止要求時，停止する前にTomcat稼働中情報を取得したい場合」を参照してください。

また，稼働監視で障害を検知したときのTomcat稼働中情報の取得時の条件をカスタマイズしたい場合は，「12.9.4　稼働監視で障害を検知したときのTomcat稼働中情報取得時の条件をカスタマイズしたい場合」を参照してください。

Tomcat稼働中情報の出力トリガーと取得可否を次の表に示します。

表12‒15　モニタ対象稼働中情報の出力トリガーと取得可否

Tomcat稼働中情報の出力トリガー

Tomcat稼働中情報の取得可否

備考

Tomcatサーバプロセスの停止要求を受けた

○

Tomcatプロセスモニタが停止シグナルを受ける終了方式の場合に取得されます。

Tomcatサーバプロセスの終了方式によっては，Tomcat稼働中情報を取得できない場合があります。例えば，Tomcatサーバプロセスがシャットダウンポートによって終了するときは，Tomcat稼働中情報を取得できません。

Tomcatサーバプロセスが終了した

×

なし

稼働監視が異常を検知した

○

なし

（凡例）

○：Tomcat稼働中情報が取得されます。

×：Tomcat稼働中情報が取得されません。

12.6　スナップショットログの手動収集

スナップショットログを手動で収集する方法を説明します。

重要

スナップショットログを手動で収集する前に，「12.6.3　スナップショットログの多重実行に関する注意事項」を必ず確認してください。

12.6.1　Tomcatプロセスモニタが稼働しているときの収集方法

Tomcatプロセスモニタが稼働中の場合，次の方法でスナップショットログを収集できます。

スナップショットログ収集コマンドを実行して収集する

HTTPリクエストを送信して収集する

それぞれの収集方法について説明します。

(1)　スナップショットログ収集コマンドを実行して収集する

本製品のコマンドを実行することで，スナップショットログを収集できます。実行するコマンドとスナップショットログの出力先は次のとおりです。

実行するコマンド

<本製品のインストールディレクトリ>/bin/collect-snapshot.sh

スナップショットログの出力先

<カレントディレクトリ>/snapshot.zip

スナップショットログ収集コマンドのオプションは，「17.2　スナップショットログ収集コマンド」を参照してください。また，スナップショットログのファイルに含まれる情報については，「12.3　スナップショットログの収集対象」を参照してください。

収集中のログは，Tomcatプロセスモニタのメッセージログに出力されます。メッセージログの詳細は，「14.3.1　メッセージログ」を参照してください。

(2)　HTTPリクエストを送信して収集する

次のURLにHTTPリクエストを送信すると，スナップショットログが収集され，レスポンスとして出力されます。

送信するリクエストの内容を次の表に示します。

表12‒16　リクエストの内容

項目

内容

Method

GET

URL

http://<IPアドレス>:<ポート番号>/api/v1/snapshot

<IPアドレス>にはTomcatプロセスモニタを起動させているマシンのIPアドレスを指定してください。<ポート番号>には，TomcatプロセスモニタのHTTP機能の受付ポート番号（monitor.rest.portの値の指定値）と同じ値を指定してください。

monitor.rest.portについては，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

出力されるレスポンスの内容を次の表に示します。

表12‒17　レスポンスの内容

項目

内容

Status

200

Response Header：Content-Type

application/zip

Response Body

<スナップショットログデータ>

HTTPリクエストで指定できるオプションについては，「18.2　スナップショットログ収集REST API」を参照してください。

また，スナップショットログのファイルに含まれる情報については，「12.3　スナップショットログの収集対象」を参照してください。

12.6.2　Tomcatプロセスモニタが稼働していないときの取得方法

Tomcatプロセスモニタが稼働していない環境で，スナップショットログと同等の内容の保守情報を取得する場合は，次の（1）から（3）までの手順を実行してください。

(1)　コマンドの実行と結果の保存

次のコマンドを実行して，コマンド実行結果格納ディレクトリを作成する。

mkdir -p <Tomcatプロセスモニタの一時領域>/snapshot_$(date +%Y-%m-%d_%H-%M-%S)_manual

プロセスモニタの一時領域については，「8.8　Tomcatプロセスモニタの一時領域」を参照してください。

（Tomcatサーバプロセス稼働時）実行するコマンドおよびその出力先を確認する。

Tomcatサーバプロセスが稼働しているときは，次の表に記載されているコマンドを実行します。コマンドおよびその出力先を確認してください。

日立JavaVMを使用している場合

「表12‒8　モニタリング情報の取得時のコマンド，出力先，およびその説明」

「表12‒10　kill -3 <pid>コマンド実行時の出力先とその説明（日立JavaVMを使用する場合）」

「表12‒13　ホストマシン情報の取得時のコマンド，出力先，およびその説明」

他社製JavaVMを使用している場合

「表12‒8　モニタリング情報の取得時のコマンド，出力先，およびその説明」

「表12‒11　jcmdコマンド実行時の出力先とその説明（他社製JavaVMを使用する場合）」

「表12‒13　ホストマシン情報の取得時のコマンド，出力先，およびその説明」

（Tomcatサーバプロセス非稼働時）実行するコマンドおよびその出力先を確認する。

Tomcatサーバプロセスが稼働していないときは，次の表に記載されているコマンドを実行します。コマンドおよびその出力先を確認してください。

「表12‒13　ホストマシン情報の取得時のコマンド，出力先，およびその説明」

手順2または3で確認したコマンドを次の形式で実行する。出力ファイル名は，手順2または3で確認した出力先と一致させてください。表内に2つ以上の出力先ファイルがある場合，一番上に記載されているファイルを出力ファイル名に指定してください。

<実行するコマンド> 1><コマンド実行結果格納ディレクトリ>/<出力ファイル名> 2>&1

標準出力および標準エラー出力の内容をリダイレクトして，ファイルに保存する。

次のコマンドを実行し，Tomcatの起動に使用しているJava環境のバージョンを取得する。

<Tomcatの起動に使用しているjavaコマンド> -version 1><コマンド実行結果格納ディレクトリ>/java_version.txt 2>&1

(2)　ファイルの取得

コピーするファイルを次の表で確認する。

「表12‒3　スナップショットログ収集機能の収集対象のパス」

「表12‒4　スナップショットログ収集機能のその他の収集対象」

「表12‒5　スナップショットログ収集機能で日立JavaVMを利用する場合だけ収集される情報」

次のコマンドを実行して，手順1で確認したファイルをカレントディレクトリにコピーする。そのとき，コピー元のパスが分かるようにしてください。

cp -r --parents <ディレクトリまたはファイルパス> .

アプリケーションのデプロイメント・ディスクリプタがwarファイル内だけに格納されている場合，そのwarファイルだけを展開し，コピーしてください。

コピー先は，次のとおりです。

<アーカイブファイルの絶対パスの先頭の「/」を除いた値>_/<アーカイブファイル内のファイルの絶対パス>

warファイルを展開し，コピーする例を次に示します。

図12‒1　warファイルを展開・コピーする例

次に記載されているファイルを削除する。

「表12‒6　収集対象外のパス」

次に記載されているファイル中の機密情報をマスキングする。

「表12‒14　マスキングルールの適用対象」

「12.4.2　config.properties（本製品の設定ファイル）のマスキング」

(3)　zipファイルの作成

次のコマンドを実行して，取得したファイルをアーカイブしてください。

zip -r snapshot_$(date +%Y-%m-%d_%H-%M-%S)_manual.zip .

12.6.3　スナップショットログの多重実行に関する注意事項

本製品では，Tomcatサーバプロセスのパフォーマンスの劣化を防止するため，スナップショットログ収集中は，新規のスナップショットログ収集要求を受け付けません。

ただし，障害検知後に時間的猶予がない場合もあるため，障害検知時には既存の処理と並行して収集します。障害検知後に時間的猶予がない場合の例として，オーケストレーションツール管理下のコンテナ環境などで，コンテナが強制削除されるなどが挙げられます。

スナップショットログ多重実行時の既存の処理と新規の処理の動作を次の表に示します。

表12‒18　スナップショットログ多重実行時の既存の処理と新規の処理の動作

既存の処理

新規の処理

多重実行時の

既存の処理の動作

多重実行時の

新規の処理の動作

スナップショットログ収集コマンド

スナップショットログ収集REST API

障害検知

スナップショットログ収集コマンド

実行中の処理を継続する。

収集処理を開始しない。

スナップショットログ収集REST API

障害検知

収集処理を開始する。

12.6.4　手動収集のユースケース

スナップショットログの手動収集のユースケースについて説明します。

(1)　Tomcatサーバプロセスの通常稼働時に保守情報を収集する場合

Tomcatサーバプロセスが通常どおり稼働しているときも，手動で保守情報（スナップショットログ）を収集できます。これによって，Tomcatサーバプロセスが正常に稼働しているかどうかを確認できます。

Tomcatサーバプロセス稼働時の保守情報を収集したいときは，次の方法で収集できます。

スナップショットログ収集コマンドを実行して収集する

収集方法は，「(1)　スナップショットログ収集コマンドを実行して収集する」を参照してください。

HTTPリクエストを送信して収集する

収集方法は，「(2)　HTTPリクエストを送信して収集する」を参照してください。

次に，収集時の前提条件とセキュリティ対策について説明します。

収集時の前提条件

Tomcatプロセスモニタが起動している必要があります。

収集時のセキュリティ対策

デフォルトでは，セキュリティ対策の観点からローカルホスト上のスナップショットログだけを収集できます。リモートマシンから収集するためには，monitor.rest.bindaddressに適した値を設定してください。monitor.rest.bindaddressについては，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

あわせてファイアウォールなどを使用し，次の対策を実施してください。

アクセス元を制限する

通信経路の安全性を確保する

12.7　スナップショットログの出力テスト

本番稼働する前にスナップショットログの出力テストを実施してください。目的は，意図したファイルが収集，マスキングされているかどうかを確認することです。手順は次のとおりです。

スナップショットログを手動で収集する。

スナップショットログを手動で収集する方法については，「12.6　スナップショットログの手動収集」を参照してください。

出力結果を次の観点で確認する。

必要なファイルが収集対象に含まれているか

除外したいファイルが収集されていないか

正しくマスキングされているか

12.8　ユースケース別の設定（自動収集・手動収集共通）

自動収集および手動収集に共通する，ユースケース別の設定方法について説明します。これらは，config.properties（本製品の設定ファイル）に設定します。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

12.8.1　収集対象を変更したい場合

(1)　特定のファイルおよび特定のディレクトリを収集対象外にする

特定のファイルおよび特定のディレクトリをスナップショットログの収集対象から除外する場合，config.properties（本製品の設定ファイル）の次のプロパティに除外するファイルパターン（glob形式で指定したファイル名）を指定してください。<n>には，自然数（1以上の整数）を指定します。

snapshot.exclude.globs.<n>=<除外するファイルパターン>

なお，プロパティを複数定義することで，複数の除外ファイルパターンを定義できます。

(2)　スナップショットログの収集対象を追加する

特定のファイルおよび特定のディレクトリをスナップショットログの収集対象に追加する場合，config.properties（本製品の設定ファイル）の次のプロパティに追加するファイルのパスを指定してください。<n>には，自然数（1以上の整数）を指定します。

snapshot.include.paths.<n>=<追加収集するファイルパス>

なお，プロパティを複数定義することで，複数の収集対象パスを定義できます。

12.8.2　機密情報のマスキングルールを追加したい場合

機密情報のマスキングルールを追加したい場合，config.properties（本製品の設定ファイル）の次のプロパティを指定してください。

snapshot.maskingrule.regexes.<n>=<正規表現文字列>

指定時は，正規表現を用いてください。正規表現に合致した文字列の最初のグループが「*****」に置換されます。また，<n>には，自然数（1以上の整数）を指定します。

設定後，システムの稼働前にスナップショットログ収集コマンドを実行し，正しくマスキングされていることを確認してください。スナップショットログ収集コマンドの詳細は，「17.2　スナップショットログ収集コマンド」を参照してください。

12.8.3　Context要素のaltDDNameを設定している場合

context.xml（Tomcatのコンテキスト設定ファイル）などのContext要素のaltDDNameを指定している場合，スナップショットログにアプリケーションのデプロイメント・ディスクリプタ情報を含める必要があります。そのため，config.properties（本製品の設定ファイル）の次のプロパティを追加してください。<n>には，自然数（1以上の整数）を指定します。

snapshot.include.paths.<n>=<altDDNameのパス>

12.8.4　monitor.tomcat.change.work.directory.enabledをfalseに変更している場合

障害の原因の解析に必要なコアダンプやJavaVMのエラーリポートなどの一部の保守情報は，カレントディレクトリに出力されます。monitor.tomcat.change.work.directory.enabledをfalseに設定する場合，スナップショットログにこれらのログが出力されるように設定する必要があります。そのため，config.properties（本製品の設定ファイル）の次のプロパティを追加してください。<n>には，自然数（1以上の整数）を指定します。

snapshot.include.paths.<n>=<追加収集パス>

設定例は，次のとおりです。

snapshot.include.paths.1=/tmp/core
snapshot.include.paths.2=/tmp/hs_err.log

12.8.5　スレッドダンプの出力先を変更したい場合（日立JavaVM使用時）

日立JavaVMを利用する場合，次のどちらかの方法でスレッドダンプの出力先を変更できます。

環境変数JAVACOREDIRに出力先のディレクトリを設定する

config.properties（本製品の設定ファイル）のcommon.java.hitachi.javacoredirに出力先のディレクトリを設定する

環境変数JAVACOREDIRが定義されている場合，common.java.hitachi.javacoredirの設定値は使用されません。また，上記のどちらも定義されていない場合は，common.java.hitachi.javacoredirのデフォルト値が出力先のディレクトリになります。

common.java.hitachi.javacoredirは，config.properties（本製品の設定ファイル）プロパティです。詳細は，「(1)　本製品全体に関するプロパティ」を参照してください。

12.8.6　ログ出力先を<common.baseの指定値>以外に設定している場合

${CATALINA_BASE}/conf/logging.propertiesを変更するなどして<common.baseの指定値>以外にログを出力する場合，障害の原因の解析に必要なログを収集できるように，config.properties（本製品の設定ファイル）の次のプロパティを追加してください。<n>には，自然数（1以上の整数）を指定します。

snapshot.include.paths.<n>=<追加収集パス>

common.base，およびsnapshot.include.paths.<n>は，config.properties（本製品の設定ファイル）のプロパティです。common.baseについては「(1)　本製品全体に関するプロパティ」を，snapshot.include.paths.<n>については「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

メモ

${CATALINA_BASE}の値は，Tomcatプロセスモニタの起動時に決定されます。

12.8.7　同一環境で複数のTomcatプロセスモニタを動作させる場合

config.properties（本製品の設定ファイル）のsnapshot.log.filepathを設定している場合，スナップショットログの出力先が競合しないようにする必要があります。snapshot.log.filepathには，Tomcatプロセスモニタごとに一意な値を設定してください。

snapshot.log.filepathは，config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

12.9　ユースケース別の設定（自動収集）

自動収集に関する，ユースケース別の設定方法について説明します。目的に応じて，config.properties（本製品の設定ファイル）のプロパティの値を変更してください。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

12.9.1　スナップショットログの出力先を変更したい場合

スナップショットログをログディレクトリと異なるディレクトリに出力する場合，config.properties（本製品の設定ファイル）の次のプロパティを変更してください。

snapshot.log.filepath=<変更先ファイルプリフィックス>

12.9.2　Tomcatサーバプロセスの正常終了時にもスナップショットログを出力したい場合

通常は，次のどちらでもない場合にスナップショットログが出力されます。

Tomcatサーバプロセスの終了ステータスが0の場合

Tomcatサーバプロセスの終了ステータスが143の場合（SIGTERMによる終了）

終了ステータスによって，スナップショットログの出力条件を変更できます。config.properties（本製品の設定ファイル）の次のプロパティ値を「ALWAYS」に指定することで，Tomcatサーバプロセスが正常終了したとき※も，スナップショットログが出力されます。

snapshot.onshutdownrequest.collect.condition=[ALWAYS|ERROR|NONZERO]

注※

Tomcatサーバプロセスの終了ステータスが0の場合を指します。

12.9.3　Tomcatサーバプロセスの停止要求時，停止する前にTomcat稼働中情報を取得したい場合

TomcatプロセスモニタがTomcatサーバプロセスの停止要求を検知し，Tomcatサーバプロセスが停止する前にTomcat稼働中情報を取得できます。config.properties（本製品の設定ファイル）のプロパティで設定できます。デフォルトでは，取得されません。

Tomcatサーバプロセスの停止要求時に，Tomcat稼働中情報を取得するための設定方法を次に示します。

モニタリング情報の取得を有効にする設定

Tomcatサーバプロセスの停止要求時にモニタリング情報を取得したい場合は，config.properties（本製品の設定ファイル）の次のプロパティにtrueを設定してください。

snapshot.onshutdownrequest.watchcommand.enabled=[true|false]

スレッドダンプ情報の取得回数の設定

Tomcatサーバプロセスの停止要求時にスレッドダンプ情報を取得する回数は，次のプロパティに設定してください。

snapshot.onshutdownrequest.threaddumpnum=<取得回数>

重要

これらのプロパティを設定すると，Tomcatサーバプロセスが停止するまでに時間が掛かります。また，設定してもTomcatサーバプロセスの終了方式によっては，Tomcat稼働中情報を取得できない場合があります。Tomcat稼働中情報の詳細については，「(2)　Tomcat稼働中情報の取得」を参照してください。

12.9.4　稼働監視で障害を検知したときのTomcat稼働中情報取得時の条件をカスタマイズしたい場合

稼働監視で障害を検知したときに，Tomcat稼働中情報が取得されます。この場合の取得時の条件をカスタマイズできます。

通常，本製品では次のとおりにTomcat稼働中情報が取得されます。

モニタリング情報が取得される。

モニタリング情報の詳細は，「(a)　モニタリング情報」を参照してください。

スレッドダンプ情報が1,000ミリ秒間隔で3回取得される。

スレッドダンプ情報の詳細は，「(b)　スレッドダンプ情報」を参照してください。

これらの取得時の条件をカスタマイズする方法を次に示します。

モニタリング情報の取得有無の変更

モニタリング情報を取得するかどうかをconfig.properties（本製品の設定ファイル）の次のプロパティで変更できます。

snapshot.onhealthcheck.watchcommand.enabled=[true|false]

スレッドダンプ情報の取得回数の変更

スレッドダンプ情報の取得回数を変更したい場合は，config.properties（本製品の設定ファイル）の次のプロパティで設定を変更できます。

snapshot.onhealthcheck.threaddumpnum=<取得回数>

スレッドダンプ情報の取得間隔の変更

スレッドダンプ情報の取得間隔を変更したい場合は，config.properties（本製品の設定ファイル）次のプロパティで設定を変更できます。

snapshot.default.threaddumpinterval=<取得間隔ミリ秒>

重要

スレッドダンプの取得間隔を変更すると，Tomcatサーバプロセスの終了要求時の，スナップショットログ収集REST API呼び出し時の取得間隔にもその変更が反映されます。

12.9.5　スナップショットログの自動収集後に任意のコマンドを実行したい場合

スナップショットログ収集時ユーザコマンド実行機能とは，スナップショットログ自動収集後に任意のコマンドを実行できる機能です。

ユーザコマンドからは，収集したスナップショットログ（zipファイル）のファイルパスを参照できます。これによって，スナップショットログを任意の場所へ複製し，保存できます。そのため，コンテナ環境のような揮発性のある環境でも，スナップショットログを永続化領域に転送することで，障害発生時の情報を残すことができます。

スナップショットログ収集時ユーザコマンド実行機能の詳細

実行するユーザコマンドを複数設定できます。

ユーザコマンドは，スナップショットコンポーネントで管理するスレッドプールを使用して，java.lang.ProcessBuilderによって実行します。スレッドプールはユーザコマンド全体で共有します。

複数指定したユーザコマンドのうち，1つの実行に失敗した場合，そのユーザコマンドに失敗したことを示すメッセージKDLR10039-Eを出力して，次のユーザコマンドの実行を継続します。

Tomcatプロセスモニタを停止する際に実行中のユーザコマンドがある場合は，そのコマンドの終了後または終了待ちのタイムアウト後に，Tomcatプロセスモニタが停止します。また，Tomcatプロセスモニタの停止時に実行を待機していたユーザコマンドは実行されません。

スナップショットログ収集時ユーザコマンド実行機能を実行するための設定方法

スナップショットログ収集時ユーザコマンド実行機能を利用するには，config.properties（本製品の設定ファイル）に次のプロパティの設定が必要です。

ユーザコマンド定義のID

実行するユーザコマンド

次のプロパティは，「実行するユーザコマンド定義のID」ごとの任意のプロパティです。

ユーザコマンドの引数

ユーザコマンドの標準出力をリダイレクトするファイルパス

ユーザコマンドの標準エラー出力をリダイレクトするファイルパス

ユーザコマンドの終了待ちのタイムアウト時間（単位：ミリ秒）

また，次のプロパティは，すべてのユーザコマンド定義のIDで共有する任意のプロパティです。

スレッドプールのサイズ

プロパティと設定例を次に示します。プロパティキーの「snapshot.usercommand.defs.」の後ろに指定した<group-id>文字列がユーザコマンド定義のIDになります。この例では，「exec1」がユーザコマンド定義のIDです。

snapshot.actions.on-auto.after-collection.usercommand.idrefs.1=exec1
snapshot.usercommand.defs.exec1.command=/home/user/usercommand/exec1.sh
snapshot.usercommand.defs.exec1.args.1=param1
snapshot.usercommand.defs.exec1.stdout.file.path=${common.base}/onAutoAfterStdout.txt
snapshot.usercommand.defs.exec1.stderr.file.path=${common.base}/onAutoAfterStderr.txt
snapshot.usercommand.defs.exec1.timeout=10000

また，すべてのユーザコマンド定義のIDで共有するプロパティの設定例を次に示します。

snapshot.usercommand.threadpoolsize=3

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

収集したスナップショットログのファイルパスの取得方法

スナップショットログ出力後のユーザコマンドの実行中は，スナップショットログの出力先のフルパスが環境変数SNAPSHOT_LOG_FILEPATHに設定されます。

12.9.6　統計情報出力機能の初期化処理に失敗したときの，モニタ対象稼働中情報取得時の条件をカスタマイズしたい場合

統計情報出力機能の初期化処理に失敗したときに，モニタ対象稼働中情報が取得されます。この場合の取得時の条件をカスタマイズできます。

本製品では，次のモニタ対象稼働中情報が取得されます。

モニタリング情報

モニタリング情報の詳細は，「(a)　モニタリング情報」を参照してください。

スレッドダンプ情報

通常，1,000ミリ秒間隔で3回取得されます。スレッドダンプ情報の詳細は，「(b)　スレッドダンプ情報」を参照してください。

これらの取得時の条件をカスタマイズする方法を次に示します。

モニタリング情報の取得有無の変更

モニタリング情報を取得するかどうかを変更したい場合は，config.properties（本製品の設定ファイル）の次のプロパティで設定を変更できます。

snapshot.on-init-stats.watchcommand.enabled=[true|false]

スレッドダンプ情報の取得回数の変更

スレッドダンプ情報の取得回数を変更したい場合は，config.properties（本製品の設定ファイル）の次のプロパティで設定を変更できます。

snapshot.on-init-stats.threaddumpnum=<取得回数>

スレッドダンプ情報の取得間隔の変更

スレッドダンプ情報の取得間隔を変更したい場合は，config.properties（本製品の設定ファイル）の次のプロパティで設定を変更できます。

snapshot.default.threaddumpinterval=<取得間隔ミリ秒>

重要

スレッドダンプの取得間隔を変更すると，Tomcatサーバプロセスの終了要求時の，スナップショットログ収集REST API呼び出し時の取得間隔にも，その変更が反映されます。

12.9.7　Context要素のantiResourceLockingをtrueに設定している場合

context.xml（Tomcatのコンテキスト設定ファイル）などのContext要素のantiResourceLocking属性値をtrueに設定している場合（デフォルトはfalse），条件によってデプロイメント・ディスクリプタファイルを収集する動作が変わります。

スナップショット収集時点でTomcatプロセスが終了している場合の詳細を，次に示します。

スナップショット収集時点でTomcatプロセスが終了している場合

次の条件をすべて満たすとき，デプロイメント・ディスクリプタファイルを収集しません。

server.xml（Tomcatのサーバ設定ファイル）のHost要素のunpackWARs属性値がtrueであること

デフォルトで，unpackWARs属性値はtrueに設定されています。

スナップショット収集時点でTomcatプロセスが終了していること

必要に応じて，手動でデプロイメント・ディスクリプタファイルを収集してください。収集の手順を次に示します。

デプロイしたアプリケーションから，デプロイメント・ディスクリプタファイルを収集する。

次のマスキングルールを適用する。

「password="(.+?)"」

${snapshot.maskingrule.regexes.<n>}の指定値

12.10　ユースケース別の設定（手動収集）

手動収集に関する，ユースケース別の設定方法について説明します。目的に応じて，config.properties（本製品の設定ファイル）のプロパティの値を変更してください。config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

12.10.1　オプションの指定を省略したときのデフォルト値を変更したい場合

スナップショットログ収集コマンド，またはスナップショットログ収集REST APIを使ってスナップショットログを収集する場合，次の情報を収集できます。

モニタリング情報

モニタリング情報の詳細は，「(a)　モニタリング情報」を参照してください。

スレッドダンプ情報

スレッドダンプ情報の詳細は，「(b)　スレッドダンプ情報」を参照してください。

また，オプションの指定を省略したときの値（デフォルト値）を変更できます。通常，オプションの指定を省略したときはモニタリング情報は取得されますが，スレッドダンプ情報は取得されません。ただし，次の設定でオプションを指定しなかった場合の動作を変更できます。

デフォルトの取得回数の変更

スナップショットログ収集REST APIの呼び出し時に，スレッドダンプの取得回数のオプションを指定しなかった場合の取得回数を次のプロパティで指定します。

snapshot.rest.default.threaddumpnum=<取得回数>

モニタリング情報をデフォルトで取得するかどうかの変更

スナップショットログ収集REST APIの呼び出し時に，モニタリング情報の取得オプションを指定しなかった場合の，マシンリソースの使用情報の取得有無を指定します。取得しない場合は，「false」を指定してください。

snapshot.rest.default.watchcommand.enabled=[true|false]

スナップショットログ収集コマンドのオプションの指定については，「17.2　スナップショットログ収集コマンド」を参照してください。また，スナップショットログ収集REST APIのオプションの指定については，「18.2　スナップショットログ収集REST API」を参照してください。

第5編　リファレンス

13　定義ファイル

この章では，本製品で使用する定義ファイルについて説明します。

13.1　定義ファイルの種類

本製品で使用する定義ファイルの一覧を次の表に示します。Tomcatの設定ファイルは，「3.3　Tomcatに組み込む」の操作手順で使用する順番で説明します。

表13‒1　本製品で使用する定義ファイルの一覧

ファイル名

分類

概要

参照先

config.properties

本製品の設定ファイル

本製品の各種機能の設定値を指定します。

ファイルの内容を変更しない場合は，デフォルト値が適用されます。

13.2

setenv.sh

Tomcat起動時の環境変数定義ファイル

Tomcat起動時の環境変数を指定します。

このファイルは必ず作成してください。

13.3

catalina.properties

Tomcatのプロパティ定義ファイル

本製品から提供されるライブラリ格納先をcommon.loaderプロパティに追加します。

このファイルは環境に応じて必ず設定を変更してください。

13.4

server.xml

Tomcatのサーバ設定ファイル

本製品から提供されるListenerやValveなどを追加します。

このファイルは環境に応じて必ず設定を変更してください。

13.5

context.xml

Tomcatのコンテキスト設定ファイル

本製品から提供されるValveやjdbcInterceptorなどを追加します。

このファイルは環境に応じて必ず設定を変更してください。

13.6

各ファイルは，システムを起動する前に作成しておく必要があります。起動後に内容を変更した場合は，システムを停止したあとで，再起動してください。

13.2　config.properties（本製品の設定ファイル）

config.properties（本製品の設定ファイル）では，本製品の各種機能に対する設定をカスタマイズできます。

13.2.1　形式

Java SEのプロパティファイル形式です。

次のようにキーを指定します。

<キー名称>=<値>

プロパティファイル内で非ASCII文字を記述する場合は，UTF-8（BOMなし）でエンコードする必要があります。

キー名称には，可変値が含まれる場合があります。また，値には，変数を含めることができます。プロパティキーに含まれる可変値およびプロパティ値の変数展開について次に示します。

(1)　プロパティキーに含まれる可変値

各プロパティキーには，次の可変値が含まれる場合があります。可変値について次に示します。

<n>

複数の値を設定できるプロパティキーの末尾にある可変値です。プロパティを設定する場合は，<n>の部分を一意な自然数（1以上の整数）に置き換えてください。

<group-id>

複数のプロパティをグループとして定義（グループ化）するための値で，プロパティキー中にある可変値です。プロパティを設定する場合は，<group-id>の部分を任意の文字列（1文字以上）に置き換えてください。

次の点を満たすプロパティが1つのグループとして扱われます。

先頭から<group-id>までの文字列が同じプロパティ

置き換えた<group-id>が一致している，複数のプロパティ

なお，<group-id>を置き換える文字列には，次の文字を使用できません。

.（0x2e）

:（0x3a）

=（0x3d）

(2)　プロパティ値の変数展開について

プロパティの値に${XXX}形式を含めた場合は，変数として値が置換されます。XXXの部分に指定できる文字列は次のどれかです。

catalina.base

catalina.home

<任意の環境変数名>

<プロパティキー名>

次に，変数を指定した場合の詳細を説明します。

指定した環境変数が存在しない場合，または，指定したプロパティが定義されていない場合はエラーとなります。

指定した環境変数と同名のプロパティが存在した場合はエラーとなります。

${XXX}形式のネストは置換できません。「${」から，最初に出現した「}」までの文字列を，XXXの部分として扱います。

プロパティキーへの指定は無効です。指定した場合，変数展開しないで文字列として扱います。

展開先の文字列に${XXX}の形式を含めることはできません。指定した場合，そのままの文字列となります。

OSの仕様に関係なく，大文字・小文字を区別します。

変数「${catalina.base}」はTomcatのベースディレクトリとして展開できます。

${catalina.base}の値は，Tomcatによって次のように決定されます。

環境変数CATALINA_BASEが設定済みの場合：環境変数CATALINA_BASEの値

1.以外で，環境変数CATALINA_HOMEが設定済みの場合：環境変数CATALINA_HOMEの値

1.および2.以外の場合：Tomcatが提供するcatalina.shのディレクトリの親ディレクトリパス

変数「${catalina.home}」はTomcatのホームディレクトリとして展開できます。

${catalina.home}の値は，Tomcatによって次のように決定されます。

環境変数CATALINA_HOMEが設定済みの場合：環境変数CATALINA_HOMEの値

1.以外の場合：Tomcatが提供するcatalina.shのディレクトリの親ディレクトリパス

ポイント

環境変数が変数展開できる機能を利用することで，config.properties（本製品の設定ファイル）を直接編集しなくても起動時に設定値を決定できます。また，同一マシン・同一ホスト上に複数のTomcatインスタンスがある場合に，config.properties（本製品の設定ファイル）を1つに集約できます。

例えば，config.properties（本製品の設定ファイル）に次を定義した場合，monitor.rest.portはTomcat起動時の環境変数MY_MONITOR_PORTの値で動作します。

monitor.rest.port=${MY_MONITOR_PORT}

変数は，環境変数である必要があります。bashの場合，次に示すとおり，先頭にexportを付与してください。

export MY_MONITOR_PORT=28888

13.2.2　ファイルの格納先，および格納先の変更方法

デフォルトの設定の場合の格納先，および格納先の変更方法を説明します。

(1)　ファイルの格納先（デフォルトの設定）

デフォルトの設定の場合は，次のconfig.properties（本製品の設定ファイル）が適用されます。

<本製品のインストールディレクトリ>/conf/config.properties

(2)　ファイルの格納先の変更方法

config.properties（本製品の設定ファイル）の格納先は，環境変数PROCESS_MONITOR_CONFIG_PATHで変更できます。次に，変更する手順を説明します。

config.properties（本製品の設定ファイル）のテンプレートをコピーして，任意のディレクトリに格納する。

テンプレートは次のファイルを使用してください。

<本製品のインストールディレクトリ>/template/config.properties

手順1でコピーしたファイルの絶対パスを，環境変数PROCESS_MONITOR_CONFIG_PATHに指定する。

ヒント

同一マシン，または，同一ホスト上に複数のTomcatインスタンスを作成する場合，インスタンス間で一意とする必要があるプロパティが存在するため，次のどちらかを実施する必要があります。

config.properties（本製品の設定ファイル）をTomcatインスタンスごとに作成する

config.properties（本製品の設定ファイル）を環境変数で動的に展開できるように編集し，Tomcatサーバプロセス起動時に環境変数を設定する

13.2.3　機能

本製品の各種機能に対する設定をカスタマイズできます。

TomcatプロセスモニタおよびTomcatサーバプロセスの稼働中にこのファイルの内容を変更した場合，変更した内容は次にTomcatプロセスモニタを起動したときに反映されます。

また，次の場合は，バリデーションエラーになり，Tomcatプロセスモニタの起動に失敗します。

指定可能値以外の値を指定した場合

プロパティ値の変数展開でエラーとなった場合

13.2.4　指定可能なプロパティ

各機能で指定可能なプロパティについて説明します。

(1)　本製品全体に関するプロパティ

本製品全体に関するプロパティを次に示します。

表13‒2　本製品全体に関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

common.base

ログ出力先のデフォルトのルートディレクトリ，およびTomcatプロセスモニタやTomcatサーバプロセスの作業ディレクトリとして利用します。

複数のTomcatプロセスモニタのプロセスを同一環境で動かす場合は，プロセスごとに一意となる値を指定してください。

絶対パス

可

${catalina.base}/logs

common.java.hitachi.javacoredir

日立JavaVMを使用する場合，スレッドダンプの出力先ディレクトリを指定します。環境変数JAVACOREDIRが指定されていた場合，このプロパティの値は使用されません。

絶対パス

可

${common.base}/threaddump

(2)　Tomcatプロセスモニタに関するプロパティ

Tomcatプロセスモニタに関するプロパティを次に示します。

表13‒3　Tomcatプロセスモニタに関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

monitor.log.message.filepath

メッセージログファイルの出力先ディレクトリとファイルプリフィックスを指定します。出力先のファイルパスは<monitor.log.message.filepathの指定値><ローテーション番号>.logになります。

複数のTomcatプロセスモニタのプロセスを同一環境で動かす場合は，プロセスごとに一意となる値を指定してください。

絶対パス

可

${common.base}/ucarmessage

monitor.log.message.filenum

メッセージログファイルのローテーション数を指定します。

1〜16の整数で指定します。

可

4

monitor.log.message.filesize

メッセージログの1ファイル当たりに書き込むおおよその最大量（単位：バイト）を示す数値を指定します。「おおよそ」とは，行の途中でファイルをローテーションさせないため，超過することがあることを意味します。

1〜2147483647の整数で指定します。

可

33554432

monitor.log.message.level

メッセージログのログ取得レベル（SEVERE，WARNING，INFO，CONFIG，FINE，FINER，FINEST，ALLのどれか）を示す文字列を指定します。各レベルの重要度はjava.util.logging.Levelに定義されているとおりです。詳細は，「13.2.5　ログ取得レベル」を参照してください。

次のどれかを指定します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

ALL

可

INFO

monitor.log.maintenance.filepath

保守ログファイルの出力先ディレクトリとファイルプリフィックスを指定します。出力先のファイルパスは<monitor.log.maintenance.filepathの指定値><ローテーション番号>.logになります。

複数のTomcatプロセスモニタのプロセスを同一環境で動かす場合は，プロセスごとに一意となる値を指定してください。

絶対パス

可

${common.base}/ucarmaintenance

monitor.log.maintenance.filenum

保守ログファイルのローテーション数を指定します。

1〜16の整数で指定します。

可

4

monitor.log.maintenance.filesize

保守ログの1ファイル当たりに書き込むおおよその最大量（単位：バイト）を示す数値を指定します。「おおよそ」とは，行の途中でファイルをローテーションさせないため，超過することがあることを意味します。

1〜2147483647の整数で指定します。

可

33554432

monitor.log.maintenance.level

保守ログのログ取得レベル（SEVERE，WARNING，INFO，CONFIG，FINE，FINER，FINEST，ALLのどれか）を示す文字列を指定します。各レベルの重要度はjava.util.logging.Levelに定義されているとおりです。

詳細は，「13.2.5　ログ取得レベル」を参照してください。

次のどれかを指定します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

ALL

可

INFO

monitor.jvm.options

TomcatプロセスモニタのJavaプロセスに指定するJavaVMオプションを指定します。

複数のオプションを指定する場合，空白区切りで指定してください。

自動的に設定されるJavaVMオプション（「14.3.3　JavaVMログ」に記載があるもの）を指定した場合は，デフォルト値ではなく，このプロパティでの指定値が適用されます。

任意文字列

可

-

monitor.tomcat.change.work.directory.enabled

Tomcatの作業ディレクトリの変更可否を指定します。

trueを指定した場合：

common.baseの指定値を作業ディレクトリとします。

falseを指定した場合：

Tomcatプロセスモニタ起動時のカレントディレクトリを作業ディレクトリとします。

注

falseに変更する場合，障害時にJavaVMが出力するログファイルが収集できなくなるおそれがあります。falseに変更する場合は，次のプロパティにカレントディレクトリを追加してください。

・snapshot.include.paths.<n>

次のどちらかを指定します。

true

false

可

true

monitor.tomcat.forcestop.timeout

異常検知時にTomcatサーバプロセスを終了する場合の，プロセス終了待ちタイムアウト時間（単位：ミリ秒）を指定します。

1〜3600000の整数で指定します。

可

10000

monitor.rest.port

TomcatプロセスモニタのHTTP機能の受付ポート番号を指定します。

1〜65535の整数で指定します。

可

28081

monitor.rest.bindaddress

TomcatプロセスモニタのHTTP機能に割り当てるIPアドレスを指定します。

リモートマシンから接続する場合に指定してください。その場合，ファイアウォールなどでアクセス元を制限したり，通信経路の安全性を確保したりするように注意してください。

localhostにループバックアドレス以外のIPアドレスを割り当てている場合，ループバックアドレスの値を設定してください。

任意文字列

可

localhost

（凡例）

-：なし

(3)　稼働監視機能に関するプロパティ

稼働監視機能に関するプロパティを次に示します。

表13‒4　稼働監視機能に関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

healthcheck.rest.connecttimeout

Tomcatサーバプロセスから稼働監視コンポーネントへのHTTP通信の接続タイムアウト時間（単位：ミリ秒）を指定します。0を指定した場合はタイムアウトしません。

0〜2147483647の整数で指定します。

可

3000

healthcheck.rest.readtimeout

Tomcatサーバプロセスから稼働監視コンポーネントへのHTTP通信の読み込みタイムアウト時間（単位：ミリ秒）を指定します。0を指定した場合はタイムアウトしません。

0〜2147483647の整数で指定します。

可

10000

healthcheck.heartbeat.interval

Tomcatサーバプロセスから稼働監視コンポーネントへ送信するハートビートの送信間隔（単位：ミリ秒）を指定します。

1〜2147483647の整数で指定します。

可

10000

healthcheck.heartbeatdelay.enabled

稼働監視コンポーネントがTomcatサーバプロセスからのハートビートを監視するかどうかを指定します。

trueを指定した場合：

稼働監視コンポーネントで受信するTomcatサーバプロセスからのハートビートを監視します。

falseを指定した場合：

稼働監視コンポーネントで受信するTomcatサーバプロセスからのハートビートを監視しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.heartbeatdelay.timeout

ハートビート待ちタイムアウトを指定します。

稼働監視コンポーネントがTomcatサーバプロセスからのハートビートを受信してから次のハートビートを受信するまで待つ時間（単位：ミリ秒）を指定します。

0〜2147483647の整数で指定します。

可

60000

healthcheck.heartbeatdelay.actions.failure.usercommand.idrefs.<n>

稼働監視コンポーネントでハートビート待ちタイムアウトが発生した場合に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.heartbeatdelay.actions.failure.snapshot

稼働監視コンポーネントでハートビート待ちタイムアウトが発生した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.heartbeatdelay.actions.failure.terminate

稼働監視コンポーネントでハートビート待ちタイムアウトが発生した場合に，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.heartbeatdelay.actions.recovery.usercommand.idrefs.<n>

稼働監視コンポーネントでハートビート待ちタイムアウトが発生したあとに，ハートビートを受信した初回に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.unchangedlogfile.logfilename.glob

Tomcatサーバプロセス起動監視でログファイル更新チェックに使用するログファイル名をglob形式で指定します。

glob形式で指定したファイル名

可

catalina.*.log

healthcheck.initdelay.timeout

Tomcatサーバプロセス初期化完了通知待ちタイムアウトを指定します。

稼働監視コンポーネントを開始してから，Tomcatサーバプロセス初期化完了通知を受信するまでの時間（単位：ミリ秒）を指定します。0を指定した場合はタイムアウトしません。

0〜2147483647の整数で指定します。

可

60000

healthcheck.startdelay.timeout

Tomcatサーバプロセス開始完了通知待ちタイムアウトを指定します。

Tomcatサーバプロセス初期化完了通知を受信してから，Tomcatサーバプロセス開始完了通知を受信するまでの時間（単位：ミリ秒）を指定します。0を指定した場合はタイムアウトしません。

0〜2147483647の整数で指定します。

可

60000

healthcheck.startdelay.actions.failure.usercommand.idrefs.<n>

Tomcatサーバプロセス開始完了通知待ちタイムアウトが発生した場合に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.startdelay.actions.failure.retrymax

Tomcatサーバプロセス開始完了通知待ちタイムアウトが発生した場合に，Tomcatサーバプロセス開始完了待ちをリトライする最大回数を指定します。

0〜2147483647の整数で指定します。

可

4

healthcheck.startdelay.actions.failure.snapshot

Tomcatサーバプロセス開始完了待ちタイムアウトが発生した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.startdelay.actions.afterretry.terminate

Tomcatサーバプロセス開始完了待ちタイムアウトが発生した場合に，タイムアウトの回数がhealthcheck.startdelay.actions.failure.retrymaxで指定した最大リトライ回数を超えていたとき，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.httprequest.enabled

稼働監視コンポーネントからヘルスチェックリクエストを送信するかどうかを指定します。

trueを指定した場合：

稼働監視コンポーネントからヘルスチェックリクエストを送信します。

falseを指定した場合：

稼働監視コンポーネントからヘルスチェックリクエストを送信しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.httprequest.check.default.interval

稼働監視コンポーネントから送信するヘルスチェックリクエストの送信間隔（単位：ミリ秒）を指定します。

1〜2147483647の整数で指定します。

可

30000

healthcheck.httprequest.check.default.connecttimeout

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP接続タイムアウト時間（単位：ミリ秒）を指定します。

0〜2147483647の整数で指定します。

可

3000

healthcheck.httprequest.check.default.readtimeout

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP読み込みタイムアウト時間（単位：ミリ秒）を指定します。

0〜2147483647の整数で指定します。

可

10000

healthcheck.httprequest.actions.connectfailure.usercommand.idrefs.<n>

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP接続タイムアウトが発生した場合に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.httprequest.actions.connectfailure.snapshot

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP接続タイムアウトが発生した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.httprequest.actions.connectfailure.terminate

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP接続タイムアウトが発生した場合に，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.httprequest.actions.iofailure.usercommand.idrefs.<n>

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP読み込みタイムアウトが発生した場合に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.httprequest.actions.iofailure.snapshot

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP読み込みタイムアウトが発生した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.httprequest.actions.iofailure.terminate

稼働監視コンポーネントから送信するヘルスチェックリクエストのHTTP読み込みタイムアウトが発生した場合に，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.httprequest.actions.errorresponse.usercommand.idrefs.<n>

稼働監視コンポーネントから送信するヘルスチェックリクエストの結果，エラーレスポンスを受信した場合に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.httprequest.actions.errorresponse.snapshot

稼働監視コンポーネントから送信するヘルスチェックリクエストの結果，エラーレスポンスを受信した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.httprequest.actions.errorresponse.terminate

稼働監視コンポーネントから送信するヘルスチェックリクエストの結果，エラーレスポンスを受信した場合に，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.httprequest.actions.recovery.usercommand.idrefs.<n>

稼働監視コンポーネントから送信するヘルスチェックリクエストで異常を検知したあとに，ヘルスチェックリクエストが成功した初回に実行する，ユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.stuckthread.enabled

稼働監視コンポーネントがTomcatサーバプロセスからのリクエスト処理停滞通知を監視するかどうかを指定します。

trueを指定した場合：

稼働監視コンポーネントで受信するTomcatからのリクエスト処理停滞通知を監視します。

falseを指定した場合：

稼働監視コンポーネントで受信するTomcatからのリクエスト処理停滞通知を監視しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.stuckthread.actions.failure.usercommand.idrefs.<n>

稼働監視コンポーネントがTomcatサーバプロセスからのリクエスト処理停滞通知を検知した場合に実行する，ユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.stuckthread.actions.failure.snapshot

稼働監視コンポーネントがTomcatサーバプロセスからのリクエスト処理停滞通知を検知した場合に，スナップショットログを収集するかどうかを指定します。

trueを指定した場合：

スナップショットログを収集します。

falseを指定した場合：

スナップショットログを収集しません。

次のどちらかを指定します。

true

false

可

true

healthcheck.stuckthread.actions.failure.terminate

稼働監視コンポーネントがTomcatサーバプロセスからのリクエスト処理停滞通知を検知した場合に，Tomcatサーバプロセスを停止するかどうかを指定します。

trueを指定した場合：

Tomcatサーバプロセスを停止します。

falseを指定した場合：

Tomcatサーバプロセスを停止しません。

次のどちらかを指定します。

true

false

可

false

healthcheck.stuckthread.actions.recovery.usercommand.idrefs.<n>

稼働監視コンポーネントがTomcatサーバプロセスからのリクエスト処理停滞通知を検知したあとに，停滞解消通知を受信した際に実行するユーザコマンド定義のID（<group-id>）を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandキーの欄を参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義のID（<group-id>）

可

-

healthcheck.shutdown.enabled

稼働監視コンポーネントがTomcatサーバプロセスの生存状態を監視するかどうかを指定します。

次のどちらかを指定します。

true

false

可

false

healthcheck.shutdown.actions.failure.condition

Tomcatサーバプロセスが終了したとき，自動的にユーザコマンドを実行するTomcatサーバプロセスの終了ステータスの条件を選択します。ただし，稼働監視機能を起因とした停止要求の場合，この設定は無視されます。

ALWAYSを指定した場合：

終了ステータスによらず，常にユーザコマンドを実行します。

ERRORを指定した場合：

終了ステータスが0でも143（SIGTERMによる終了）でもないときに，ユーザコマンドを実行します。

NONZEROを指定した場合：

終了ステータスが0以外のときに，ユーザコマンドを実行します。

次のどれかを指定します。

ALWAYS

ERROR

NONZERO

可

ERROR

healthcheck.shutdown.actions.failure.usercommand.idrefs.<n>

稼働監視コンポーネントがTomcatサーバプロセスの異常終了を検知したあとに，実行するユーザコマンド定義の<group-id>を指定します。ユーザコマンド定義の指定方法はhealthcheck.usercommand.defs.<group-id>.commandを参照してください。

healthcheck.usercommand.defsで始まるユーザコマンド定義の<group-id>

可

-

healthcheck.usercommand.defs.<group-id>.command

ユーザコマンド定義の実行コマンドを指定します。指定したコマンドはhealthcheck.usercommand.defs.<group-id>.args.<n>で指定したコマンド引数とともに，java.lang.ProcessBuilderで実行されます。コマンド実行時の作業ディレクトリはcommon.baseで指定したディレクトリです。

healthcheck.usercommand.defs.<group-id>から始まるプロパティを，可変値<group-id>の値でグループ化します。このプロパティは，<group-id>の値ごとに必須です。また，このプロパティキーに含まれる<group-id>の値は「ユーザコマンド定義のID」になります。

任意文字列

可

-

healthcheck.usercommand.defs.<group-id>.args.<n>

ユーザコマンド定義のコマンド引数を指定します。

healthcheck.usercommand.defs.<group-id>.commandで指定した実行コマンドに渡す，コマンド引数を指定します。<n>が連番ではない場合も間を空けず昇順でコマンド引数とします。

同じ<group-id>を持つhealthcheck.usercommand.defs.<group-id>.commandも指定する必要があります。

任意文字列

可

-

healthcheck.usercommand.defs.<group-id>.stdout.file.path

ユーザコマンドの標準出力をリダイレクトするファイルパスを絶対パスで指定します。指定がない場合は，Tomcatプロセスモニタの標準出力にリダイレクトします。

同じ<group-id>を持つhealthcheck.usercommand.defs.<group-id>.commandも指定する必要があります。

絶対パス

可

-

healthcheck.usercommand.defs.<group-id>.stderr.file.path

ユーザコマンドの標準エラー出力をリダイレクトする絶対パスを指定します。指定がない場合は，Tomcatプロセスモニタの標準エラー出力にリダイレクトします。

同じ<group-id>を持つhealthcheck.usercommand.defs.<group-id>.commandも指定する必要があります。

絶対パス

可

-

healthcheck.usercommand.defs.<group-id>.timeout

ユーザコマンドの終了待ちのタイムアウト時間（単位：ミリ秒）を指定します。

同じ<group-id>を持つhealthcheck.usercommand.defs.<group-id>.commandも指定する必要があります。

1〜3600000の整数で指定します。

可

30000

healthcheck.usercommand.threadpoolsize

ユーザコマンドの実行に使用する，稼働監視コンポーネントが管理するスレッドプールのサイズを指定します。

1〜1024の整数で指定します。

可

10

（凡例）

-：なし

(4)　スナップショットログ収集機能に関するプロパティ

スナップショットログ収集機能に関するプロパティを次に示します。

表13‒5　スナップショットログ収集機能に関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

snapshot.log.filepath

スナップショットログの出力先ディレクトリとファイルプリフィックスを指定します。スナップショットログの出力パスは「<snapshot.log.filepathの指定値>_<yyyy-MM-dd_HH-mm-ss.SSS>_<n>.zip」です。

注1

yyyy-MM-dd_HH-mm-ss.SSSは出力要求時刻です。

注2

nはTomcatプロセスモニタを起動してから何回目の収集要求か示す通番です。

注3

複数のTomcatプロセスモニタのプロセスを同一環境で動かす場合は，プロセスごとに一意となる値を指定してください。

絶対パス

可

${common.base}/snapshot

snapshot.exclude.globs.<n>

スナップショットログの収集対象外とするファイル名をglob形式で指定します。このプロパティに該当するファイルはsnapshot.include.paths.<n>に含まれていても収集されません。${CATALINA_BASE}/conf/tomcat-users.xmlは収集対象外のため，このプロパティによる設定は不要です。このプロパティ設定変更時はスナップショットログを手動で収集し，スナップショットログに意図したファイルが含まれるかどうかを確認してください。

定義例

snapshot.exclude.globs.1=${catalina.base}/conf/my_private.key

snapshot.exclude.globs.2=${catalina.base}/logs/my_secret.log*

glob形式で指定したファイル名

可

-

snapshot.include.paths.<n>

スナップショットログに追加で収集するディレクトリまたはファイルパスを指定します。snapshot.exclude.globs.<n>に含まれるファイルは収集されません。このプロパティ設定変更時はスナップショットログを手動で収集し，スナップショットログに意図したファイルが含まれるかどうかを確認してください。

定義例

snapshot.include.paths.1=/etc/myapp/common-web.xml

snapshot.include.paths.2=/var/log/myextralogs

絶対パス

可

-

snapshot.maskingrule.regexes.<n>

スナップショットログに収集する際，マスキングするルールを正規表現で指定します。マッチした最初のグループを「*****」に置き換えます。この設定は次に示す収集対象に適用されます。

${CATALINA_BASE}/bin/setenv.sh

${CATALINA_BASE}/conf以下のファイル

アプリケーションに含まれるデプロイメント・ディスクリプタ

env，setコマンド実行結果の環境変数一覧が出力されたファイル

システムプロパティの値一覧が出力されたファイル

このプロパティの定義有無とは関係なく，password="(.+?)"が適用されます。

このプロパティ設定変更時はスナップショットログを手動で収集し，スナップショットログ内のファイルが意図したマスキング結果になることを確認してください。

xmlファイル中の特定要素をマスキングする場合の例

<Resource secret="mysecret" />を<Resource secret="*****" />と置き換える場合

snapshot.maskingrule.regexes.1=secret="(.+?)"

propertiesファイル中の特定プロパティをマスキングする場合の例

com.example.secret=mysecretをcom.example.secret=*****と置き換える場合

snapshot.maskingrule.regexes.1=^com¥.example¥.secret=(.+)$

特定の環境変数をマスキングする場合の例

MY_PASSWORD=mysecretをMYPASSWORD=*****と置き換える場合

snapshot.maskingrule.regexes.1=^MYPASSWORD=(.+)$

正規表現

可

-

snapshot.onshutdownrequest.threaddumpnum

シャットダウン要求時，Tomcatが稼働している場合にスレッドダンプを取得する回数を指定します。取得したスレッドダンプはシャットダウンの結果がsnapshot.onshutdownrequest.collect.conditionに該当する場合，スナップショットログとして出力されます。

Tomcatプロセスモニタが停止シグナルを受ける終了方式の場合，スレッドダンプが取得されます。それ以外の終了方式の場合，Tomcatプロセスモニタが取得を開始する前にTomcatが終了するため，スレッドダンプは取得されません。例えばシャットダウンポートによる終了が該当します。

0を指定した場合，取得しません。複数回を指定した場合，snapshot.default.threaddumpintervalの間隔で取得します。

0〜60の整数で指定します。

可

0

snapshot.onshutdownrequest.watchcommand.enabled

シャットダウン要求時，Tomcatが稼働している場合にマシンリソースの使用状況を取得するかどうかを指定します。

trueを指定した場合：

マシンリソースの使用状況を取得します。

取得した情報はシャットダウンの結果がsnapshot.onshutdownrequest.collect.conditionに該当する場合，スナップショットログとして出力されます。

Tomcatプロセスモニタが停止シグナルを受ける終了方式の場合，マシンリソース情報が取得されます。それ以外の終了方式の場合，Tomcatプロセスモニタが取得を開始する前にTomcatが終了するため，マシンリソース情報は取得されません。例えばシャットダウンポートによる終了が該当します。

falseを指定した場合：

マシンリソースの使用状況を取得しません。

次のどちらかを指定します。

true

false

可

false

snapshot.onshutdownrequest.collect.condition

Tomcatサーバプロセスの終了を検知したとき，自動的にスナップショットログを収集するTomcatサーバプロセス終了ステータスの条件を選択します。

ALWAYSを指定した場合：

終了ステータスによらず，常にスナップショットログを収集します。

ERRORを指定した場合：

終了ステータスが0でも143（SIGTERMによる終了）でもないときに，スナップショットログを収集します。

NONZEROを指定した場合：

終了ステータスが0以外のときに，スナップショットログを収集します。

次のどれかを指定します。

ALWAYS

ERROR

NONZERO

可

ERROR

snapshot.onhealthcheck.threaddumpnum

稼働監視による障害検知時，Tomcatが稼働している場合にスレッドダンプを取得する回数を指定します。

0を指定した場合，取得しません。複数回を指定した場合，snapshot.default.threaddumpintervalの間隔で取得します。

0〜60の整数で指定します。

可

3

snapshot.onhealthcheck.watchcommand.enabled

稼働監視による障害検知時，Tomcatが稼働している場合にマシンリソースの使用状況を取得するかどうかを指定します。

trueを指定した場合：

マシンリソースの使用状況を取得します。

falseを指定した場合：

マシンリソースの使用状況を取得しません。

次のどちらかを指定します。

true

false

可

true

snapshot.rest.default.threaddumpnum

スナップショットログ収集REST API呼び出し時，スレッドダンプ取得回数オプションを省略した場合の取得回数を指定します。

0を指定した場合，取得しません。複数回を指定した場合，snapshot.default.threaddumpintervalの間隔で取得します。

0〜60の整数で指定します。

可

0

snapshot.rest.default.watchcommand.enabled

スナップショットログ収集REST API呼び出し時，モニタリング情報取得オプションを省略した場合，マシンリソースの使用状況を取得するかどうかを指定します。

trueを指定した場合：

マシンリソースの使用状況を取得します。

falseを指定した場合：

マシンリソースの使用状況を取得しません。

次のどちらかを指定します。

true

false

可

true

snapshot.default.threaddumpinterval

複数回スレッドダンプを取得する際，取得を完了してから次の取得を開始するまでの待機時間（単位：ミリ秒）を指定します。0を指定した場合，待機時間なしで連続してスレッドダンプを取得します。

0〜60000の整数で指定します。

可

1000

snapshot.on-init-stats.threaddumpnum

統計情報出力の初期化処理失敗時，Tomcatサーバプロセスが稼働している場合にスレッドダンプを取得する回数を指定します。

0を指定した場合，取得しません。複数回を指定した場合，snapshot.default.threaddumpintervalの間隔で取得します。

0〜60の整数で指定します。

可

3

snapshot.on-init-stats.watchcommand.enabled

統計情報出力の初期化処理失敗時，Tomcatサーバプロセスが稼働している場合にマシンリソースの使用状況を取得するかどうかを指定します。

trueを指定した場合：

マシンリソースの使用状況を取得します。

falseを指定した場合：

マシンリソースの使用状況を取得しません。

次のどちらかを指定します。

true

false

可

true

snapshot.actions.on-auto.after-collection.usercommand.idrefs.<n>

スナップショットログ自動収集後に実行するユーザコマンド定義の<group-id>を指定します。ユーザコマンド定義の指定方法はsnapshot.usercommand.defs.<group-id>.commandを参照してください。

snapshot.usercommand.defsで始まるユーザコマンド定義のID<group-id>

可

-

snapshot.usercommand.defs.<group-id>.command

ユーザコマンド定義の実行コマンドを指定します。指定したコマンドはsnapshot.usercommand.defs.<group-id>.args.<n>で指定したコマンド引数とともに，java.lang.ProcessBuilderで実行されます。コマンド実行時の作業ディレクトリはcommon.baseで指定したディレクトリです。

snapshot.usercommand.defs.<group-id>から始まるプロパティを，可変値<group-id>の値でグループ化します。このプロパティは，<group-id>の値ごとに必須です。また，このプロパティキーに含まれる<group-id>の値は「ユーザコマンド定義のID」になります。

任意文字列

可

-

snapshot.usercommand.defs.<group-id>.args.<n>

ユーザコマンド定義のコマンド引数を指定します。

snapshot.usercommand.defs.<group-id>.commandで指定した実行コマンドに渡す，コマンド引数を指定します。<n>が連番ではない場合も間を空けず昇順でコマンド引数とします。

同じ<group-id>を持つsnapshot.usercommand.defs.<group-id>.commandも指定する必要があります。

任意文字列

可

-

snapshot.usercommand.defs.<group-id>.stdout.file.path

ユーザコマンドの標準出力をリダイレクトするファイルパスを絶対パスで指定します。指定がない場合は，Tomcatプロセスモニタの標準出力にリダイレクトします。

同じ<group-id>を持つsnapshot.usercommand.defs.<group-id>.commandも指定する必要があります。

絶対パス

可

-

snapshot.usercommand.defs.<group-id>.stderr.file.path

ユーザコマンドの標準エラー出力をリダイレクトするファイルパスを絶対パスで指定します。指定がない場合は，Tomcatプロセスモニタの標準エラー出力にリダイレクトします。

同じ<group-id>を持つsnapshot.usercommand.defs.<group-id>.commandも指定する必要があります。

絶対パス

可

-

snapshot.usercommand.defs.<group-id>.timeout

ユーザコマンドの終了待ちのタイムアウト時間（単位：ミリ秒）を指定します。

同じ<group-id>を持つsnapshot.usercommand.defs.<group-id>.commandも指定する必要があります。

1〜3600000の整数で指定します。

可

30000

snapshot.usercommand.threadpoolsize

ユーザコマンドの実行に使用する，スナップショットコンポーネントが管理するスレッドプールのサイズを指定します。

1〜1024の整数で指定します。

可

3

（凡例）

-：なし

(5)　トレース機能に関するプロパティ

トレース機能に関するプロパティを次に示します。

表13‒6　トレース機能に関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

tracer.enabled

トレースを取得するかどうかを示す真偽値を指定します。

trueを指定した場合：

トレースを取得します。

falseを指定した場合：

トレースを取得しません。

次のどちらかを指定します。

true

false

可

true

tracer.queuesize

トレースの非同期出力で使う待ちキューのサイズ（行単位）を示す数値を指定します。実行待ちキューのサイズに比例して，Javaヒープが消費されます。

1〜2147483647の整数で指定します。

可

16384

tracer.log.filepath

出力先ディレクトリとログファイルプリフィックスを指定します。出力先のファイルパスは<tracer.log.filepathの指定値><ローテーション番号>.logになります。

絶対パス

可

${common.base}/ucartrace

tracer.log.filenum

ログファイルのローテーション数を示す数値を示します。

1〜16の整数で指定します。

可

4

tracer.log.filesize

1つのログファイルに書き込むおおよその最大量（単位：バイト）を示す数値を指定します。「おおよそ」とは，行の途中でファイルをローテーションさせないため，超過することがあることを意味します。

1〜2147483647の整数で指定します。

可

33554432

tracer.log.level

ログ取得レベル（SEVERE，WARNING，INFO，CONFIG，FINE，FINER，FINEST，ALLのどれか）を示す文字列を指定します。各レベルの重要度はjava.util.logging.Levelに定義されているとおりです。

詳細は，「13.2.5　ログ取得レベル」を参照してください。

次のどれかを指定します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

ALL

可

FINE

（凡例）

-：なし

(6)　統計情報出力機能に関するプロパティ

統計情報出力機能に関するプロパティを次に示します。

表13‒7　統計情報出力機能に関するプロパティ

キー名称

内容

指定可能値

省略可否

デフォルト

stats.enabled

統計情報出力機能を利用するかどうかを指定します。

trueを指定した場合：

統計情報出力機能を利用します。

falseを指定した場合：

統計情報出力機能を利用しません。

次のどちらかを指定します。

true

false

可

true

stats.startdelay.timeout

統計情報出力機能の開始待ちのタイムアウト時間（単位：ミリ秒）を指定します。

0〜2147483647の整数で指定します。

可

60000

stats.log.interval

統計情報ログへのログ出力インターバル（単位：ミリ秒）を指定します。

stats.log.intervalに極端に小さな値を指定すると，高頻度で統計情報出力機能が動作します。そのため，マシン性能などへの影響がない値を指定してください。

このプロパティの値には，stats.log.sampling-countの値を100倍した値以上を指定してください。

1000〜3600000の整数で指定します。

可

60000

stats.log.file-retention-days

統計情報ログを保存する日数を指定します。このプロパティに指定した日数分のログファイルが保存されます。

例えば，このプロパティの値に2を指定した場合は，当日のログファイルと，前日のログファイルが保存されます。

2〜30の整数で指定します。

可

7

stats.log.sampling-count

ログ出力インターバルごとに行う情報取得の最大回数を指定します。このプロパティに指定する値を大きくすると，ログ出力インターバルごとに取得する値の最大値や最小値の精度が高くなります。

stats.log.sampling-countに極端に大きな値を指定すると，高頻度で統計情報出力機能が動作します。そのため，マシン性能などへの影響がない値を指定してください。

stats.log.intervalの値には，このプロパティの値を100倍した値以上を指定してください。

1〜10000の整数で指定します。

可

10

stats.log.filepath

統計情報ログの出力先ディレクトリとファイルプリフィックスを指定します。出力先のファイルパスは「${stats.log.filepath}_<統計種別>_<yyyy-MM-dd>.log」です。

注1

<統計種別>は統計情報ログに出力される内容のカテゴリを表す文字列です。

注2

<yyyy-MM-dd>は出力日付です。

注3

スナップショットログ生成の際，このプロパティ値を正規化したパスでファイルを収集します。正規化では「.」および，「<親ディレクトリ>/..」のパス要素を除去します。「..」の前のパス要素がシンボリックリンクの場合，実ファイルのパスと異なるパスが収集対象となります。

注4

複数のTomcatプロセスモニタのプロセスを同一環境で動かす場合は，プロセスごとに一意となる値を指定してください。

絶対パス

可

${common.base}/ucarstats

13.2.5　ログ取得レベル

指定可能なプロパティには，ログ取得レベルを指定できるプロパティがあります。指定可能なプロパティについては，「13.2.4　指定可能なプロパティ」を参照してください。

指定できるログ取得レベルについて次に示します。

表13‒8　ログ取得レベルの一覧

ログ取得レベル

意味

ALL

すべてのメッセージのログを取ることを示すログ取得レベルです。

SEVERE

重大な障害を意味するログ取得レベルです。

メッセージ・レベル※が「SEVERE」に指定されているメッセージをログファイルに出力します。

WARNING

潜在的な問題を意味するログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

メッセージを情報として提供するログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

CONFIG

静的な構成メッセージのログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

CONFIG

FINE

トレース情報を提供するログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

より詳細なトレース情報を提供するログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

非常に詳細なトレース情報を提供するログ取得レベルです。

次のメッセージ・レベル※が指定されているメッセージをログファイルに出力します。

SEVERE

WARNING

INFO

CONFIG

FINE

FINER

FINEST

注※

メッセージ・レベルは，「15.2　メッセージの詳細」に示すjava.util.loggingのレベルのことを指します。

13.3　setenv.sh（Tomcat起動時の環境変数定義ファイル）

setenv.sh（Tomcat起動時の環境変数定義ファイル）では，Tomcat起動時の環境変数を定義できます。

13.3.1　形式

シェルスクリプト形式のファイルです。setenv.sh（Tomcat起動時の環境変数定義ファイル）自体の使い方や仕様については，使用するバージョンのTomcatのドキュメントを参照してください。

13.3.2　ファイルの格納先

${CATALINA_BASE}/bin/setenv.sh

または

${CATALINA_HOME}/bin/setenv.sh

setenv.sh（Tomcat起動時の環境変数定義ファイル）がない場合は新規に作成してください。なお，このファイルのテンプレートが次の場所に格納されているため，こちらのテンプレートをコピーして使うこともできます。

<本製品のインストールディレクトリ>/template/tomcat/setenv.sh

このテンプレートを使用した場合，/opt/Cosminexus/jdk17ディレクトリに日立JavaVMがインストールされていると，環境変数の定義に関係なく/opt/Cosminexus/jdk17ディレクトリにある日立JavaVMが優先して使用されます。

重要

環境変数CATALINA_BASEに環境変数CATALINA_HOME（Tomcatのインストールディレクトリ）とは別のパスを設定していて，かつ，${CATALINA_BASE}/binにsetenv.sh（Tomcat起動時の環境変数定義ファイル）が存在する場合は，${CATALINA_BASE}/binにあるsetenv.sh（Tomcat起動時の環境変数定義ファイル）が修正対象となります。その場合，${CATALINA_HOME}/binのsetenv.sh（Tomcat起動時の環境変数定義ファイル）は読み込まれなくなります。

13.3.3　機能

Tomcat起動時の環境変数を定義できます。

TomcatプロセスモニタおよびTomcatサーバプロセスの稼働中にこのファイルの内容を変更した場合，変更した内容は次にTomcatプロセスモニタを起動したときに反映されます。

13.3.4　指定可能な環境変数

本製品で指定可能な環境変数を次に示します。

表13‒9　setenv.sh（Tomcat起動時の環境変数定義ファイル）に記述する変数定義

setenv.shに記述する変数名

説明

省略可否

JRE_HOME

Javaのインストールディレクトリを指定します。

exportを先頭に付与して指定してください。

必ず指定してください。

ただし，次のどちらかの条件を満たす場合は，「export JRE_HOME」と指定できます。

環境変数JAVA_HOMEに，ご利用のJDKのインストールディレクトリが指定されている

環境変数PATHに，ご利用のjavaコマンドが格納されたディレクトリが指定されている

_RUNJAVA

本製品が提供するラッパースクリプトを起動します。

<本製品のインストールディレクトリ>/script/wrapper.sh

を必ず指定してください。

必ず指定してください。

PROCESS_MONITOR_CONFIG_PATH

config.properties（本製品の設定ファイル）のパスを絶対パスで指定します。

exportを先頭に付与して指定してください。

指定を省略できます。

省略した場合，次のパスのファイルを指定したものと見なします。

<本製品のインストールディレクトリ>/conf/config.properties

13.4　catalina.properties（Tomcatのプロパティ定義ファイル）

本製品から提供されるライブラリをTomcatサーバプロセスのCommonクラスローダでロードさせるために，catalina.properties（Tomcatのプロパティ定義ファイル）内のプロパティ「common.loader」に対して，次に示す下線部分の追記が必要です。

common.loader=<元の値>,"${com.cosminexus.appruntime.lib.path}/tomcat/common/*.jar"

設定例：

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${com.cosminexus.appruntime.lib.path}/tomcat/common/*.jar"

catalina.properties（Tomcatのプロパティ定義ファイル）の仕様や，Tomcatが定義しているプロパティの仕様については，使用するバージョンのTomcatのドキュメントを参照してください。

13.5　server.xml（Tomcatのサーバ設定ファイル）

本製品の機能をTomcatサーバプロセス上で動作させるために，本製品から提供される実装クラスをserver.xml（Tomcatのサーバ設定ファイル）に設定する必要があります。server.xml（Tomcatのサーバ設定ファイル）に追加する必要がある要素，およびその親要素を次の表に示します。

表13‒10　server.xml（Tomcatのサーバ設定ファイル）に追加が必要な要素

要素，属性（太字の部分が追加が必要な要素）

参照先

<Server>

-

├

<Listener className="com.cosminexus.appruntime.tomcat.tracer.ServerComponentHandler" />

9.2　トレース機能のセットアップ方法

├

<Listener className="com.cosminexus.appruntime.tomcat.healthcheck.MonitoringListener" />

10.2.2　Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定

├

<Listener className="com.cosminexus.appruntime.tomcat.stats.JmxAgentListener" />

11.2　統計情報出力機能のセットアップ方法

│

　：

-

├

<Server>

-

│

│

　：

-

│

├

<Engine>

-

│

│

├

<Valve className="com.cosminexus.appruntime.tomcat.tracer.RequestTraceValve" />

9.2　トレース機能のセットアップ方法

│

│

│

　：

-

　：

　：

　：

　：

-

（凡例）

-：該当なし

なお，このファイルのテンプレートが次の場所に格納されています。こちらのテンプレートをコピーして使うこともできます

Tomcat 9.xの場合：

<本製品のインストールディレクトリ>/template/tomcat9/server.xml

Tomcat 10.1.xの場合：

<本製品のインストールディレクトリ>/template/tomcat10.1/server.xml

重要

テンプレートファイル内のコメントに，テンプレートファイルの元となったTomcatのバージョンが記載されています。コメントに記載されているバージョンが，実際に使用するTomcatのバージョンよりも古い場合，Tomcatの仕様が変更されているおそれがあります。

バージョンが書かれているコメントの例は次のとおりです。

<!-- original Tomcat version: 10.1.15 -->

また，次に示す要素は，必要に応じて追加してください。

Tomcat JDBC Connection Pool機能を使用する場合

server.xml（Tomcatのサーバ設定ファイル）にResource要素を追加します。該当するResource要素のjdbcInterceptors属性に"com.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandler"を追記してください。詳細は，「9.2　トレース機能のセットアップ方法」を参照してください。

稼働監視機能でリクエスト処理の停滞を検知する場合

server.xml（Tomcatのサーバ設定ファイル）またはcontext.xml（Tomcatのコンテキスト設定ファイル）でTomcatのStuck Thread Detection Valve（className属性が"org.apache.catalina.valves.StuckThreadDetectionValve"のValve要素）を追加してください。詳細は，「(3)　設定できる内容」およびTomcatのドキュメントを参照してください。

13.6　context.xml（Tomcatのコンテキスト設定ファイル）

本製品の機能をTomcatサーバプロセス上で動作させるために，本製品から提供される実装クラスをcontext.xml（Tomcatのコンテキスト設定ファイル）に設定する必要があります。context.xml（Tomcatのコンテキスト設定ファイル）に追加する必要がある要素，およびその親要素を次の表に示します。

表13‒11　context.xml（Tomcatのコンテキスト設定ファイル）に追加が必要な要素

要素，属性（太字の部分が追加が必要な要素）

参照先

<Context>

-

│

　：

-

├

<Loader loaderClass="com.cosminexus.appruntime.tomcat.tracer.WebappTraceClassLoader" />

9.2　トレース機能のセットアップ方法

│

　：

-

（凡例）

-：該当なし

なお，このファイルのテンプレートが次の場所に格納されています。こちらのテンプレートをコピーして使うこともできます

Tomcat 9.xの場合：

<本製品のインストールディレクトリ>/template/tomcat9/context.xml

Tomcat 10.1.xの場合：

<本製品のインストールディレクトリ>/template/tomcat10.1/context.xml

重要

テンプレートファイル内のコメントに，テンプレートファイルの元となったTomcatのバージョンが記載されています。コメントに記載されているバージョンが，実際に使用するTomcatのバージョンよりも古い場合，Tomcatの仕様が変更されているおそれがあります。

バージョンが書かれているコメントの例は次のとおりです。

<!-- original Tomcat version: 10.1.15 -->

また，次に示す要素は，必要に応じて追加してください。

Tomcat JDBC Connection Pool機能を使用する場合

context.xml（Tomcatのコンテキスト設定ファイル）にResource要素を追加します。該当するResource要素のjdbcInterceptors属性に"com.cosminexus.appruntime.tomcat.tracer.JdbcTraceHandler"を追記してください。詳細は，「9.2　トレース機能のセットアップ方法」を参照してください。

稼働監視機能でリクエスト処理の停滞を検知する場合

server.xml（Tomcatのサーバ設定ファイル）またはcontext.xml（Tomcatのコンテキスト設定ファイル）でTomcatのStuck Thread Detection Valve（className属性が"org.apache.catalina.valves.StuckThreadDetectionValve"のValve要素）を追加してください。詳細は，「(3)　設定できる内容」およびTomcatのドキュメントを参照してください。

14　ログファイル

この章では，本製品が出力するログファイルについて説明します。

14.1　ログファイルの種類

Tomcatプロセスモニタ，および本製品を適用したTomcatサーバプロセスから出力されるログファイルの一覧を次の表に示します。環境変数CATALINA_BASEを定義していない場合は，${CATALINA_BASE}を${CATALINA_HOME}に読み替えてください。

表14‒1　Tomcatプロセスモニタから出力されるログファイル

分類

デフォルトのログ出力先およびログファイル名

デフォルトのサイズ×面数

メッセージログ

${CATALINA_BASE}/logs/ucarmessage*.log

32MB×4面

保守ログ

${CATALINA_BASE}/logs/ucarmaintenance*.log

32MB×4面

JavaVMログ※

${CATALINA_BASE}/logs/pmjavavm*.log

256KB×4面

注※

日立JavaVMを使用している場合だけ出力されます。

表14‒2　本製品を適用したTomcatサーバプロセスから出力される独自ログファイル

分類

デフォルトのログ出力先およびログファイル名

デフォルトのサイズ×面数

トレースログ

${CATALINA_BASE}/logs/ucartrace*.log

32MB×4面

JavaVMログ※1

${CATALINA_BASE}/logs/javavm*.log

256KB×4面

統計情報ログ

${CATALINA_BASE}/logs/ucarstats*.log

70面※2

注※1

日立JavaVMを使用している場合だけ出力されます。

注※2

統計情報ログは，次のようにファイル出力されます。

統計種別ごとに，別のファイルに出力する

出力日ごとに，別のファイルに出力する

ログ1面当たりの最大サイズはありません。つまり，出力される最大面数は，「統計種別の個数×ログファイルの保存日数」の値となります。詳細については，「11.　統計情報出力機能」および「14.4.3　統計情報ログ」を参照してください。

Tomcatサーバプロセスからは，「表14‒2　本製品を適用したTomcatサーバプロセスから出力される独自ログファイル」に示したもの以外に，Tomcat自身が出力しているログファイルも出力されます。Tomcatのログファイルの仕様については，使用するバージョンのTomcatのドキュメントを参照してください。

14.2　ログファイルの文字コード

ログファイルに書き込むときの文字コードはJavaのバージョンによって異なります。ここでは，JDK17以前の場合と，JDK21以降の場合を説明します。

JDK17以前の場合

文字コードは，プラットフォームのデフォルトエンコーディングを使用します。

JDK21以降の場合

文字コードは，システムプロパティfile.encodingの値に依存し，デフォルトはUTF-8を使用します。

JDK21以降でJDK17以前と同じようにプラットフォームのデフォルトエンコーディングを使用する場合は，config.properties（本製品の設定ファイル）のプロパティmonitor.jvm.optionsに「-Dfile.encoding=COMPAT」を指定してください。

14.3　Tomcatプロセスモニタのログ

Tomcatプロセスモニタが提供するログファイルについて説明します。

14.3.1　メッセージログ

メッセージログについて説明します。

ファイルの文字コード

ファイルの文字コードはUTF-8です。

フォーマット

メッセージログの各行フォーマットを次に示します。

<日付>△<時刻>△<プロセスID>△<スレッドID>△<メッセージID>△<メッセージ本文>

注　△：半角空白

各項目の詳細を次の表に示します。

表14‒3　メッセージログの各項目の詳細

項目

詳細

日付

日付を「yyyy-MM-dd」形式で出力します。

時刻

時刻を「HH:mm:ss.SSS」形式で出力します。

プロセスID

TomcatプロセスモニタのプロセスIDを8桁の10進数形式で出力します。

スレッドID

ログ出力元のスレッドIDを8桁の10進数形式で出力します。100000000以上の場合は下8桁だけ出力します。

メッセージID

メッセージIDを「XXXXnnnnn-Y」形式で出力します。

メッセージ本文

メッセージ本文を出力します。文字数制限はありません。

プロパティ

メッセージログの設定に関しては，「monitor.log.message」で始まるプロパティで変更できます。詳細は，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

14.3.2　保守ログ

保守ログについて説明します。保守ログは，サポートサービス内で参照することを目的としています。そのため，通常は参照する必要はありません。

ファイルの文字コード

ファイルの文字コードはUTF-8です。

フォーマット

保守ログの各行のフォーマットは規定されません。そのため，ログの内容を独自に解析したときの動作は保証されません。

プロパティ

保守ログの設定に関しては，「monitor.log.maintenance」で始まるプロパティで変更できます。詳細は，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

14.3.3　JavaVMログ

JavaVMログの設定方法について説明します。

日立JavaVMの場合

日立JavaVMを利用する場合，デフォルトとして次に示す日立JavaVMオプションでログ出力定義が設定されます。

-XX:+HitachiJavaClassLibTrace

-XX:+HitachiLocalsInStackTrace

-XX:+HitachiLocalsSimpleFormat

-XX:+HitachiOutOfMemoryAbort

-XX:+HitachiOutOfMemoryStackTrace

-XX:+HitachiOutputMilliTime

-XX:-HitachiThreadDumpToStdout

-XX:+HitachiVerboseGC

-XX:+StandardLogToHitachiJavaLog

-XX:+HitachiFullCore

-XX:HitachiJavaLog:${common.base}/pmjavalog

他社製JavaVMの場合

次の設定ファイルのプロパティで設定できます。複数のJavaVMオプションを指定する場合は，空白で区切って指定してください。設定値の詳細は，利用するJavaVMのマニュアルを参照してください。

config.properties（本製品の設定ファイル）のプロパティmonitor.jvm.options

config.properties（本製品の設定ファイル）については，「13.2　config.properties（本製品の設定ファイル）」を参照してください。

14.4　Tomcatサーバプロセスのログ

Tomcatサーバプロセスから出力される独自ログファイルについて説明します。

14.4.1　Tomcatトレースログ

本製品のトレース機能は，Tomcatの動作状況を示すトレース情報をログファイルに出力します。ログファイルのヘッダ，およびログファイルに出力されるトレース情報の詳細について説明します。なお，ログファイルに書き込む文字コードは，プラットフォームのデフォルトエンコーディングを使用します。

(1)　ヘッダの詳細

ヘッダを出力するタイミング

ヘッダを出力するタイミングは，次のとおりです。

トレース機能を初期化したとき

ローテーションで次のファイルに書き込むとき

ヘッダの出力内容

ヘッダの出力内容は，次のとおりです。

PRF,Process,Thread(hashcode),Trace,ProcessName,Event,Date,Time,Time(msec/usec/nsec),Rc,ClientAP IP,ClientAP PID, ClientAP CommNo.,RootAP IP,RootAP PID,RootAP CommNo.,SendSCD IP,SendSCD PID,ReceiveSCD IP,ReceiveSCD PID,INT,OPR,LookupName,OPT,ASCII

(2)　トレース情報の詳細

ログファイルのヘッダを出力したあと，トレース情報を出力します。

トレース情報の形式

トレースの形式は，次のとおりです。

1トレース1行で出力

次の文字コードでログファイルに書き込み

JDK17以前の場合

プラットフォームのデフォルトエンコーディングを使用します。

JDK21以降の場合

システムプロパティfile.encodingの値に依存し，デフォルトはUTF-8を使用します。

JDK21以降でJDK17以前と同じようにプラットフォームのデフォルトエンコーディングを使用する場合，config.properties（本製品の設定ファイル）のプロパティmonitor.jvm.optionsに「-Dfile.encoding=COMPAT」を指定してください。

日時は，プラットフォームのデフォルトタイムゾーンを使用

トレース情報の出力内容

トレース情報の出力内容と値の範囲を次の表に示します。

表14‒4　トレース情報の出力内容と値の範囲

トレース情報のヘッダ

出力内容

値の範囲

PRF

取得したトレース情報の状態。

Recだけが出力されます。Recは「正常」を意味します。

Process

トレース情報を取得したプロセスのプロセスID。

10進数形式で出力されます。

Thread（hashcode）

トレース情報を取得したスレッドの情報。

JavaスレッドID

トレース情報を取得したスレッドのスレッドオブジェクトのハッシュコード

次の形式で出力されます。

<JavaスレッドID>（<スレッドオブジェクトのハッシュコード※1>）

なお，JavaスレッドIDは10進数，スレッドオブジェクトのハッシュコードは0xで始まる16進数で表記されます。

Trace

トレース情報を取得したプロセス内スレッドでのトレース通番。

10進数形式で出力されます。

ProcessName

トレース情報を取得したプロセスの名前。

javaだけが出力されます。

Event

処理方式の各トレースで記載したイベントID。

0xで始まる16進数形式で出力されます。

Date

トレース情報を取得した日付。

<西暦>/<月>/<日>形式で出力されます。

Time

トレース情報を取得した時刻（時：分：秒）。

<時>:<分>:<秒>形式で出力されます。

Time（msec/usec/nsec）

トレース情報を取得した時刻（ミリ秒/マイクロ秒/ナノ秒）。

<ミリ秒>/<マイクロ秒>/<ナノ秒>形式で出力されます。

Rc

各トレース取得ポイントに記載したRc項目。

16進数形式で出力されます。ただし，0は0で出力されます。

ClientAP IP

トレース情報を取得したクライアントアプリケーションのIPアドレス※2。

IPv4のIPアドレス形式(a.b.c.d)で出力されます。

ClientAP PID

トレース情報を取得したクライアントアプリケーションのプロセスID※3。

10進数形式で出力されます。

ClientAP CommNo.

トレース情報を取得したクライアントアプリケーションの通信番号※4。

0xで始まる16進数形式で出力されます。

RootAP IP

トレース情報を取得したルートアプリケーションのIPアドレス※2。

IPv4のIPアドレス形式(a.b.c.d)で出力されます。

RootAP PID

トレース情報を取得したルートアプリケーションのプロセスID※3。

10進数形式で出力されます。

RootAP CommNo.

トレース情報を取得したルートアプリケーションの通信番号※4。

0xで始まる16進数形式で出力されます。

SendSCD IP

リクエスト要求元CTMのIPアドレス。

****だけが出力されます。

SendSCD PID

リクエスト要求元CTMのプロセスID。

****だけが出力されます。

ReceiveSCD IP

リクエスト要求先CTMのIPアドレス。

****だけが出力されます。

ReceiveSCD PID

リクエスト要求先CTMのプロセスID。

****だけが出力されます。

INT

各トレース取得ポイントに記載したINT項目を""で囲んだ※5もの。

出力文字数に制限はありません。

OPR

各トレース取得ポイントに記載したOPR項目を""で囲んだ※5もの。

出力文字数に制限はありません。

LookupName

ルックアップ名。

****だけが出力されます。

OPT

取得ポイントごとの付加情報。

空文字（""）だけが出力されます。

ASCII

各トレース取得ポイントに記載したASCII項目を""で囲んだ※5もの。

記載がない場合，空文字（""）が出力されます。

注※1

スレッドダンプのjid項目と一致します。この項目を利用してスレッドダンプと突き合わせを実施してください。

注※2

情報がない場合（IPv4アドレスが取得できなかった場合も含む），0.0.0.0を出力します。

注※3

情報がない場合は，0を出力します。

注※4

情報がない場合は，0x0000000000000000を出力します。

注※5

各トレース取得ポイントの項目に"-"が記載されている場合，""は出力されず空文字（""）が出力されます。項目に含まれるダブルクォーテーション（"）はエスケープした文字（""）に置き換えて出力されます。

14.4.2　JavaVMログ

JavaVMログの設定方法について説明します。

日立JavaVMの場合

日立JavaVMを利用する場合，デフォルトとして次に示す日立JavaVMオプションでログ出力定義が設定されます。

-XX:+HitachiJavaClassLibTrace

-XX:+HitachiLocalsInStackTrace

-XX:+HitachiLocalsSimpleFormat

-XX:+HitachiOutOfMemoryAbort

-XX:+HitachiOutOfMemoryStackTrace

-XX:+HitachiOutputMilliTime

-XX:-HitachiThreadDumpToStdout

-XX:+HitachiVerboseGC

-XX:+StandardLogToHitachiJavaLog

-XX:+HitachiFullCore

-XX:HitachiJavaLog:${common.base}/javalog

デフォルトの設定値を変更する場合，または設定を追加する場合は，次の環境変数で設定を上書きできます。複数の日立JavaVMオプションを指定する場合は，空白で区切って指定してください。

環境変数CATALINA_OPTS

他社製JavaVMの場合

次の環境変数で設定できます。複数のJavaVMオプションを指定する場合は，空白で区切って指定してください。設定値の詳細は，利用するJavaVMのマニュアルを参照してください。

環境変数CATALINA_OPTS

14.4.3　統計情報ログ

統計情報出力機能が取得した情報は，統計情報ログへ出力します。統計情報ログの詳細について説明します。

(1)　統計情報ログのファイルパス

統計情報ログはカテゴリごとに作成します。統計情報ログが存在しない場合，最初に出力するタイミングでファイルを作成します。

統計情報ログのファイルパス

${stats.log.filepath}_＜統計種別＞_＜yyyy-MM-dd形式の日付＞.log

デフォルトのファイルパス

${common.base}/ucarstats_＜統計種別＞_＜yyyy-MM-dd形式の日付＞.log

カテゴリと，＜統計種別＞の文字列との対応を次の表に示します。

表14‒5　カテゴリと＜統計種別＞の対応

カテゴリ

＜統計種別＞

JavaVM

jvm

メモリ

memory

コードキャッシュメモリ

memory_codecache

コードヒープメモリ

memory_codeheap

Tomcat

tomcat

シリアルGC※

serialgc

パラレルGC※

parallelgc

G1GC※

g1gc

ZGC※

zgc

Generational ZGC※

zgcgen

注※

JavaVMのメモリ管理方式に対応したカテゴリだけ出力されます。

(2)　統計情報ログの出力内容

統計情報ログにはヘッダとヘッダに対応するレコードを出力します。MBeanサーバから値を取得できた場合，指定されたログ出力インターバルが経過するごとにレコードを1行以上出力します。

ヘッダとレコードのフォーマットはCSVです。統計情報ログの文字コードは，Javaのバージョンによって異なります。

JDK 17以前の場合

プラットフォームのデフォルトエンコーディングです。

JDK 21以降の場合

システムプロパティfile.encodingの値に依存します。デフォルトはUTF-8です。

(3)　ヘッダの詳細

ヘッダを出力するタイミング

ヘッダを出力するタイミングは，次のとおりです。

Tomcatプロセスモニタが起動してから最初にレコードを出力するとき

日付が変わって新しい統計情報ログに最初にレコードを出力するとき

ヘッダの出力内容

ヘッダの出力内容は，次のとおりです。

Date,ObjectName,"＜ヘッダ名＞"[,"＜ヘッダ名＞"]…

ヘッダの各列は，「Date」，「Object Name」，および各統計情報のヘッダ名です。統計情報のヘッダ名はダブルクォーテーション（"）で囲みます。ヘッダ名にダブルクォーテーションが含まれている場合，ダブルクォーテーション2つ（""）に置き換えます。

(4)　レコードの詳細

ログファイルのヘッダを出力したあと，レコードを出力します。

レコードの形式

レコードの形式は，次のとおりです。

1レコード1行で出力

日時は，プラットフォームのデフォルトタイムゾーンを使用

レコードの出力内容

レコードの出力内容を次の表に示します。

表14‒6　レコードの出力内容

レコードの列

列のヘッダ

出力内容

1列目

Date

統計情報を取得した日付と時刻が，「<西暦>-<月>-<日>△<時>:<分>:<秒>」形式で出力されます。

注　△：半角空白

2列目

ObjectName

次のどちらかが出力されます。

取得したObject Name

空文字

3列目以降

"＜ヘッダ名＞"

統計情報ログにカテゴリごとの統計情報をMBeanサーバから取得し，ダブルクォーテーション（"）で囲んで出力されます。

統計情報の値が取得できなかった場合，ダブルクォーテーションで囲まない空文字列が出力されます。統計情報の値は，使用するJavaVMのバージョンまたはオプションによっては，取得できないことがあります。

(5)　統計情報ログの出力例

統計情報ログの出力例を次に示します。

ObjectNameが空文字の場合

Date,ObjectName,"GC.Minor.Count","GC.Minor.Time","GC.Major.Count","GC.Major.Time","Eden.Used","Eden.Committed","Eden.Max","Eden.Peak.Used","Eden.Peak.Committed","Eden.Peak.Max","Survivor.Used","Survivor.Committed","Survivor.Max","Survivor.Peak.Used","Survivor.Peak.Committed","Survivor.Peak.Max","Old.Used","Old.Committed","Old.Max","Old.Peak.Used","Old.Peak.Committed","Old.Peak.Max"
"2024-01-03 14:13:07",,"549","600","6","669","13592921","23592960","23592960","23592960","23592960","23592960","370688","2883584","2883584","2818048","2883584","2883584","43943744","58720256","58720256","56488208","58720256","58720256"
"2024-01-03 14:13:17",,"549","600","6","669","12814808","23592960","23592960","23592960","23592960","23592960","370688","2883584","2883584","2818048","2883584","2883584","43943744","58720256","58720256","56488208","58720256","58720256"
"2024-01-03 14:13:27",,"550","604","6","669","7414808","23592960","23592960","23592960","23592960","23592960","370688","2883584","2883584","2818048","2883584","2883584","43943744","58720256","58720256","56488208","58720256","58720256"
"2024-01-03 14:13:37",,"551","614","6","669","8491848","23592960","23592960","23592960","23592960","23592960","370688","2883584","2883584","2818048","2883584","2883584","43943744","58720256","58720256","56488208","58720256","58720256"

ObjectNameを出力する場合

Date,ObjectName,"CodeCache.Used","CodeCache.Committed","CodeCache.Max","CodeCache.Peak.Used","CodeCache.Peak.Committed","CodeCache.Peak.Max"
"2024-01-03 14:13:07","java.lang:type=MemoryPool,name=CodeCache","13592921","23592960","23592960","23592960","23592960","23592960"
"2024-01-03 14:13:17","java.lang:type=MemoryPool,name=CodeCache","12814808","23592960","23592960","23592960","23592960","23592960"
"2024-01-03 14:13:27","java.lang:type=MemoryPool,name=CodeCache","7414808","23592960","23592960","23592960","23592960","23592960"
"2024-01-03 14:13:37","java.lang:type=MemoryPool,name=CodeCache","8491848","23592960","23592960","23592960","23592960","23592960"

(6)　カテゴリごとのレコードの出力内容

ここでは，次に示すカテゴリごとのレコードの出力内容を示します。カテゴリについては，「表14‒5　カテゴリと＜統計種別＞の対応」を参照してください。

カテゴリがJavaVMの場合

「表14‒7　カテゴリがJavaVMの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがメモリの場合

「表14‒8　カテゴリがメモリの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがコードキャッシュメモリの場合

「表14‒9　カテゴリがコードキャッシュメモリの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがコードヒープメモリの場合

「表14‒10　カテゴリがコードヒープメモリの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがTomcatの場合

「表14‒11　カテゴリがTomcatの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがシリアルGCの場合

「表14‒12　カテゴリがシリアルGCの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがパラレルGCの場合

「表14‒13　カテゴリがパラレルGCの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがG1GCの場合

「表14‒14　カテゴリがG1GCの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがZGCの場合

「表14‒15　カテゴリがZGCの統計情報ログのレコードの出力内容」を参照してください。

カテゴリがGenerational ZGCの場合

「表14‒16　カテゴリがGenerational ZGCの統計情報ログのレコードの出力内容」を参照してください。

表14‒7　カテゴリがJavaVMの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

LoadedClassCount

ロードされているクラス数（現在値）

LoadedClassCount.high

ロードされているクラス数（前回のログ出力以降に取得できた値の最大値※）

LoadedClassCount.low

ロードされているクラス数（前回のログ出力以降に取得できた値の最小値※）

FileDescriptorCount

開かれているファイルディスクリプタ数（現在値）

FileDescriptorCount.high

開かれているファイルディスクリプタ数（前回のログ出力以降に取得できた値の最大値※）

FileDescriptorCount.low

開かれているファイルディスクリプタ数（前回のログ出力以降に取得できた値の最小値※）

ProcessCpuLoad

プロセスCPU負荷（現在値）

ProcessCpuLoad.high

プロセスCPU負荷（前回のログ出力以降に取得できた値の最大値※）

ProcessCpuLoad.low

プロセスCPU負荷（前回のログ出力以降に取得できた値の最小値※）

SystemCpuLoad

システムCPU負荷（現在値）

SystemCpuLoad.high

システムCPU負荷（前回のログ出力以降に取得できた値の最大値※）

SystemCpuLoad.low

システムCPU負荷（前回のログ出力以降に取得できた値の最小値※）

CpuLoad

CPU負荷（現在値）

CpuLoad.high

CPU負荷（前回のログ出力以降に取得できた値の最大値※）

CpuLoad.low

CPU負荷（前回のログ出力以降に取得できた値の最小値※）

FreeSwapSpaceSize

空きスワップスペースサイズ（単位：バイト）

CommittedVirtualMemorySize

コミットされた仮想メモリ量（単位：バイト）

FreePhysicalMemorySize

空き物理メモリ量（単位：バイト）

FreeMemorySize

空きメモリ量（単位：バイト）

ThreadCount

デーモンスレッドと非デーモンスレッドの数（現在値）

ThreadCount.high

デーモンスレッドと非デーモンスレッドの数（前回のログ出力以降に取得できた値の最大値※）

ThreadCount.low

デーモンスレッドと非デーモンスレッドの数（前回のログ出力以降に取得できた値の最小値※）

PeakThreadCount

ピーク時のデーモンスレッドと非デーモンスレッドの数

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒8　カテゴリがメモリの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

Heap.Used

ヒープメモリのメモリ使用量（単位：バイト）

Heap.Committed

ヒープメモリのコミットされたメモリ量（単位：バイト）

Heap.Max

ヒープメモリの最大メモリ量（単位：バイト）

NonHeap.Used

非ヒープメモリのメモリ使用量（単位：バイト）

NonHeap.Committed

非ヒープメモリのコミットされたメモリ量（単位：バイト）

NonHeap.Max

非ヒープメモリの最大メモリ量（単位：バイト）

FinalizeCount

ファイナライザの保留数

Metaspace.Used

メモリプール（Metaspace）のメモリ使用量（単位：バイト）

Metaspace.Committed

メモリプール（Metaspace）のコミットされたメモリ量（単位：バイト）

Metaspace.Max

メモリプール（Metaspace）の最大メモリ量（単位：バイト）

Metaspace.Peak.Used

メモリプール（Metaspace）のピーク時のメモリ使用量（単位：バイト）

Metaspace.Peak.Committed

メモリプール（Metaspace）のピーク時のコミットされたメモリ量（単位：バイト）

Metaspace.Peak.Max

メモリプール（Metaspace）のピーク時の最大メモリ量（単位：バイト）

CompressedClassSpace.Used

メモリプール（Compressed Class Space）のメモリ使用量（単位：バイト）

CompressedClassSpace.Committed

メモリプール（Compressed Class Space）のコミットされたメモリ量（単位：バイト）

CompressedClassSpace.Max

メモリプール（Compressed Class Space）の最大メモリ量（単位：バイト）

CompressedClassSpace.Peak.Used

メモリプール（Compressed Class Space）のピーク時のメモリ使用量（単位：バイト）

CompressedClassSpace.Peak.Committed

メモリプール（Compressed Class Space）のピーク時のコミットされたメモリ量（単位：バイト）

CompressedClassSpace.Peak.Max

メモリプール（Compressed Class Space）のピーク時の最大メモリ量（単位：バイト）

表14‒9　カテゴリがコードキャッシュメモリの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

CodeCache.Used

メモリプール（CodeCache）のメモリ使用量（単位：バイト）

CodeCache.Committed

メモリプール（CodeCache）のコミットされたメモリ量（単位：バイト）

CodeCache.Max

メモリプール（CodeCache）の最大メモリ量（単位：バイト）

CodeCache.Peak.Used

メモリプール（CodeCache）のピーク時のメモリ使用量（単位：バイト）

CodeCache.Peak.Committed

メモリプール（CodeCache）のピーク時のコミットされたメモリ量（単位：バイト）

CodeCache.Peak.Max

メモリプール（CodeCache）のピーク時の最大メモリ量（単位：バイト）

表14‒10　カテゴリがコードヒープメモリの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

CodeHeap.NonProfiled.Used

メモリプール（CodeHeap 'non-profiled nmethods'）のメモリ使用量（単位：バイト）

CodeHeap.NonProfiled.Committed

メモリプール（CodeHeap 'non-profiled nmethods'）のコミットされたメモリ量（単位：バイト）

CodeHeap.NonProfiled.Max

メモリプール（CodeHeap 'non-profiled nmethods'）の最大メモリ量（単位：バイト）

CodeHeap.NonProfiled.Peak.Used

メモリプール（CodeHeap 'non-profiled nmethods'）のピーク時のメモリ使用量（単位：バイト）

CodeHeap.NonProfiled.Peak.Committed

メモリプール（CodeHeap 'non-profiled nmethods'）のピーク時のコミットされたメモリ量（単位：バイト）

CodeHeap.NonProfiled.Peak.Max

メモリプール（CodeHeap 'non-profiled nmethods'）のピーク時の最大メモリ量（単位：バイト）

CodeHeap.Profiled.Used

メモリプール（CodeHeap 'profiled nmethods'）のメモリ使用量（単位：バイト）

CodeHeap.Profiled.Committed

メモリプール（CodeHeap 'profiled nmethods'）のコミットされたメモリ量（単位：バイト）

CodeHeap.Profiled.Max

メモリプール（CodeHeap 'profiled nmethods'）の最大メモリ量（単位：バイト）

CodeHeap.Profiled.Peak.Used

メモリプール（CodeHeap 'profiled nmethods'）のピーク時のメモリ使用量（単位：バイト）

CodeHeap.Profiled.Peak.Committed

メモリプール（CodeHeap 'profiled nmethods'）のピーク時のコミットされたメモリ量（単位：バイト）

CodeHeap.Profiled.Peak.Max

メモリプール（CodeHeap 'profiled nmethods'）のピーク時の最大メモリ量（単位：バイト）

CodeHeap.NonMethod.Used

メモリプール（CodeHeap 'non-nmethods'）のメモリ使用量（単位：バイト）

CodeHeap.NonMethod.Committed

メモリプール（CodeHeap 'non-nmethods'）のコミットされたメモリ量（単位：バイト）

CodeHeap.NonMethod.Max

メモリプール（CodeHeap 'non-nmethods'）の最大メモリ量（単位：バイト）

CodeHeap.NonMethod.Peak.Used

メモリプール（CodeHeap 'non-nmethods'）のピーク時のメモリ使用量（単位：バイト）

CodeHeap.NonMethod.Peak.Committed

メモリプール（CodeHeap 'non-nmethods'）のピーク時のコミットされたメモリ量（単位：バイト）

CodeHeap.NonMethod.Peak.Max

メモリプール（CodeHeap 'non-nmethods'）のピーク時の最大メモリ量（単位：バイト）

表14‒11　カテゴリがTomcatの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

WebModule.Error.diff

Webアプリケーションのすべてのサーブレットのエラー数（前回のログ出力値からの増加値※）

WebModule.Time.diff

Webアプリケーションのすべてのサーブレットの累積実行時間（前回のログ出力値からの増加値※）

WebModule.Request.diff

Webアプリケーションのすべてのサーブレットのリクエスト数（前回のログ出力値からの増加値※）

WebModule.MaxTime

Webアプリケーションのすべてのサーブレットのリクエスト最大実行時間

ActiveSessions

Webアプリケーションのアクティブなセッション数

ExpiredSessions

Webアプリケーションの期限切れになったセッション数

RejectedSessions

Webアプリケーションの拒否されたセッション数

ThreadPool.Count

スレッドプールが保持するスレッドの総数（現在値）

ThreadPool.Count.high

スレッドプールが保持するスレッドの総数（前回のログ出力以降に取得できた値の最大値※）

ThreadPool.Count.low

スレッドプールが保持するスレッドの総数（前回のログ出力以降に取得できた値の最小値※）

ThreadPool.Busy

リクエスト処理中のスレッド数（現在値）

ThreadPool.Busy.high

リクエスト処理中のスレッド数（前回のログ出力以降に取得できた値の最大値※）

ThreadPool.Busy.low

リクエスト処理中のスレッド数（前回のログ出力以降に取得できた値の最小値※）

ThreadPool.ConnectCount

スレッドプールの現在の接続数

ThreadPool.MaxThreads

スレッドプールの最大接続数

DataSource.Active

アクティブ状態の接続数（データソース）

DataSource.Idle

アイドル状態の接続数（データソース）

DataSource.Wait

接続を待機しているスレッド数（データソース）

DataSource.MaxSize

最大接続数（データソース）

DataSource.Returned.diff

返された接続の総数（データソース）（前回のログ出力値からの増加値※）

ConnectionPool.Active

アクティブ状態の接続数（Tomcat JDBC Connection Pool）

ConnectionPool.Idle

アイドル状態の接続数（Tomcat JDBC Connection Pool）

ConnectionPool.Wait

接続を待機しているスレッド数（Tomcat JDBC Connection Pool）

ConnectionPool.MaxSize

最大接続数（Tomcat JDBC Connection Pool）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒12　カテゴリがシリアルGCの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

GC.Minor.Count.diff

発生したガーベージコレクション（Copy）の回数（前回のログ出力値からの増加値※）

GC.Minor.Time.diff

ガーベージコレクション（Copy）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Major.Count.diff

発生したガーベージコレクション（MarkSweepCompact）の回数（前回のログ出力値からの増加値※）

GC.Major.Time.diff

ガーベージコレクション（MarkSweepCompact）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

Eden.Used

メモリプール（Eden Space）のメモリ使用量（単位：バイト）

Eden.Committed

メモリプール（Eden Space）のコミットされたメモリ量（単位：バイト）

Eden.Max

メモリプール（Eden Space）の最大メモリ量（単位：バイト）

Eden.Peak.Used

メモリプール（Eden Space）のピーク時のメモリ使用量（単位：バイト）

Eden.Peak.Committed

メモリプール（Eden Space）のピーク時のコミットされたメモリ量（単位：バイト）

Eden.Peak.Max

メモリプール（Eden Space）のピーク時の最大メモリ量（単位：バイト）

Survivor.Used

メモリプール（Survivor Space）のメモリ使用量（単位：バイト）

Survivor.Committed

メモリプール（Survivor Space）のコミットされたメモリ量（単位：バイト）

Survivor.Max

メモリプール（Survivor Space）の最大メモリ量（単位：バイト）

Survivor.Peak.Used

メモリプール（Survivor Space）のピーク時のメモリ使用量（単位：バイト）

Survivor.Peak.Committed

メモリプール（Survivor Space）のピーク時のコミットされたメモリ量（単位：バイト）

Survivor.Peak.Max

メモリプール（Survivor Space）のピーク時の最大メモリ量（単位：バイト）

Old.Used

メモリプール（Tenured Gen）のメモリ使用量（単位：バイト）

Old.Committed

メモリプール（Tenured Gen）のコミットされたメモリ量（単位：バイト）

Old.Max

メモリプール（Tenured Gen）の最大メモリ量（単位：バイト）

Old.Peak.Used

メモリプール（Tenured Gen）のピーク時のメモリ使用量（単位：バイト）

Old.Peak.Committed

メモリプール（Tenured Gen）のピーク時のコミットされたメモリ量（単位：バイト）

Old.Peak.Max

メモリプール（Tenured Gen）のピーク時の最大メモリ量（単位：バイト）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒13　カテゴリがパラレルGCの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

GC.Minor.Count.diff

発生したガーベージコレクション（PS Scavenge）の回数（前回のログ出力値からの増加値※）

GC.Minor.Time.diff

ガーベージコレクション（PS Scavenge）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Major.Count.diff

発生したガーベージコレクション（PS MarkSweep）の回数（前回のログ出力値からの増加値※）

GC.Major.Time.diff

ガーベージコレクション（PS MarkSweep）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

Eden.Used

メモリプール（PS Eden Space）のメモリ使用量（単位：バイト）

Eden.Committed

メモリプール（PS Eden Space）のコミットされたメモリ量（単位：バイト）

Eden.Max

メモリプール（PS Eden Space）の最大メモリ量（単位：バイト）

Eden.Peak.Used

メモリプール（PS Eden Space）のピーク時のメモリ使用量（単位：バイト）

Eden.Peak.Committed

メモリプール（PS Eden Space）のピーク時のコミットされたメモリ量（単位：バイト）

Eden.Peak.Max

メモリプール（PS Eden Space）のピーク時の最大メモリ量（単位：バイト）

Survivor.Used

メモリプール（PS Survivor Space）のメモリ使用量（単位：バイト）

Survivor.Committed

メモリプール（PS Survivor Space）のコミットされたメモリ量（単位：バイト）

Survivor.Max

メモリプール（PS Survivor Space）の最大メモリ量（単位：バイト）

Survivor.Peak.Used

メモリプール（PS Survivor Space）のピーク時のメモリ使用量（単位：バイト）

Survivor.Peak.Committed

メモリプール（PS Survivor Space）のピーク時のコミットされたメモリ量（単位：バイト）

Survivor.Peak.Max

メモリプール（PS Survivor Space）のピーク時の最大メモリ量（単位：バイト）

Old.Used

メモリプール（PS Old Gen）のメモリ使用量（単位：バイト）

Old.Committed

メモリプール（PS Old Gen）のコミットされたメモリ量（単位：バイト）

Old.Max

メモリプール（PS Old Gen）の最大メモリ量（単位：バイト）

Old.Peak.Used

メモリプール（PS Old Gen）のピーク時のメモリ使用量（単位：バイト）

Old.Peak.Committed

メモリプール（PS Old Gen）のピーク時のコミットされたメモリ量（単位：バイト）

Old.Peak.Max

メモリプール（PS Old Gen）のピーク時の最大メモリ量（単位：バイト）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒14　カテゴリがG1GCの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

GC.Minor.Count.diff

発生したガーベージコレクション（G1 Young Generation）の回数（前回のログ出力値からの増加値※）

GC.Minor.Time.diff

ガーベージコレクション（G1 Young Generation）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Mixed.Count.diff

発生したガーベージコレクション（G1 Concurrent GC）の回数（前回のログ出力値からの増加値※）

GC.Mixed.Time.diff

ガーベージコレクション（G1 Concurrent GC）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Major.Count.diff

発生したガーベージコレクション（G1 Old Generation）の回数（前回のログ出力値からの増加値※）

GC.Major.Time.diff

ガーベージコレクション（G1 Old Generation）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

Eden.Used

メモリプール（G1 Eden Space）のメモリ使用量（単位：バイト）

Eden.Committed

メモリプール（G1 Eden Space）のコミットされたメモリ量（単位：バイト）

Eden.Max

メモリプール（G1 Eden Space）の最大メモリ量（単位：バイト）

Eden.Peak.Used

メモリプール（G1 Eden Space）のピーク時のメモリ使用量（単位：バイト）

Eden.Peak.Committed

メモリプール（G1 Eden Space）のピーク時のコミットされたメモリ量（単位：バイト）

Eden.Peak.Max

メモリプール（G1 Eden Space）のピーク時の最大メモリ量（単位：バイト）

Survivor.Used

メモリプール（G1 Survivor Space）のメモリ使用量（単位：バイト）

Survivor.Committed

メモリプール（G1 Survivor Space）のコミットされたメモリ量（単位：バイト）

Survivor.Max

メモリプール（G1 Survivor Space）の最大メモリ量（単位：バイト）

Survivor.Peak.Used

メモリプール（G1 Survivor Space）のピーク時のメモリ使用量（単位：バイト）

Survivor.Peak.Committed

メモリプール（G1 Survivor Space）のピーク時のコミットされたメモリ量（単位：バイト）

Survivor.Peak.Max

メモリプール（G1 Survivor Space）のピーク時の最大メモリ量（単位：バイト）

Old.Used

メモリプール（G1 Old Gen）のメモリ使用量（単位：バイト）

Old.Committed

メモリプール（G1 Old Gen）のコミットされたメモリ量（単位：バイト）

Old.Max

メモリプール（G1 Old Gen）の最大メモリ量（単位：バイト）

Old.Peak.Used

メモリプール（G1 Old Gen）のピーク時のメモリ使用量（単位：バイト）

Old.Peak.Committed

メモリプール（G1 Old Gen）のピーク時のコミットされたメモリ量（単位：バイト）

Old.Peak.Max

メモリプール（G1 Old Gen）のピーク時の最大メモリ量（単位：バイト）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒15　カテゴリがZGCの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

GC.Cycles.Count.diff

発生したガーベージコレクション（ZGC Cycles）の回数（前回のログ出力値からの増加値※）

GC.Cycles.Time.diff

ガーベージコレクション（ZGC Cycles）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Pauses.Count.diff

発生したガーベージコレクション（ZGC Pauses）の回数（前回のログ出力値からの増加値※）

GC.Pauses.Time.diff

ガーベージコレクション（ZGC Pauses）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

ZHeap.Used

メモリプール（ZHeap）のメモリ使用量（単位：バイト）

ZHeap.Committed

メモリプール（ZHeap）のコミットされたメモリ量（単位：バイト）

ZHeap.Max

メモリプール（ZHeap）の最大メモリ量（単位：バイト）

ZHeap.Peak.Used

メモリプール（ZHeap）のピーク時のメモリ使用量（単位：バイト）

ZHeap.Peak.Committed

メモリプール（ZHeap）のピーク時のコミットされたメモリ量（単位：バイト）

ZHeap.Peak.Max

メモリプール（ZHeap）のピーク時の最大メモリ量（単位：バイト）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

表14‒16　カテゴリがGenerational ZGCの統計情報ログのレコードの出力内容

＜ヘッダ名＞

出力内容

GC.Minor.Cycles.Count.diff

発生したガーベージコレクション（ZGC Minor Cycles）の回数（前回のログ出力値からの増加値※）

GC.Minor.Cycles.Time.diff

ガーベージコレクション（ZGC Minor Cycles）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Minor.Pauses.Count.diff

発生したガーベージコレクション（ZGC Minor Pauses）の回数（前回のログ出力値からの増加値※）

GC.Minor.Pauses.Time.diff

ガーベージコレクション（ZGC Minor Pauses）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Major.Cycles.Count.diff

発生したガーベージコレクション（ZGC Major Cycles）の回数（前回のログ出力値からの増加値※）

GC.Major.Cycles.Time.diff

ガーベージコレクション（ZGC Major Cycles）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

GC.Major.Pauses.Count.diff

発生したガーベージコレクション（ZGC Major Pauses）の回数（前回のログ出力値からの増加値※）

GC.Major.Pauses.Time.diff

ガーベージコレクション（ZGC Major Pauses）の実行に費やされた時間の合計（前回のログ出力値からの増加値※）（単位：ミリ秒）

Young.Used

メモリプール（ZGC Young Generation）のメモリ使用量（単位：バイト）

Young.Committed

メモリプール（ZGC Young Generation）のコミットされたメモリ量（単位：バイト）

Young.Max

メモリプール（ZGC Young Generation）の最大メモリ量（単位：バイト）

Young.Peak.Used

メモリプール（ZGC Young Generation）のピーク時のメモリ使用量（単位：バイト）

Young.Peak.Committed

メモリプール（ZGC Young Generation）のピーク時のコミットされたメモリ量（単位：バイト）

Young.Peak.Max

メモリプール（ZGC Young Generation）のピーク時の最大メモリ量（単位：バイト）

Old.Used

メモリプール（ZGC Old Generation）のメモリ使用量（単位：バイト）

Old.Committed

メモリプール（ZGC Old Generation）のコミットされたメモリ量（単位：バイト）

Old.Max

メモリプール（ZGC Old Generation）の最大メモリ量（単位：バイト）

Old.Peak.Used

メモリプール（ZGC Old Generation）のピーク時のメモリ使用量（単位：バイト）

Old.Peak.Committed

メモリプール（ZGC Old Generation）のピーク時のコミットされたメモリ量（単位：バイト）

Old.Peak.Max

メモリプール（ZGC Old Generation）のピーク時の最大メモリ量（単位：バイト）

注※

Tomcatサーバプロセス起動後の初回出力時には現在値が出力されます。

(7)　統計情報ログの自動削除

プラットフォームのデフォルトタイムゾーンの日付が変わってから，最初に統計情報ログへ出力するとき，config.properties（本製品の設定ファイル）のstats.log.file-retention-daysプロパティに指定した日数を超える古い統計情報ログは削除されます。例えば，stats.log.file-retention-daysプロパティに7を指定した場合，7日分の統計情報ログを残し，それより前のファイルは削除されます。

(8)　統計情報ログの出力の省略

統計種別に関するすべての統計情報の値がMBeanサーバから取得できなかった場合，該当する統計種別に対応する統計情報ログの出力は行いません。また，Tomcatサーバプロセスの起動後に一度も値が取得できていない場合，該当する統計種別に対応する統計情報ログは作成しません。

15　メッセージ

本製品で出力されるメッセージについて説明します。

15.1　メッセージの形式

メッセージの記述形式，およびjava.util.loggingのレベルを説明します。

15.1.1　メッセージの記述形式

以降の「15.2　メッセージの詳細」では，メッセージを次の形式で記述します。

KDLRnnnnn-Y

メッセージテキスト

可変値に関する説明

説明

メッセージテキストに対する補足説明

対処

ユーザが実施する対処

java.util.loggingのレベル

java.util.loggingのレベル

なお，「可変値に関する説明」，「説明」，「対処」および「java.util.loggingのレベル」はメッセージによって記述しないものもあります。

次に，各項目について説明します。

KDLRnnnnn

メッセージIDを表します。

メッセージIDを構成する要素について，次に説明します。

KDLR

本製品で出力されるメッセージのプリフィックスを示します。

nnnnn

本製品で管理するメッセージ番号を表します。それぞれのメッセージには，5桁の固有の番号が付いています。

Y

メッセージのレベルを表します。メッセージのレベルは英字1文字で示します。

メッセージのレベルを示す文字とその意味を次に示します。

E（Error）

エラーレベルのトラブルが発生したことを通知するメッセージです。

このメッセージが出力されたときは，処理を中断します。

W（Warning）

警告レベルのトラブルが発生したことを通知するメッセージです。

メッセージが出力されたあとも処理を続行します。

I（Information）

システムの動作を通知するメッセージです。

メッセージが出力されたあとも処理を続行します。

メッセージテキスト

本製品で出力されるメッセージテキストを示します。

なお，メッセージテキスト中の可変値（メッセージが出力される状況によって変わる値）は，「xx....xx」（xxは英小文字）の形式で示します。

可変値に関する説明

メッセージテキスト中の可変値に表示される情報を「xx....xx：表示される情報」（xxは英小文字）の形式で示します。可変値に関する説明の記述例を次に示します。

（例）

aa....aa：ファイル名

bb....bb：アプリケーション名

説明

メッセージが通知された要因やメッセージを出力した構成ソフトウェアの動作など，メッセージに対する補足説明を示します。

対処

ユーザが実施する対処を表します。なお，対処方法の「保守員に連絡してください」とは，購入時の契約に基づいて，システム管理者が弊社問い合わせ窓口へ連絡することを示します。

java.util.loggingのレベル

java.util.loggingのレベルを表します。詳細については「15.1.2　java.util.loggingのレベル」を参照してください。

15.1.2　java.util.loggingのレベル

各メッセージのロギング・レベルを示します。次の表にjava.util.loggingのレベルを高いほうから順に示します。レベルが高いほど，重大な問題であることを意味します。

表15‒1　java.util.loggingのレベルとその意味

レベルの高低

java.util.loggingのレベル

意味

高

SEVERE

重大な障害を意味するメッセージです。

│

WARNING

潜在的な問題を意味するメッセージです。

│

INFO

情報レベルのメッセージです。

│

CONFIG

静的な構成メッセージです。

│

FINE

トレース情報を提供するメッセージです。

│

FINER

より詳細なトレース情報を提供するメッセージです。

低

FINEST

非常に詳細なトレース情報を提供するメッセージです。

15.2　メッセージの詳細

KDLR00000-E

The JRE_HOME environment variable is not defined, or it's value is incorrect. If the JAVA_HOME environment variable is defined, then write simply "export JRE_HOME" to setenv.sh.

説明

JRE_HOMEが定義されていません。または，正しい値ではありません。

対処

環境変数JAVA_HOMEが定義されている場合：

setenv.sh（Tomcat起動時の環境変数定義ファイル）にexport JRE_HOMEを追加してください。

環境変数PATHでJavaへのパスが追加されている場合：

setenv.sh（Tomcat起動時の環境変数定義ファイル）にexport JRE_HOMEを追加してください。

JAVA_HOMEが示すJavaや，環境変数PATHで指定するJava以外のJavaを利用する場合：

setenv.sh（Tomcat起動時の環境変数定義ファイル）にexport JRE_HOME=<使用するJavaのディレクトリ>を追加してください。指定するディレクトリは，binディレクトリの親ディレクトリです。

KDLR00001-E

The required command cannot be found. (command = aa....aa)

aa....aa：必要なコマンド名

説明

必要なコマンドが見つかりません。

対処

コマンドがインストールされているかどうかを確認してください。

コマンドへのパスがPATH環境変数に指定されているかどうかを確認してください。

KDLR00100-I

[Default] aa....aa = bb....bb

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：デフォルト値

説明

config.properties（本製品の設定ファイル）によって値が設定されていないプロパティとデフォルト値です。

対処

なし

java.util.loggingのレベル

CONFIG

KDLR00101-I

[Updated] aa....aa = bb....bb

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：設定値

説明

config.properties（本製品の設定ファイル）によって値が設定されているプロパティと設定値です。

対処

なし

java.util.loggingのレベル

CONFIG

KDLR00102-I

[Undefined] aa....aa

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

説明

config.properties（本製品の設定ファイル）によって値が設定されていないプロパティです。

対処

なし

java.util.loggingのレベル

CONFIG

KDLR00103-E

An invalid value was found during validation of the property value. (key = aa....aa, value = bb....bb)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：設定された値

説明

プロパティ値の検証で不正な値が見つかりました。

対処

ファイルの設定内容を確認して，プロパティキーに応じた値の範囲で設定値を記載してください。${XXX}形式を使用している場合は，XXXが示す値も確認してください。

java.util.loggingのレベル

SEVERE

KDLR00104-E

Failed to resolve the embedded variable. (key = aa....aa, value = bb....bb)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：設定値

説明

変数の解決に失敗しました。

対処

原因として，${XXX}形式で指定したXXXが存在しないことが考えられます。XXXが次のどれかに定義されている必要があります。

catalina.home

catalina.base

<環境変数名>

config.properties（本製品の設定ファイル）のキー

<環境変数名>を指定した場合は，環境変数が定義されている必要があります。

java.util.loggingのレベル

SEVERE

KDLR00105-E

The required property is not defined. (key = aa....aa)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

説明

必須プロパティが未設定です。

対処

必須プロパティをconfig.properties（本製品の設定ファイル）で定義してください。

java.util.loggingのレベル

SEVERE

KDLR00106-E

An error occurred during validation of the configuration file. (path = aa....aa)

aa....aa：ファイルパス

説明

config.properties（本製品の設定ファイル）の検証でエラーが発生しました。

対処

このメッセージの前に出力されているエラーメッセージを確認してください。

java.util.loggingのレベル

SEVERE

KDLR00107-I

The common.java.hitachi.javacoredir property in the configuration file will be ignored because the JAVACOREDIR environment variable is already defined. (JAVACOREDIR = aa....aa)

aa....aa：JAVACOREDIR値

説明

環境変数JAVACOREDIRが設定済みのため，config.properties（本製品の設定ファイル）のプロパティcommon.java.hitachi.javacoredirは無視されます。

対処

なし

java.util.loggingのレベル

INFO

KDLR00108-E

The value of the JAVACOREDIR environment variable is not an absolute path. (JAVACOREDIR = aa....aa)

aa....aa：JAVACOREDIRの値

説明

環境変数JAVACOREDIRの値が絶対パスではありません。

対処

環境変数JAVACOREDIRを絶対パスで指定してください。

java.util.loggingのレベル

SEVERE

KDLR00109-E

The variable value <n> in the property key is not a natural number. (key = aa....aa, specification-key = bb....bb)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：プロパティキーの仕様上表記

説明

プロパティキーに含まれる可変値<n>が自然数（1以上の整数）ではありません。

対処

プロパティキーの可変値<n>には，自然数（1以上の整数）を指定してください。先頭に0が付く値は指定できません。

java.util.loggingのレベル

SEVERE

KDLR00110-E

The variable value <group-id> in the required property key is invalid. (key = aa....aa, required-key = bb....bb)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：<group-id>を定義するための必須プロパティキーの仕様上表記

説明

必須プロパティキーに含まれる可変値<group-id>が不正です。

対処

プロパティキーの可変値<group-id>は，次の文字が含まれない1文字以上の文字列にしてください。

.（0x2e）

:（0x3a）

=（0x3d）

java.util.loggingのレベル

SEVERE

KDLR00111-E

The variable value <group-id> in the property key is not defined by another required property. (key = aa....aa, specification-key = bb....bb, required-key = cc....cc)

aa....aa：config.properties（本製品の設定ファイル）のプロパティキー

bb....bb：プロパティキーの仕様上表記

cc....cc：<group-id>を定義するための必須プロパティキーの仕様上表記

説明

プロパティキーに含まれる可変値<group-id>がほかの必須プロパティによって定義されていません。

対処

プロパティキーの可変値<group-id>は，定義するための必須プロパティキーと同一の値を指定してください。対応する必須プロパティについては，エラーとなったプロパティの説明を「13.2　config.properties（本製品の設定ファイル）」で確認してください。

java.util.loggingのレベル

SEVERE

KDLR00112-E

There is an environment variable with the same name as the property key specified as the variable name. (name = aa....aa)

aa....aa：環境変数名

説明

変数名として指定されたプロパティキーと同名の環境変数が存在します。

対処

config.properties（本製品の設定ファイル）のプロパティキー名と同一の環境変数名は，${XXX}形式で指定できません。別の環境変数名で${XXX}形式を指定してください。

java.util.loggingのレベル

SEVERE

KDLR00113-E

Two related properties have value which cannot be specified together. (key1 = aa....aa, value1 = bb....bb, key2 = cc....cc, value2 = dd....dd)

aa....aa：1つ目のconfig.properties（本製品の設定ファイル）のプロパティキー

bb....bb：1つ目の設定値

cc....cc：2つ目のconfig.properties（本製品の設定ファイル）のプロパティキー

dd....dd：2つ目の設定値

説明

2つの関連するプロパティの値に，同時に設定できない値が設定されています。

対処

ファイルの設定内容を確認して，正しい値の組み合わせで設定値を記載してください。

java.util.loggingのレベル

SEVERE

KDLR00200-E

Failed to read the file, or it does not exist. (path = aa....aa, cause = bb....bb)

aa....aa：ファイルパス

bb....bb：原因例外メッセージ

説明

ファイルの読み込みに失敗しました。または，ファイルが存在しません。

対処

次の内容を確認してください。

メッセージ内のファイルパスにファイルが存在するか確認してください。

アクセス権が正しく設定されているか確認してください。

ファイルの種類によっては，絶対パスで指定する必要があります。設定値を確認してください。

java.util.loggingのレベル

SEVERE

KDLR00201-E

Failed to create a directory. (path = aa....aa, cause = bb....bb)

aa....aa：ディレクトリパス

bb....bb：原因例外メッセージ

説明

ディレクトリの作成に失敗しました。

対処

メッセージ内のディレクトリパスに，ファイルが存在していないことを確認してください。また，アクセス権が正しく設定されているか確認してください。

java.util.loggingのレベル

SEVERE

KDLR00202-E

Failed to initialize a log file. (logging-type = aa....aa, property-value = bb....bb, cause = cc....cc)

aa....aa：ログの種類（MESSAGE，MAINTENANCE)

bb....bb：config.properties（本製品の設定ファイル）のパス指定値

cc....cc：原因例外メッセージ

説明

ログファイルの初期化に失敗しました。

対処

次の内容を確認してください。

ログ出力先ディレクトリが存在するか確認してください。また，出力先のアクセス権が正しく設定されているか確認してください。

プリフィックスにファイル名として不正な文字が含まれていないか確認してください。

java.util.loggingのレベル

SEVERE

KDLR00203-E

Failed to delete the file or directory. (path = aa....aa, cause = bb....bb)

aa....aa：ファイルパス，またはディレクトリパス

bb....bb：原因例外メッセージ

説明

ファイルまたはディレクトリの削除に失敗しました。

対処

メッセージ内のパスが使用中か確認してください。また，アクセス権が正しく設定されているか確認してください。

メッセージ内のパスがディレクトリの場合は，ディレクトリ内のすべてのファイル，およびディレクトリについても確認してください。

java.util.loggingのレベル

SEVERE

KDLR00204-E

The file path contains an invalid character. (path = aa....aa, cause = bb....bb)

aa....aa：ファイルパス，またはディレクトリパス

bb....bb：原因例外メッセージ

説明

ファイルパスに不正な文字が含まれています。

対処

ファイルパスとして利用できない文字が含まれていないか確認してください。マルチバイト文字を利用する場合は，OSに設定された文字コードで利用可能であることを確認してください。

java.util.loggingのレベル

SEVERE

KDLR00205-E

Failed to create or write the file. (path = aa....aa, cause = bb....bb)

aa....aa：ファイルパス

bb....bb：原因例外メッセージ

説明

ファイルの作成または書き込みに失敗しました。

対処

メッセージ内のファイルパスのディレクトリが存在するかどうかを確認してください。また，アクセス権が正しく設定されているかを確認してください。

java.util.loggingのレベル

SEVERE

KDLR10000-I

Exporting the snapshot log has finished successfully. (id = aa....aa, path = bb....bb)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

説明

スナップショットログ出力が完了しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10001-E

An error occurred during output of the snapshot log. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

cc....cc：原因例外メッセージ

説明

スナップショットログ出力中にエラーが発生しました。

対処

次の内容を確認し，スナップショットログを手動で再収集してください。

出力先ディレクトリパスが存在するか確認してください。

出力先のアクセス権が正しく設定されているか確認してください。

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR10002-I

Output of the snapshot log will now start. (id = aa....aa, trigger = bb....bb)

aa....aa：スナップショットログID

bb....bb：出力契機

説明

スナップショットログ出力を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR10003-W

Failed to create a temporary directory for storing the results of command execution for the snapshot log. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：コマンド実行結果格納ディレクトリパス

cc....cc：原因例外メッセージ

説明

スナップショットログのためのコマンド実行結果格納ディレクトリの作成に失敗しました。

対処

次の内容を確認し，スナップショットログを手動で再収集してください。

コマンド実行結果格納ディレクトリを格納するディレクトリパスが存在するか確認してください。

出力先のアクセス権が正しく設定されているか確認してください。

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR10004-W

Failed to delete the intermediate file created during output of the snapshot log. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：中間ファイルのパス

cc....cc：原因例外メッセージ

説明

スナップショットログ出力中に作成した中間ファイルの削除に失敗しました。

対処

中間ファイルのパスに残存するファイルを削除してください。

java.util.loggingのレベル

WARNING

KDLR10005-W

An error occurred during execution of a command for the snapshot log. (id = aa....aa, command = bb....bb, path = cc....cc, cause = dd....dd)

aa....aa：スナップショットログID

bb....bb：実行コマンド

cc....cc：出力先ファイルパス

dd....dd：原因例外メッセージ

説明

スナップショットログのためのコマンド実行時にエラーが発生しました。

対処

次の内容を確認し，スナップショットログを手動で再収集してください。

出力先ディレクトリパスが存在するか確認してください。

出力先のアクセス権が正しく設定されているか確認してください。

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR10006-W

The executed command for the snapshot log exited with error status. (id = aa....aa, command = bb....bb, exit-status = cc....cc)

aa....aa：スナップショットログID

bb....bb：実行コマンド

cc....cc：終了ステータス

説明

スナップショットログのために実行したコマンドがエラーステータスで終了しました。

対処

次の内容を確認し，必要があればスナップショットログを手動で再収集してください。

実行ユーザにコマンドの実行権限が正しく設定されているか確認してください。

別プロセスがコマンド実行中でないか確認してください（同時実行できないコマンドの場合）。

環境によっては，常に終了ステータスが異常コードとなるコマンドがあります。その場合，この警告メッセージは無視してください。

java.util.loggingのレベル

WARNING

KDLR10007-W

Failed to output a temporary file for the snapshot log. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

cc....cc：原因例外メッセージ

説明

スナップショットログのための一時ファイルの出力に失敗しました。

対処

次の内容を確認し，スナップショットログを手動で再収集してください。

出力先ディレクトリパスが存在するか確認してください。

出力先のアクセス権が正しく設定されているか確認してください。

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR10008-W

An error occurred during the storing of an entry in the snapshot log. (id = aa....aa, path = bb....bb, entry = cc....cc, cause = dd....dd)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

cc....cc：エントリパス

dd....dd：原因例外メッセージ

説明

スナップショットログファイルにエントリを格納する際，エラーが発生しました。

対処

次の内容を確認し，スナップショットログを手動で再収集してください。

出力先ファイルパスが存在するか確認してください。

出力先のアクセス権が正しく設定されているか確認してください。

エントリパスのアクセス権が正しく設定されているか確認してください。

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR10009-I

Collection of the snapshot log will now start.

説明

スナップショットログ収集を開始します。

対処

なし

KDLR10010-I

Collection of the snapshot log has finished successfully.

説明

スナップショットログ収集が完了しました。

対処

なし

KDLR10011-E

An invalid argument has been specified. (argument = aa....aa)

aa....aa：引数

説明

不正な引数が指定されました。

対処

引数を修正してください。

KDLR10012-E

An invalid option value has been specified. (option = aa....aa, value = bb....bb)

aa....aa：オプション名

bb....bb：オプション値

説明

不正なオプション値が指定されました。

対処

オプション値を修正してください。

KDLR10013-E

An error occurred during communication with the endpoint of the snapshot log collection REST API. (endpoint = aa....aa)

aa....aa：エンドポイント

説明

スナップショットログ収集REST APIのエンドポイントとの通信中にエラーが発生しました。

対処

次の内容を確認してください。

Tomcatプロセスモニタが起動しているか確認してください。

--portオプション指定値が正しいか確認してください。

--endpointオプション指定値が正しいか確認してください。

KDLR10014-E

An error was returned from the snapshot log collection REST API.

説明

スナップショットログ収集REST APIがエラーを返しました。

対処

このメッセージに続いて表示されるエラーメッセージを確認してください。

KDLR10015-E

The collected snapshot log file is broken.

説明

収集したスナップショットログファイルが壊れています。

対処

再度スナップショットログ収集コマンドを実行してください。

KDLR10016-E

An invalid value has been specified for the request parameter of the snapshot log collection REST API. (name = aa....aa, value = bb....bb)

aa....aa：パラメタ名

bb....bb：パラメタ値

説明

スナップショットログ収集REST APIのリクエストパラメタに不正な値が指定されました。

対処

パラメタ値を修正してください。

java.util.loggingのレベル

SEVERE

KDLR10017-E

Failed to output the snapshot log with the snapshot log collection REST API. (cause = aa....aa)

aa....aa：原因例外メッセージ，または原因情報

説明

スナップショットログ収集REST APIからのスナップショットログ出力に失敗しました。

対処

原因例外メッセージ，または原因情報を参照し，原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR10018-I

Sending the snapshot log has finished successfully. (id = aa....aa)

aa....aa：スナップショットログID

説明

スナップショットログの送信が完了しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10019-I

The snapshot log file has been deleted. (id = aa....aa, path = bb....bb)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

説明

スナップショットログファイルが削除されました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10020-E

Failed to send a snapshot log. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

cc....cc：原因例外メッセージ

説明

スナップショットログの送信が失敗しました。

対処

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR10021-W

Failed to delete the snapshot log file. (id = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：スナップショットログID

bb....bb：出力先ファイルパス

cc....cc：原因例外メッセージ

説明

スナップショットログファイルの削除が失敗しました。

対処

必要に応じて，手動でファイルを削除してください。

java.util.loggingのレベル

WARNING

KDLR10022-E

An error occurred during execution of the command. (command = aa....aa, exit-status = bb....bb, message = cc....cc)

aa....aa：コマンド

bb....bb：終了ステータス

cc....cc：エラーメッセージ

説明

コマンドの実行中にエラーが発生しました。

対処

次に出力されるメッセージの対処を参照してください。

KDLR10023-I

Deployed application was detected. (context = aa....aa)

aa....aa：アプリケーションのコンテキストパス

説明

アプリケーションのデプロイを検知しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10024-I

Application's deployment descriptor was detected. (context = aa....aa, path = bb....bb)

aa....aa：アプリケーションのコンテキストパス

bb....bb：デプロイメント・ディスクリプタのパス

説明

アプリケーション中に含まれるデプロイメント・ディスクリプタを検知しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10025-W

Failed to collect the application's deployment descriptor. (context = aa....aa, path = bb....bb, cause = cc....cc)

aa....aa：アプリケーションのコンテキストパス

bb....bb：デプロイメント・ディスクリプタのパス

cc....cc：原因例外メッセージ

説明

アプリケーション中に含まれるデプロイメント・ディスクリプタの収集に失敗しました。

対処

スナップショットログを保守員に送付する際，収集に失敗したデプロイメント・ディスクリプタファイルも添付してください。

java.util.loggingのレベル

WARNING

KDLR10026-I

Sending of the path of the application's deployment descriptor to the Tomcat process monitor will now start. (context = aa....aa)

aa....aa：アプリケーションのコンテキストパス

説明

Tomcatプロセスモニタへアプリケーションのデプロイメント・ディスクリプタパスの送信を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR10027-I

Sending of the path of the application's deployment descriptor to the Tomcat process monitor has been finished successfully. (context = aa....aa)

aa....aa：アプリケーションのコンテキストパス

説明

Tomcatプロセスモニタへのアプリケーションのデプロイメント・ディスクリプタパスの送信が完了しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10028-W

An error occurred during the sending of the path of the application's deployment descriptor to the Tomcat process monitor. (context = aa....aa, cause = bb....bb)

aa....aa：アプリケーションのコンテキストパス

bb....bb：原因例外メッセージ

説明

Tomcatプロセスモニタへアプリケーションのデプロイメント・ディスクリプタパスを送信する際，エラーが発生しました。

対処

スナップショットログを保守員に送付する際，送信に失敗したアプリケーションのデプロイメント・ディスクリプタファイルも送付してください。

java.util.loggingのレベル

WARNING

KDLR10029-W

Failed to delete the output file. (path = aa....aa)

aa....aa：ファイルパス

説明

出力ファイルの削除に失敗しました。

対処

必要に応じて，手動でファイルを削除してください。

KDLR10030-E

Failed to send an error message. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

エラーメッセージの送信が失敗しました。

対処

原因例外メッセージを参照し，原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR10031-I

Output of the snapshot log was canceled. (id = aa....aa, reason = bb....bb)

aa....aa：スナップショットログID

bb....bb：キャンセルした理由

説明

スナップショットログの出力はキャンセルされました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10037-I

Execution of the user command for the snapshot log collection function will start. (id = aa....aa, method = bb....bb, timing = cc....cc)

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティsnapshot.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

bb....bb：スナップショットログ収集方式

on-auto：自動収集

cc....cc：ユーザコマンド実行タイミング

after-collection：スナップショットログ収集後

説明

スナップショットログ収集機能のユーザコマンドの実行を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR10038-I

Execution of the user command for the snapshot log collection function has finished. (id = aa....aa, method = bb....bb, timing = cc....cc, exit-status = dd....dd)

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティsnapshot.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

bb....bb：スナップショットログ収集方式

on-auto：自動収集

cc....cc：ユーザコマンド実行タイミング

after-collection：スナップショットログ収集後

dd....dd：コマンドの終了ステータス

説明

スナップショットログ収集機能のユーザコマンドの実行を終了しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR10039-E

Failed to execute a user command for the snapshot log collection function. (id =aa....aa, method = bb....bb, timing = cc....cc, cause = dd....dd)

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティsnapshot.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

bb....bb：スナップショットログ収集方式

on-auto：自動収集

cc....cc：ユーザコマンド実行タイミング

after-collection：スナップショットログ収集後

dd....dd：原因例外メッセージ

説明

スナップショットログ収集機能のユーザコマンドの実行に失敗しました。

対処

ユーザコマンド定義の各プロパティを見直し，失敗の原因を取り除いてください。

プロパティで指定した実行コマンドが配置されているか確認してください。

プロパティで指定した実行コマンドに適切な実行権限が与えられているか確認してください。

ユーザコマンドの実行中にTomcatプロセスモニタが終了した場合には，原因例外InterruptedExceptionを伴って出力されることがあります。その場合は，ユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，各コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

snapshot.usercommand.defs.<group-id>.stdout.file.path，またはsnapshot.usercommand.defs.<group-id>.stderr.file.pathを指定している場合は，ファイルパスが正しいか確認してください。

問題が解決しない場合は，保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR10040-E

The group ID specified for the property is not defined. (property = aa....aa, group-id = bb....bb)

aa....aa：グループIDを参照先として指定するプロパティキー

bb....bb：指定されたグループIDの値

説明

プロパティで指定されたグループIDが定義されていません。

対処

config.properties（本製品の設定ファイル）を確認し，指定されたグループID（<group-id>）を持つ，次のユーザコマンド定義が存在するかどうかを確認してください。

snapshot.usercommand.defs.<group-id>.command

存在しない場合は，プロパティの説明に従ってユーザコマンドを定義し，適切な<group-id>を指定してください。

snapshot.usercommand.defs.<group-id>.commandについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

java.util.loggingのレベル

SEVERE

KDLR10041-W

Some user commands might be running when the snapshot log collection function is terminated.

説明

スナップショットログ収集機能終了時に，幾つかのユーザコマンドが実行中の可能性があります。

対処

KDLR10037-I，KDLR10039-E，およびKDLR10043-Wメッセージに出力されるユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，各コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

java.util.loggingのレベル

WARNING

KDLR10042-W

Execution of the user commands waiting execution has canceled. (id = [aa....aa])

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティsnapshot.usercommand.defs.<group-id>.commandの<group-id>部分をコンマ区切りで表示）

このプロパティについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

説明

実行待ちのユーザコマンドをキャンセルしました。

対処

ユーザコマンド定義のIDを基に，キャンセルされたユーザコマンドを確認し，各コマンドに手動実行などの必要な手順がある場合は，実施してください。

キャンセルの原因がユーザコマンドの実行に時間が掛かっているだけの場合は，ユーザコマンドのタイムアウトに関連するパラメタ値やユーザコマンドの実行で使用するスレッドプールのサイズを見直してください。

java.util.loggingのレベル

WARNING

KDLR10043-W

A timeout occurred during execution of the user command for the snapshot log collection function. (id = aa....aa, method = bb....bb, timing = cc....cc, timeout = dd....dd)

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティsnapshot.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

bb....bb：スナップショットログ収集方式

on-auto：自動収集

cc....cc：ユーザコマンド実行タイミング

after-collection：スナップショットログ収集後

dd....dd：タイムアウト時間

説明

スナップショットログ収集機能のユーザコマンドの実行がタイムアウトしました。

対処

ユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，各コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

ユーザコマンドの実行に時間が掛かっているだけの場合は，ユーザコマンド定義のIDを基に，ユーザコマンドのタイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

WARNING

KDLR10044-E

A timeout occurred during the execution of the snapshot log collection command.

説明

スナップショットログ収集コマンドがタイムアウトしました。

対処

--timeout-secオプション指定値を見直してください。適切な値が不明な場合は，--timeout-secオプションを指定しないでください。

java.util.loggingのレベル

SEVERE

KDLR10045-E

Failed to write the snapshot log file. (path = aa....aa)

aa....aa：スナップショットログファイルの出力先

説明

スナップショットログファイルの書き込み時にエラーが発生しました。

対処

次の内容を確認してください。

--fileオプション指定値のファイルパスが正しいかどうか

--fileオプション指定値に書き込み権限が付与されているかどうか

--fileオプションを指定していない場合は，スナップショットログ収集コマンドの実行場所に書き込み権限が付与されているかどうか

java.util.loggingのレベル

SEVERE

KDLR10047-W

Skipped collecting thread dump because the monitored process had already stopped.

説明

モニタ対象のプロセスが停止していたため，スレッドダンプを取得しませんでした。

対処

なし

java.util.loggingのレベル

WARNING

KDLR10050-E

Failed to stop the thread dump command. (command = aa....aa, process-id = bb....bb)

aa....aa：コマンド

bb....bb：コマンドプロセスのプロセスID

説明

スレッドダンプ取得コマンドの停止に失敗しました。

対処

OSの機能を使用して指定されたプロセスIDのプロセスを停止してください。

java.util.loggingのレベル

SEVERE

KDLR10051-E

A timeout occurred during execution of the command for the snapshot log collection function. (command = aa....aa, process-id = bb....bb, timeout = cc....cc)

aa....aa：コマンド

bb....bb：コマンドプロセスのプロセスID

cc....cc：タイムアウト時間

説明

スナップショットログ収集機能のコマンドの実行がタイムアウトしました。

対処

コマンドが終了していないおそれがあります。必要に応じて，OSの機能を使用して指定されたプロセスIDのプロセスを停止してください。

java.util.loggingのレベル

SEVERE

KDLR20100-I

The health check of the Tomcat process will now start.

説明

Tomcatサーバプロセス上の稼働監視が開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20101-E

An error occurred during communication with the health check component. (URL = aa....aa, HTTP-status-code = bb....bb)

aa....aa：URL

bb....bb：HTTPステータスコード

説明

稼働監視コンポーネントへの通信中にエラーが発生しました。

対処

Tomcatプロセスモニタが正常に稼働していることを確認してください。

java.util.loggingのレベル

SEVERE

KDLR20102-E

A timeout occurred during communication with the health check component. (URL = aa....aa, cause = bb....bb)

aa....aa：URL

bb....bb：原因例外メッセージ

説明

稼働監視コンポーネントへの通信中にタイムアウトが発生しました。

対処

タイムアウトに関連するパラメタ値を見直してください。KDLR20100-Iの直後に出力されている場合は，Tomcatプロセスモニタのポートのパラメタ値と，指定したポートのファイアウォールの設定を見直してください。

java.util.loggingのレベル

SEVERE

KDLR20103-E

An error occurred during communication with the health check component. (port = aa....aa, request-uri = bb....bb, cause = cc....cc)

aa....aa：ポート番号

bb....bb：リクエストURI

cc....cc：原因例外メッセージ

説明

稼働監視コンポーネントへの通信中にエラーが発生しました。

対処

Tomcatプロセスモニタが正常に稼働していることを確認してください。解決しない場合は，保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20105-E

An error occurred while processing lifecycle event. (type = aa....aa, data = bb....bb, src = cc....cc, cause = dd....dd)

aa....aa：イベント種別

bb....bb：イベントデータ

cc....cc：イベント発行元

dd....dd：原因例外メッセージ

説明

ライフサイクルイベント処理中にエラーが発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20106-E

An error occurred while processing container event. (type = aa....aa, data = bb....bb, src = cc....cc, cause = dd....dd)

aa....aa：イベント種別

bb....bb：イベントデータ

cc....cc：イベント発行元

dd....dd：原因例外メッセージ

説明

コンテナイベント処理中にエラーが発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20200-I

The health check component will now start.

説明

稼働監視コンポーネントが開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20201-E

An error occurred while starting health check component. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

稼働監視コンポーネントの開始中にエラーが発生しました。

対処

KDLR20205-EまたはKDLR20206-Eが出力されている場合は，各メッセージに従って対処してください。それ以外の場合は，保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20202-E

An error occurred while receiving data on the servlet. (request-uri = aa....aa, cause = bb....bb)

aa....aa：リクエストURI

bb....bb：原因例外メッセージ

説明

サーブレットでのデータ受信中に例外が発生しました。

対処

不正なアクセスが起きていないか確認してください。

java.util.loggingのレベル

SEVERE

KDLR20203-E

An error occurred while processing data on the servlet. (request-uri = aa....aa, cause = bb....bb)

aa....aa：リクエストURI

bb....bb：原因例外メッセージ

説明

サーブレットでのデータ処理中に例外が発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20204-E

An error occurred while sending data on the servlet. (request-uri = aa....aa, cause = bb....bb)

aa....aa：リクエストURI

bb....bb：原因例外メッセージ

説明

サーブレットでのデータ送信中に例外が発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20205-E

The Tomcat log directory cannot be found. (log-directory = aa....aa)

aa....aa：ログディレクトリ

説明

Tomcatログディレクトリが見つかりません。

対処

Tomcatログ（Tomcatサーバプロセスが出力するログ）に関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR20206-E

An error occurred while trying to access Tomcat log files. (log-directory = aa....aa, log-file-name = bb....bb, cause = cc....cc)

aa....aa：ログディレクトリ

bb....bb：ログファイル名（glob形式）

cc....cc：原因例外メッセージ

説明

Tomcatログファイルへのアクセス中にエラーが発生しました。

対処

common.baseとsnapshot.include.pathsで指定されたディレクトリや更新チェック用ログファイルのアクセス権と，Tomcatログに関連するパラメタ値を見直してください。

common.base，およびsnapshot.include.pathsは，config.properties（本製品の設定ファイル）のプロパティです。common.baseについては「(1)　本製品全体に関するプロパティ」を，snapshot.include.pathsについては「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

java.util.loggingのレベル

SEVERE

KDLR20207-E

Any updated Tomcat log files cannot be found since startup. (log-directory = aa....aa, log-file-name = bb....bb)

aa....aa：ログディレクトリ

bb....bb：ログファイル名（glob形式）

説明

起動してから更新されたTomcatログファイルが見つかりません。

対処

スナップショットログを収集する設定と，Tomcatログに関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR20208-E

A timeout occurred during the wait for server initialization to finish. (init-delay = aa....aa)

aa....aa：サーバ初期化完了待ちタイムアウト時間

説明

サーバ初期化完了待ちがタイムアウトしました。

対処

Tomcatサーバプロセスへの稼働監視用ライフサイクルリスナーの設定を見直してください。ライフサイクルリスナーの設定が正常な場合は，タイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR20209-E

A timeout occurred during the wait for server startup to finish. (start-delay = aa....aa)

aa....aa：サーバ開始完了待ちタイムアウト時間

説明

サーバ開始完了待ちがタイムアウトしました。

対処

Tomcatサーバプロセス開始が完了しない原因がTomcatサーバプロセスが出力するログなどから分かる場合には，その原因を取り除いてください。Tomcatサーバプロセス開始に時間が掛かっているだけの場合は，タイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR20210-I

Monitoring the HTTP connector by health check request will now start.

説明

ヘルスチェックリクエストによるHTTPコネクタの監視を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20211-W

Available HTTP connectors cannot be found on the Tomcat process.

説明

TomcatサーバプロセスにHTTPプロトコルが使えるコネクタが存在しません。

対処

HTTPプロトコルが使えるコネクタを追加してください。ConnectorコンポーネントのSSLEnabled属性がtrueの場合はHTTPS用のコネクタと判断します。また，ポートにバインドできていないコネクタは，有効なHTTPコネクタではないと判断しますので，Connectorコンポーネントのport属性やServerコンポーネントのportOffset属性を見直してください。

java.util.loggingのレベル

WARNING

KDLR20214-W

An error occurred during communication with the HTTP connector. (URL = aa....aa, cause = bb....bb)

aa....aa：URL

bb....bb：原因例外メッセージ

説明

HTTPコネクタへの通信中にエラーが発生しました。

対処

Tomcatサーバプロセスが正常に稼働していることを確認してください。ヘルスチェックHTTPリクエストが失敗する原因がログなどから分かる場合は，その原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR20215-W

An error occurred during communication with the HTTP connector. (URL = aa....aa, HTTP-status-code = bb....bb)

aa....aa：URL

bb....bb：HTTPステータスコード

説明

HTTPコネクタへの通信中にエラーが発生しました。

対処

Tomcatサーバプロセスが正常に稼働していることを確認してください。ヘルスチェックHTTPリクエストが失敗する原因がログなどから分かる場合は，その原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR20216-W

A timeout occurred during communication with the HTTP connector. (URL = aa....aa, cause = bb....bb)

aa....aa：URL

bb....bb：原因例外メッセージ

説明

HTTPコネクタへの通信中にタイムアウトが発生しました。

対処

Tomcatサーバプロセスが正常に稼働していることを確認してください。正常に稼働している場合は，タイムアウトに関連するパラメタ値を見直してください。

Tomcatサーバプロセス開始直後に出力されている場合は，Tomcatサーバプロセスのポートのパラメタ値と，指定したポートのファイアウォールの設定を見直してください。

java.util.loggingのレベル

WARNING

KDLR20217-E

An error occurred during communication with the HTTP connector. (hostname = aa....aa, port = bb....bb, request-uri = cc....cc, cause = dd....dd)

aa....aa：ホスト名

bb....bb：ポート番号

cc....cc：リクエストURI

dd....dd：原因例外メッセージ

説明

HTTPコネクタへの通信中にエラーが発生しました。

対処

Tomcatサーバプロセスが正常に稼働していることを確認してください。解決しない場合は，保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20218-I

Communication with the HTTP connector was successfully established for the first time since an error or timeout occurred. (URL = aa....aa)

aa....aa：URL

説明

エラーまたはタイムアウトが発生してから初めてHTTPコネクタへの通信が成功しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR20219-I

The StuckThreadDetectionValve monitoring of the health check component will now start.

説明

稼働監視コンポーネントの停滞検知バルブ監視を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20220-W

A stuck thread was detected by the StuckThreadDetectionValve. (valve-object-name = aa....aa)

aa....aa：バルブのObjectName

説明

停滞したスレッドを検知しました。

対処

Tomcatサーバプロセスが正常に稼働しているか確認してください。停滞したスレッドやインタラプトされたスレッドの原因がログなどから分かる場合は，その原因を取り除いてください。

java.util.loggingのレベル

WARNING

KDLR20221-I

Stuck thread was no longer detected by the StuckThreadDetectionValve for the first time since the stuck thread detection. (valve-object-name = aa....aa)

aa....aa：バルブのObjectName

説明

停滞スレッド検知以降で初めて，停滞したスレッドが検知されませんでした。

対処

なし

java.util.loggingのレベル

INFO

KDLR20222-I

The heartbeat monitoring of the health check component will now start.

説明

稼働監視コンポーネントのハートビート監視を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20223-W

A timeout occurred during the wait for the heartbeat from the Tomcat process. (heartbeat-delay = aa....aa, last-heartbeat-received-time = bb....bb)

aa....aa：ハートビートタイムアウト時間

bb....bb：ハートビート最終受信時刻（初回の受信時は"-"）

説明

ハートビートがタイムアウトしました。

対処

Tomcatサーバプロセスが正常に稼働しているか確認してください。正常に稼働している場合は，ハートビートに関連するパラメタ値を見直してください。

java.util.loggingのレベル

WARNING

KDLR20224-I

The heartbeat has been received for the first time since a timeout occurred.

説明

タイムアウト発生以降で初めて，ハートビートを受信しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR20225-I

The aa....aa event occurred. The specified action will be executed. (action = [bb....bb], event-property = cc....cc)

aa....aa：イベントタイプ（次のうち1つ）

heartbeatdelay：ハートビート監視

httprequest：ヘルスチェック

stuckthread：リクエスト停滞監視

startdelay：プロセス起動監視

shutdown：プロセス生存監視

bb....bb：実行されるアクション（次のうち1つまたは複数をコンマ区切りで表示）

snapshot：スナップショットログ収集

terminate：Tomcatサーバプロセス停止

ユーザコマンド定義のID：ユーザコマンドの実行

cc....cc：JSON形式のイベントプロパティ

説明

aa....aaイベントが発生しました。指定されたアクションが実行されます。

対処

なし

java.util.loggingのレベル

INFO

KDLR20226-I

Execution of the user command for the aa....aa event will now start. (id = bb....bb, reason = cc....cc)

aa....aa：イベントタイプ（次のうち1つ）

heartbeatdelay：ハートビート監視

httprequest：ヘルスチェック

stuckthread：リクエスト停滞監視

startdelay：プロセス起動監視

shutdown：プロセス生存監視

bb....bb：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティhealthcheck.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

cc....cc：イベント発行要因

failure：障害イベント

recovery：回復イベント

説明

aa....aaイベントに対するユーザコマンドの実行を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR20227-I

Execution of the user command for the aa....aa event has finished. (id = bb....bb, exit-status = cc....cc)

aa....aa：イベントタイプ（次のうち1つ）

heartbeatdelay：ハートビート監視

httprequest：ヘルスチェック

stuckthread：リクエスト停滞監視

startdelay：プロセス起動監視

shutdown：プロセス生存監視

bb....bb：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティhealthcheck.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

cc....cc：コマンドの終了ステータス

説明

aa....aaイベントに対するユーザコマンドの実行を終了しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR20228-E

Failed to execute a user command for the aa....aa event. (id = bb....bb, cause = cc....cc)

aa....aa：イベントタイプ（次のうち1つ）

heartbeatdelay：ハートビート監視

httprequest：ヘルスチェック

stuckthread：リクエスト停滞監視

startdelay：プロセス起動監視

shutdown：プロセス生存監視

bb....bb：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティhealthcheck.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

cc....cc：原因例外メッセージ

説明

aa....aaイベントに対するユーザコマンドの実行に失敗しました。

対処

ユーザコマンド定義の各プロパティを次の観点で見直し，失敗の原因を取り除いてください。

プロパティで指定した実行コマンドが配置されているかどうかを確認してください。

プロパティで指定した実行コマンドに適切な実行権限が与えられているかどうかを確認してください。

ユーザコマンドの実行中にTomcatプロセスモニタが終了した場合には，原因例外InterruptedExceptionを伴って出力されることがあります。その場合は，ユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，各コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

healthcheck.usercommand.defs.<group-id>.stdout.file.path，またはhealthcheck.usercommand.defs.<group-id>.stderr.file.pathを指定している場合は，ファイルパスが正しいどうかを確認してください。

問題が解決しない場合は，保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR20229-E

The group ID specified for the property is not defined. (property = aa....aa, group-id = bb....bb)

aa....aa：グループIDを参照先として指定するプロパティキー

bb....bb：指定されたグループIDの値

説明

プロパティで指定されたグループIDが定義されていません。

対処

config.properties（本製品の設定ファイル）を確認し，指定されたグループID（<group-id>）を持つ次のユーザコマンド定義が存在するかを確認してください。

healthcheck.usercommand.defs.<group-id>.command

存在しない場合は，プロパティの説明に従ってユーザコマンドを定義し，適切な<group-id>を指定してください。

healthcheck.usercommand.defs.<group-id>.commandについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

java.util.loggingのレベル

SEVERE

KDLR20230-W

Some user commands might be running while the health check component is stopped.

説明

稼働監視コンポーネントの停止中に，幾つかのユーザコマンドが実行中の可能性があります。

対処

KDLR20228-EやKDLR20226-Iメッセージに出力されるユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，各コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

java.util.loggingのレベル

WARNING

KDLR20231-W

Execution of the user commands waiting execution has canceled. (id = aa....aa)

aa....aa：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティhealthcheck.usercommand.defs.<group-id>.commandの<group-id>部分（コンマ区切り表示）

このプロパティについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

説明

実行待ちのユーザコマンドをキャンセルしました。

対処

ユーザコマンド定義のIDを基に，キャンセルされたユーザコマンドを確認し，各コマンドに手動実行などの必要な手順がある場合は，実施してください。

キャンセルの原因がユーザコマンドの実行に時間が掛かっているだけの場合は，ユーザコマンドのタイムアウトに関連するパラメタ値やユーザコマンドの実行で使用するスレッドプールのサイズを見直してください。

java.util.loggingのレベル

WARNING

KDLR20232-W

A timeout occurred during execution of the user command for the aa....aa event. (id = bb....bb, timeout = cc....cc)

aa....aa：イベントタイプ（次のうち1つ）

heartbeatdelay：ハートビート監視

httprequest：ヘルスチェック

stuckthread：リクエスト停滞監視

startdelay：プロセス起動監視

shutdown：プロセス生存監視

bb....bb：ユーザコマンド定義のID

config.properties（本製品の設定ファイル）内のプロパティhealthcheck.usercommand.defs.<group-id>.commandの<group-id>部分

このプロパティについては，「(3)　稼働監視機能に関するプロパティ」を参照してください。

cc....cc：タイムアウト時間

説明

aa....aaイベントに対するユーザコマンドの実行がタイムアウトしました。

対処

ユーザコマンド定義のIDを基に，ユーザコマンドが正常に完了したかどうかを確認してください。確認の方法は，コマンドによって異なります。各コマンドに必要な回復手順がある場合は，その回復手順を実施してください。

ユーザコマンドの実行に時間が掛かっているだけの場合は，ユーザコマンド定義のIDを基に，ユーザコマンドのタイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

WARNING

KDLR30000-I

The tracer has started.

説明

トレーサを開始しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR30001-E

An error occurred during the processing to start the tracer.

説明

トレーサの開始処理でエラーが発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR30002-I

The tracer has stopped.

説明

トレーサを停止しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR30003-E

An error occurred during the processing to stop the tracer.

説明

トレーサの停止処理でエラーが発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

KDLR30004-W

The local address cannot be obtained. The local address will be logged as "0.0.0.0".

説明

ローカルアドレスを取得できません。ローカルアドレスを0.0.0.0に設定します。

対処

java.net.InetAddress.getLocalHostメソッドがjava.net.UnknownHostExceptionをスローする問題を解決してください。

java.util.loggingのレベル

WARNING

KDLR30005-W

The IPv4 local address cannot be obtained. The local address will be logged as "0.0.0.0".

説明

IPv4のローカルアドレスを取得できません。ローカルアドレスを0.0.0.0に設定します。

対処

java.net.InetAddress.getLocalHostメソッドがjava.net.Inet4Addressオブジェクトを返却しない問題を解決してください。

java.util.loggingのレベル

WARNING

KDLR40000-E

Failed to start the Tomcat process monitor.

説明

Tomcatプロセスモニタの起動に失敗しました。

対処

このメッセージの前に出力されているエラーメッセージを確認してください。

java.util.loggingのレベル

SEVERE

KDLR40001-W

A signal from the OS has been received.

説明

OSからのシグナルを受信しました。

対処

なし

java.util.loggingのレベル

WARNING

KDLR40002-W

A request to stop the Tomcat process will be sent. (process-id = aa....aa)

aa....aa：TomcatサーバプロセスのプロセスID

説明

Tomcatサーバプロセスの停止を試みます。

対処

なし

java.util.loggingのレベル

WARNING

KDLR40003-I

The Tomcat process will now start.

説明

Tomcatサーバプロセスを開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR40004-I

The end of the Tomcat process was detected. (process-id = aa....aa, exit-status = bb....bb)

aa....aa：TomcatサーバプロセスのプロセスID

bb....bb：終了ステータス

説明

Tomcatサーバプロセスの終了を検知しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR40005-I

The monitor will request collection of the snapshot log. (process-id = aa....aa)

aa....aa：TomcatサーバプロセスのプロセスID

説明

スナップショットログ収集要求を発行します。

対処

なし

java.util.loggingのレベル

INFO

KDLR40006-I

A request to stop the Tomcat process has been received from the health check module. (process-id = aa....aa)

aa....aa：TomcatサーバプロセスのプロセスID

説明

稼働監視モジュールからTomcatサーバプロセスの終了要求を受信しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR40007-E

Failed to start the Tomcat process. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

Tomcatサーバプロセスの起動に失敗しました。

対処

Tomcatのスクリプトまたは本製品が提供するスクリプトに，適切な実行権限が設定されているか確認してください。

java.util.loggingのレベル

SEVERE

KDLR40008-I

The Tomcat process has started. (process-id = aa....aa)

aa....aa：TomcatサーバプロセスのプロセスID

説明

Tomcatサーバプロセスを起動しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR40009-E

Failed to initialize the HTTP function of the Tomcat process monitor. (cause = aa....aa)

aa....aa：原因例外メッセージ，または原因情報

説明

TomcatプロセスモニタのHTTP機能の初期化に失敗しました。

対処

TomcatプロセスモニタのHTTP機能に関する設定値を確認してください。

java.util.loggingのレベル

SEVERE

KDLR40010-W

The Tomcat process monitor will stop soon. However, the Tomcat process might continue to run. (process-id = aa....aa)

aa....aa：TomcatサーバプロセスのプロセスID

説明

Tomcatプロセスモニタはまもなく停止します。ただし，Tomcatサーバプロセスは動き続けている可能性があります。

対処

必要に応じて，OSのコマンドを利用してTomcatサーバプロセスを停止してください。

java.util.loggingのレベル

WARNING

KDLR40012-E

SecurityManager is not allowed on the Tomcat process monitor.

説明

Tomcatプロセスモニタでセキュリティマネージャは許可されていません。

対処

Tomcatプロセスモニタのconfig.properties（本製品の設定ファイル）内のプロパティmonitor.jvm.optionsから，-Djava.security.managerを削除してください。

java.util.loggingのレベル

SEVERE

KDLR40013-W

Failed to finalize the HTTP function of the Tomcat process monitor. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

TomcatプロセスモニタのHTTP機能の終了処理に失敗しました。

対処

このメッセージ以前にエラーメッセージが出力されて，Tomcatプロセスモニタの起動に失敗している場合は，前のエラーメッセージの対処を実施してください。

このメッセージ以前にエラーメッセージが出力されていない場合は，この警告メッセージを無視してください。

java.util.loggingのレベル

WARNING

KDLR40014-I

A request to stop the Tomcat process has been received from the statistical information output module. (process-id = aa....aa)

aa....aa：TomcatプロセスのプロセスID

説明

統計情報出力モジュールからTomcatプロセスの終了要求を受信しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR40067-E

A timeout occurred during snapshot log collection when the process monitor was terminated. (timeout = aa....aa)

aa....aa：タイムアウト時間

説明

プロセスモニタ終了時のスナップショットログ収集がタイムアウトしました。

対処

ホストマシンの情報収集で異常が発生しているおそれがあります。ホストマシンの状態を確認し，必要に応じて再起動してください。

java.util.loggingのレベル

SEVERE

KDLR50000-I

The statistical information output function will now start.

説明

統計情報出力機能を開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR50001-I

The statistical information output function has started.

説明

統計情報出力機能が起動しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR50002-E

Failed to start the statistical information output function. (timeout = aa....aa)

aa....aa：タイムアウト時間

説明

統計情報出力機能の起動に失敗しました。

対処

KDLR00200-Eメッセージが出力されている場合は，メッセージに従って対処してください。統計情報出力機能の開始に時間が掛かっているだけの場合は，タイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR50003-I

The statistical information output listener will now start.

説明

統計情報出力リスナーを開始します。

対処

なし

java.util.loggingのレベル

INFO

KDLR50004-I

The statistical information output listener has started.

説明

統計情報出力リスナが起動しました。

対処

なし

java.util.loggingのレベル

INFO

KDLR50005-E

Failed to start the statistical information output listener. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

統計情報出力リスナの起動に失敗しました。

対処

Tomcatサーバプロセスが正常に稼働していることを確認してください。正常に稼働している場合は，タイムアウトに関連するパラメタ値を見直してください。

java.util.loggingのレベル

SEVERE

KDLR50007-E

Communication failed between the statistical information output listener and the statistical information output servlet. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

統計情報出力リスナと統計情報出力サーブレットの通信に失敗しました。

対処

Tomcatプロセスモニタが正常に稼働していることを確認してください。原因がログから分かる場合は，その原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR50008-E

An error occurred during communication between the statistical information output listener and the statistical information output servlet. (HTTP-status-code = aa....aa, action = bb....bb, category-id =cc....cc )

aa....aa：HTTPステータスコード

bb....bb：アクション

cc....cc：統計種別

説明

統計情報出力リスナと統計情報出力サーブレットの通信中にエラーが発生しました。

対処

Tomcatプロセスモニタが正常に稼働していることを確認してください。原因がログから分かる場合は，その原因を取り除いてください。

java.util.loggingのレベル

SEVERE

KDLR50009-E

An operation in the statistical information log file failed. (path = aa....aa, cause = bb....bb)

aa....aa：統計情報ログファイルパス

bb....bb：原因例外メッセージ

説明

統計情報ログファイルの操作に失敗しました。

対処

統計情報ログファイルの出力先ディレクトリが存在するかどうかを確認してください。また，出力先ディレクトリのアクセス権が正しく設定されているか確認してください。

java.util.loggingのレベル

SEVERE

KDLR99998-E

An unexpected exception occurred. (cause = aa....aa)

aa....aa：原因例外メッセージ

説明

予期しない例外が発生しました。

対処

保守員に連絡してください。

java.util.loggingのレベル

SEVERE

16　JavaVM起動オプション

JavaVM起動オプションについて説明します。日立JavaVMを使用する場合と，他社製JavaVMを使用する場合とで，指定できるJavaVM起動オプションが異なります。

16.1　日立JavaVMを使用する場合

日立JavaVM独自起動オプションのデフォルト値と変更可否について説明します。

表16‒1　日立JavaVM独自起動オプションのデフォルト値と変更可否（Tomcatプロセスモニタ）

オプション名称

日立JavaVMのデフォルト値

Tomcatプロセスモニタ

デフォルト値

変更可否

-XX:[+|-]HitachiThreadDump

-XX:+HitachiThreadDump

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiThreadDumpToStdout

-XX:+HitachiThreadDumpToStdout

-XX:-HitachiThreadDumpToStdout

不可

-XX:[+|-]HitachiThreadDumpWithHashCode

-XX:+HitachiThreadDumpWithHashCode

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiThreadDumpWithCpuTime

-XX:+HitachiThreadDumpWithCpuTime

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiThreadDumpWithBlockCount

-XX:+HitachiThreadDumpWithBlockCount

JavaVMデフォルト値と同じ

不可

-XX:HitachiJavaLog

-XX:HitachiJavaLog:javalog

-XX:HitachiJavaLog:${common.base}/pmjavalog

可※

-XX:HitachiJavaLogFileSize

-XX:HitachiJavaLogFileSize=256k

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiJavaLogNoMoreOutput

-XX:+HitachiJavaLogNoMoreOutput

JavaVMデフォルト値と同じ

不可

-XX:HitachiJavaLogNumberOfFile

-XX:HitachiJavaLogNumberOfFile=4

JavaVMデフォルト値と同じ

不可

-XX:[+|-]JavaLogAsynchronous

-XX:-JavaLogAsynchronous

JavaVMデフォルト値と同じ

不可

-XX:[+|-]StandardLogToHitachiJavaLog

-XX:-StandardLogToHitachiJavaLog

-XX:+StandardLogToHitachiJavaLog

不可

-XX:[+|-]HitachiOutputMilliTime

-XX:-HitachiOutputMilliTime

-XX:+HitachiOutputMilliTime

不可

-XX:[+|-]HitachiVerboseGC

-XX:-HitachiVerboseGC

-XX:+HitachiVerboseGC

不可

-XX:[+|-]HitachiCommaVerboseGC

-XX:-HitachiCommaVerboseGC

JavaVMデフォルト値と同じ

不可

-XX:HitachiVerboseGCIntervalTime

-XX:HitachiVerboseGCIntervalTime=0

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintCause

-XX:+HitachiVerboseGCPrintCause

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintDate

-XX:+HitachiVerboseGCPrintDate

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCCpuTime

-XX:+HitachiVerboseGCCpuTime

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintTenuringDistribution

-XX:-HitachiVerboseGCPrintTenuringDistribution

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintJVMInternalMemory

-XX:+HitachiVerboseGCPrintJVMInternalMemory

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintThreadCount

-XX:+HitachiVerboseGCPrintThreadCount

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiVerboseGCPrintDeleteOnExit

-XX:+HitachiVerboseGCPrintDeleteOnExit

JavaVMデフォルト値と同じ

不可

-XX:[+|-]PrintCodeCacheInfo

-XX:+PrintCodeCacheInfo

JavaVMデフォルト値と同じ

不可

-XX:CodeCacheInfoPrintRatio

-XX:CodeCacheInfoPrintRatio=80

JavaVMデフォルト値と同じ

不可

-XX:[+|-]PrintCodeCacheFullMessage

-XX:+PrintCodeCacheFullMessage

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiOutOfMemoryCause

-XX:-HitachiOutOfMemoryCause

-XX:+HitachiOutOfMemoryCause

不可

-XX:[+|-]HitachiOutOfMemoryStackTrace

-XX:-HitachiOutOfMemoryStackTrace

-XX:+HitachiOutOfMemoryStackTrace

不可

-XX:HitachiOutOfMemoryStackTraceLineSize

-XX:HitachiOutOfMemoryStackTraceLineSize=1024

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiOutOfMemorySize

-XX:-HitachiOutOfMemorySize

-XX:+HitachiOutOfMemorySize

不可

-XX:[+|-]HitachiOutOfMemoryAbort

-XX:-HitachiOutOfMemoryAbort

-XX:+HitachiOutOfMemoryAbort

不可

-XX:[+|-]HitachiOutOfMemoryAbortThreadDump

-XX:+HitachiOutOfMemoryAbortThreadDump

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiOutOfMemoryAbortThreadDumpWithJHeapProf

-XX:-HitachiOutOfMemoryAbortThreadDumpWithJHeapProf

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiOutOfMemoryHandling

-XX:-HitachiOutOfMemoryHandling

JavaVMデフォルト値と同じ

不可

-XX:HitachiOutOfMemoryHandlingMaxThrowCount

-XX:HitachiOutOfMemoryHandlingMaxThrowCount=60

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiJavaClassLibTrace

-XX:-HitachiJavaClassLibTrace

-XX:+HitachiJavaClassLibTrace

不可

-XX:HitachiJavaClassLibTraceLineSize

-XX:HitachiJavaClassLibTraceLineSize=1024

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiLocalsInThrowable

-XX:-HitachiLocalsInThrowable

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiLocalsInStackTrace

-XX:-HitachiLocalsInStackTrace

-XX:+HitachiLocalsInStackTrace

不可

-XX:[+|-]HitachiLocalsSimpleFormat

-XX:-HitachiLocalsSimpleFormat

-XX:+HitachiLocalsSimpleFormat

不可

-XX:[+|-]HitachiTrueTypeInLocals

-XX:-HitachiTrueTypeInLocals

JavaVMデフォルト値と同じ

不可

-XX:HitachiCallToString

-XX:HitachiCallToString=minimal

JavaVMデフォルト値と同じ

不可

-XX:[+|-]HitachiFullCore

-XX:-HitachiFullCore

-XX:+HitachiFullCore

不可

-XX:HitachiJITCompileMaxMemorySize

-XX:HitachiJITCompileMaxMemorySize=0

JavaVMデフォルト値と同じ

不可

-XX:HitachiThreadLimit

-XX:HitachiThreadLimit=0

JavaVMデフォルト値と同じ

不可

-XX:[+|-]JITCompilerContinuation

-XX:+JITCompilerContinuation

JavaVMデフォルト値と同じ

不可

Java 17以降

-XX:[+|-]HitachiVerboseGCPrintDirectBuffer

-XX:+HitachiVerboseGCPrintDirectBuffer

JavaVMデフォルト値と同じ

不可

注

変更可否が「不可」となっているオプションは，本製品の安定稼働やサポートサービスへの保守情報の提供のために必要です。保守員からの指示がない場合は，値を変更しないでください。

注※

ログ出力先をcommon.baseで指定したディレクトリ直下以外の場所に変更した場合は，スナップショットログの取得対象に含まれるように，設定を必ず追加してください。詳細は，「12.8.6　ログ出力先を<common.baseの指定値>以外に設定している場合」を参照してください。

common.baseは，config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(1)　本製品全体に関するプロパティ」を参照してください。

表16‒2　日立JavaVM独自起動オプションのデフォルト値と変更可否（Tomcatサーバプロセス）

オプション名称

日立JavaVMのデフォルト値

Tomcatサーバプロセス

デフォルト値

変更可否

-XX:[+|-]HitachiThreadDump

-XX:+HitachiThreadDump

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiThreadDumpToStdout

-XX:+HitachiThreadDumpToStdout

-XX:-HitachiThreadDumpToStdout

不可

-XX:[+|-]HitachiThreadDumpWithHashCode

-XX:+HitachiThreadDumpWithHashCode

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiThreadDumpWithCpuTime

-XX:+HitachiThreadDumpWithCpuTime

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiThreadDumpWithBlockCount

-XX:+HitachiThreadDumpWithBlockCount

JavaVMデフォルト値と同じ

可

-XX:HitachiJavaLog

-XX:HitachiJavaLog:javalog

-XX:HitachiJavaLog:${common.base}/javalog

可※1

-XX:HitachiJavaLogFileSize

-XX:HitachiJavaLogFileSize=256k

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiJavaLogNoMoreOutput

-XX:+HitachiJavaLogNoMoreOutput

JavaVMデフォルト値と同じ

可

-XX:HitachiJavaLogNumberOfFile

-XX:HitachiJavaLogNumberOfFile=4

JavaVMデフォルト値と同じ

可

-XX:[+|-]JavaLogAsynchronous

-XX:-JavaLogAsynchronous

JavaVMデフォルト値と同じ

可

-XX:[+|-]StandardLogToHitachiJavaLog

-XX:-StandardLogToHitachiJavaLog

-XX:+StandardLogToHitachiJavaLog

不可

-XX:[+|-]HitachiOutputMilliTime

-XX:-HitachiOutputMilliTime

-XX:+HitachiOutputMilliTime

不可

-XX:[+|-]HitachiVerboseGC

-XX:-HitachiVerboseGC

-XX:+HitachiVerboseGC

不可

-XX:[+|-]HitachiCommaVerboseGC

-XX:-HitachiCommaVerboseGC

JavaVMデフォルト値と同じ

可

-XX:HitachiVerboseGCIntervalTime

-XX:HitachiVerboseGCIntervalTime=0

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintCause

-XX:+HitachiVerboseGCPrintCause

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintDate

-XX:+HitachiVerboseGCPrintDate

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCCpuTime

-XX:+HitachiVerboseGCCpuTime

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintTenuringDistribution

-XX:-HitachiVerboseGCPrintTenuringDistribution

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintJVMInternalMemory

-XX:+HitachiVerboseGCPrintJVMInternalMemory

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintThreadCount

-XX:+HitachiVerboseGCPrintThreadCount

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiVerboseGCPrintDeleteOnExit

-XX:+HitachiVerboseGCPrintDeleteOnExit

JavaVMデフォルト値と同じ

可

-XX:[+|-]PrintCodeCacheInfo

-XX:+PrintCodeCacheInfo

JavaVMデフォルト値と同じ

可

-XX:CodeCacheInfoPrintRatio

-XX:CodeCacheInfoPrintRatio=80

JavaVMデフォルト値と同じ

可

-XX:[+|-]PrintCodeCacheFullMessage

-XX:+PrintCodeCacheFullMessage

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiOutOfMemoryCause

-XX:-HitachiOutOfMemoryCause

-XX:+HitachiOutOfMemoryCause

不可

-XX:[+|-]HitachiOutOfMemoryStackTrace

-XX:-HitachiOutOfMemoryStackTrace

-XX:+HitachiOutOfMemoryStackTrace

不可

-XX:HitachiOutOfMemoryStackTraceLineSize

-XX:HitachiOutOfMemoryStackTraceLineSize=1024

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiOutOfMemorySize

-XX:-HitachiOutOfMemorySize

-XX:+HitachiOutOfMemorySize

不可

-XX:[+|-]HitachiOutOfMemoryAbort

-XX:-HitachiOutOfMemoryAbort

-XX:+HitachiOutOfMemoryAbort

可※2

-XX:[+|-]HitachiOutOfMemoryAbortThreadDump

-XX:+HitachiOutOfMemoryAbortThreadDump

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiOutOfMemoryAbortThreadDumpWithJHeapProf

-XX:-HitachiOutOfMemoryAbortThreadDumpWithJHeapProf

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiOutOfMemoryHandling

-XX:-HitachiOutOfMemoryHandling

JavaVMデフォルト値と同じ

可

-XX:HitachiOutOfMemoryHandlingMaxThrowCount

-XX:HitachiOutOfMemoryHandlingMaxThrowCount=60

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiJavaClassLibTrace

-XX:-HitachiJavaClassLibTrace

-XX:+HitachiJavaClassLibTrace

不可

-XX:HitachiJavaClassLibTraceLineSize

-XX:HitachiJavaClassLibTraceLineSize=1024

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiLocalsInThrowable

-XX:-HitachiLocalsInThrowable

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiLocalsInStackTrace

-XX:-HitachiLocalsInStackTrace

-XX:+HitachiLocalsInStackTrace

可※3

-XX:[+|-]HitachiLocalsSimpleFormat

-XX:-HitachiLocalsSimpleFormat

-XX:+HitachiLocalsSimpleFormat

可※3

-XX:[+|-]HitachiTrueTypeInLocals

-XX:-HitachiTrueTypeInLocals

JavaVMデフォルト値と同じ

可

-XX:HitachiCallToString

-XX:HitachiCallToString=minimal

JavaVMデフォルト値と同じ

可

-XX:[+|-]HitachiFullCore

-XX:-HitachiFullCore

-XX:+HitachiFullCore

不可

-XX:HitachiJITCompileMaxMemorySize

-XX:HitachiJITCompileMaxMemorySize=0

JavaVMデフォルト値と同じ

可

-XX:HitachiThreadLimit

-XX:HitachiThreadLimit=0

JavaVMデフォルト値と同じ

可

-XX:[+|-]JITCompilerContinuation

-XX:+JITCompilerContinuation

JavaVMデフォルト値と同じ

可

Java 17以降

-XX:[+|-]HitachiVerboseGCPrintDirectBuffer

-XX:+HitachiVerboseGCPrintDirectBuffer

JavaVMデフォルト値と同じ

可

注

変更可否が「不可」となっているオプションは，本製品の安定稼働やサポートサービスへの保守情報の提供のために必要です。保守員からの指示がない場合は，値を変更しないでください。

注※1

ログ出力先をcommon.baseで指定したディレクトリ直下以外の場所に変更した場合は，スナップショットログの取得対象に含まれるように，設定を必ず追加してください。詳細は，「12.8.6　ログ出力先を<common.baseの指定値>以外に設定している場合」を参照してください。

common.baseは，config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(1)　本製品全体に関するプロパティ」を参照してください。

注※2

OutOfMemoryエラーが発生すると，JavaVMは，空領域が枯渇している中でGCを繰り返すものの空領域が確保できなくなり，Javaアプリケーションの身動きが取れなくなった結果，プロセスがハングアップに陥ることがあります。このオプションを有効にした場合，OutOfMemoryエラーが発生すると，無条件にJavaプロセスを強制停止します。アプリケーションサーバの自動再起動や待機系システムへの自動切り替えなどの仕組みを前提として，アプリケーションサーバプロセスの生存を監視している場合には，このオプションを有効にすることで，通常の状態への回復を促す効果があります。

注※3

GCのメモリ管理方式をZGCに変更する場合だけ変更できます。

-XX:+UseZGCを指定するときに，あわせて-XX:-HitachiLocalsInStackTraceおよび-XX:-HitachiLocalsSimpleFormatを指定してください。

Java HotSpot VM共通起動オプションのデフォルト値と変更可否について説明します。

本製品または日立JavaVMが独自にデフォルト値を変えているオプションだけを次の表に示します。そのほかのJava Hot Spot VM共通の起動オプションについては，Oracle Java SE 17のドキュメントを参照してください。

表16‒3　Java HotSpot VM共通起動オプションのデフォルト値と変更可否（Tomcatプロセスモニタ）

オプション名称

日立JavaVMのデフォルト値

Tomcatプロセスモニタ

デフォルト値

変更可否

-Xmx<size>

83M

64M

不可

-Xms<size>

7.8M

64M

不可

-XX:MaxMetaspaceSize=<size>

2⁶⁴-1

2⁶⁴-1

不可

-XX:MetaspaceSize=<size>

Java 11以前

20.8M

Java 17以降

21M

48M

不可

-XX:CompressedClassSpaceSize=<size>

1G

1G

不可

-Xss<size>

1M

1M

不可

-XX:NewRatio=<value>

2

2

不可

-XX:SurvivorRatio=<value>

32

32

不可

-XX:TargetSurvivorRatio=<value>

50

50

不可

-XX:MaxTenuringThreshold=<value>

14

14

不可

-XX:ReservedCodeCacheSize=<size>

48M

48M

不可

-XX:[+|-]UseSerialGC

Java8

-XX:-UseSerialGC

Java11以降

-XX:+UseSerialGC

-XX:+UseSerialGC

不可

-XX:[+|-]UseG1GC

-XX:-UseG1GC

-XX:-UseG1GC

不可

-XX:[+|-]UseCompressedOops

-XX:-UseCompressedOops

-XX:+UseCompressedOops

不可

注1

<size>は，自然数（1以上の整数）の値を次に示す単位を使って指定してください。

キロ「k」

メガ「m」

ギガ「g」

テラ「t」

なお，大文字・小文字は区別されません。

注2

変更可否が「不可」となっているオプションは，本製品の安定稼働やサポートサービスへの保守情報の提供のために必要です。保守員からの指示がない場合は，値を変更しないでください。

表16‒4　Java HotSpot VM共通起動オプションのデフォルト値と変更可否（Tomcatサーバプロセス）

オプション名称

日立JavaVMのデフォルト値

Tomcatサーバプロセス

デフォルト値

変更可否

-Xmx<size>

83M

JavaVMデフォルト値と同じ

可

-Xms<size>

7.8M

JavaVMデフォルト値と同じ

可

-XX:MaxMetaspaceSize=<size>

2⁶⁴-1

JavaVMデフォルト値と同じ

可

-XX:MetaspaceSize=<size>

Java 11以前

20.8M

Java 17以降

21M

JavaVMデフォルト値と同じ

可

-XX:CompressedClassSpaceSize=<size>

1G

JavaVMデフォルト値と同じ

可

-Xss<size>

1M

JavaVMデフォルト値と同じ

可

-XX:NewRatio=<value>

2

JavaVMデフォルト値と同じ

可

-XX:SurvivorRatio=<value>

32

JavaVMデフォルト値と同じ

可

-XX:TargetSurvivorRatio=<value>

50

JavaVMデフォルト値と同じ

可

-XX:MaxTenuringThreshold=<value>

14

JavaVMデフォルト値と同じ

可

-XX:ReservedCodeCacheSize=<size>

48M

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseSerialGC

Java8

-XX:-UseSerialGC

Java11以降

-XX:+UseSerialGC

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseG1GC

-XX:-UseG1GC

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseCompressedOops

-XX:-UseCompressedOops

-XX:+UseCompressedOops

可

注

<size>は，自然数（1以上の整数）の値を次に示す単位を使って指定してください。

キロ「k」

メガ「m」

ギガ「g」

テラ「t」

なお，大文字・小文字は区別されません。

16.2　他社製JavaVMを使用する場合

Java HotSpot VM共通起動オプションのデフォルト値と変更可否について説明します。

本製品を使用することで，Java Hot Spot VM共通起動オプションのデフォルト値とは異なる値が設定されるオプションがあります。そのオプションを次に示します。その他のJava Hot Spot VM共通の起動オプションについては，使用している他社製JavaVMのドキュメントを参照してください。

表16‒5　Java HotSpot VM共通起動オプションのデフォルト値と変更可否（Tomcatプロセスモニタ）

オプション名称

Tomcatプロセスモニタ

デフォルト値

変更可否

-Xmx<size>

64M

不可

-Xms<size>

64M

不可

-XX:MaxMetaspaceSize=<size>

2⁶⁴-1

不可

-XX:MetaspaceSize=<size>

48M

不可

-XX:CompressedClassSpaceSize=<size>

1G

不可

-Xss<size>

1M

不可

-XX:NewRatio=<value>

2

不可

-XX:SurvivorRatio=<value>

32

不可

-XX:TargetSurvivorRatio=<value>

50

不可

-XX:MaxTenuringThreshold=<value>

14

不可

-XX:ReservedCodeCacheSize=<size>

48M

不可

-XX:[+|-]UseSerialGC

-XX:+UseSerialGC

不可

-XX:[+|-]UseG1GC

-XX:-UseG1GC

不可

-XX:[+|-]UseCompressedOops

-XX:+UseCompressedOops

不可

-XX:[+|-]TieredCompilation

-XX:-TieredCompilation

不可

注1

<size>は，自然数（1以上の整数）の値を次に示す単位を使って指定してください。

キロ「k」

メガ「m」

ギガ「g」

テラ「t」

なお，大文字・小文字は区別されません。

注2

変更可否が「不可」となっているオプションは，本製品の安定稼働やサポートサービスへの保守情報の提供のために必要です。保守員からの指示がない場合は，値を変更しないでください。

表16‒6　Java HotSpot VM共通起動オプションのデフォルト値と変更可否（Tomcatサーバプロセス）

オプション名称

Tomcatサーバプロセス

デフォルト値

変更可否

-Xmx<size>

JavaVMデフォルト値と同じ

可

-Xms<size>

JavaVMデフォルト値と同じ

可

-XX:MaxMetaspaceSize=<size>

JavaVMデフォルト値と同じ

可

-XX:MetaspaceSize=<size>

JavaVMデフォルト値と同じ

可

-XX:CompressedClassSpaceSize=<size>

JavaVMデフォルト値と同じ

可

-Xss<size>

JavaVMデフォルト値と同じ

可

-XX:NewRatio=<value>

JavaVMデフォルト値と同じ

可

-XX:SurvivorRatio=<value>

JavaVMデフォルト値と同じ

可

-XX:TargetSurvivorRatio=<value>

JavaVMデフォルト値と同じ

可

-XX:MaxTenuringThreshold=<value>

JavaVMデフォルト値と同じ

可

-XX:ReservedCodeCacheSize=<size>

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseSerialGC

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseG1GC

JavaVMデフォルト値と同じ

可

-XX:[+|-]UseCompressedOops

JavaVMデフォルト値と同じ

可

-XX:[+|-]TieredCompilation

JavaVMデフォルト値と同じ

可

注

<size>は，自然数（1以上の整数）の値を次に示す単位を使って指定してください。

キロ「k」

メガ「m」

ギガ「g」

テラ「t」

なお，大文字・小文字は区別されません。

17　運用管理用コマンド

この章では，本製品の運用管理用コマンドについて説明します。

17.1　運用管理用コマンドの概要

ここでは，次の内容について説明します。

運用管理用コマンド文法の記述形式

運用管理用コマンドの入力形式

17.1.1　運用管理用コマンド文法の記述形式

運用管理用コマンドの文法の記述形式と使用する記号について説明します。

(1)　記述形式

コマンドの文法について次の形式で説明します。なお，各コマンドは，アルファベットの順に説明します。

形式

コマンドの入力形式を示します。

機能

コマンドの機能について説明します。

引数

コマンドの引数およびオプションについて説明します。

出力形式

コマンドの出力形式を示します。

入力例・出力例

コマンドの入力例および出力例を示します。

戻り値

コマンドの戻り値について説明します。

(2)　使用する記号

コマンドの文法は次の表に示す記号および構文要素を使用して記述します。

表17‒1　文法で使用している構文要素

構文要素

定義

英字

A〜Z　a〜z

英小文字

a〜z

英大文字

A〜Z

数字

0〜9

英数字

A〜Z　a〜z　0〜9

記号

!　"　#　$　%　&　'　(　)　+　,　_　・　.　/　:　;　<　=　>　@　[　]　^　−　｛　｝　￣　タブ　空白

注

すべて半角文字を使用してください。

17.1.2　運用管理用コマンドの入力形式

運用管理用コマンドの入力形式を次に示します。

コマンド名称 [引数…]

各項目について説明します。なお，コマンドプロンプトを「$」，コマンド名称を「cmd」と表記します。

(1)　コマンド名称

実行するコマンドのファイル名を指定します。

(2)　引数

引数には，オプションも含まれます。オプションの入力形式および指定規則を次に示します。

(a)　オプションの入力形式

オプションは，「--」（ハイフン2個）で始まる文字列です。オプションには，1個のオプション値を指定してください。

$ cmd --オプション名=オプション値

（凡例）

オプション名

半角英字の文字列です。大文字と小文字が区別されます。

オプション値

オプション名に対する引数です。

(b)　オプションの指定規則

オプション名の前には2つの「-」（ハイフン）が必要です。

誤った指定例：$ cmd -key=value

正しい指定例：$ cmd --key=value

オプション名を指定した場合，オプション値は省略できません。

誤った指定例：$ cmd --key

正しい指定例：$ cmd --key=value

オプション名とオプション値の間には「=」（イコール）が必要です。

誤った指定例：$ cmd --key value

正しい指定例：$ cmd --key=value

同じオプション名は，複数指定できません。

誤った指定例：$ cmd --key=value1 --key=value2

オプション値に空白を含む場合，オプション値全体を""で囲む必要があります。

誤った指定例：$ cmd --key=file 1

正しい指定例：$ cmd --key="file 1"

17.2　スナップショットログ収集コマンド

スナップショットログ収集コマンドについて説明します。

17.2.1　collect-snapshot.sh（スナップショットログ収集）

形式

collect-snapshot.sh [--help] [--port=<port>|--endpoint=<endpoint>] [--threaddumpnum=<number>] [--watchcommand=<boolean>] [--timeout-sec=<timeout>] [--file=<file>]

機能

スナップショットログを収集し，指定したパスに出力します。また，標準出力または標準エラー出力にメッセージを出力します。

引数

collect-snapshot.shコマンドのオプションを次の表に示します。

表17‒2　collect-snapshot.shコマンドのオプション

オプション

説明

省略の可否

省略時の動作

--help

使用方法（Usage）を出力します。

省略可

使用方法（Usage）を出力しません。

--port=<port>

スナップショットログ収集REST APIのポート番号を指定します。1〜65535の範囲で指定します。

monitor.rest.port※に値を設定している場合，その値を指定します。

--endpointと同時に指定した場合，このオプションは無視されます。

省略可

「28081」を使用します。

--endpoint=<endpoint>

スナップショットログ収集REST APIのエンドポイントを指定します。

monitor.rest.bindaddress※に値を設定している場合は，ホスト名部分に，Tomcatプロセスモニタを起動させているマシンのIPアドレスを指定します。

--portと同時に指定した場合，このオプションが使用されます。

省略可

「http://localhost:28081/api/v1/snapshot」を使用します。

--threaddumpnum=<number>

スレッドダンプの取得回数を指定します。0〜60の範囲で指定します。

省略可

収集対象のTomcatプロセスモニタに設定されている<snapshot.rest.default.threaddumpnum※の指定値>の値を使用します。

--watchcommand=<boolean>

マシンリソースの使用状況を取得するかどうかを，trueまたはfalseで指定します。

省略可

収集対象のTomcatプロセスモニタに設定されている<snapshot.rest.default.watchcommand.enabled※の指定値>の値を使用します。

--timeout-sec=<timeout>

コマンドを実行後，指定した時間を経過しても収集処理が終わらない場合のタイムアウト時間を指定します。単位は秒です。1〜2147483647の範囲で指定します。

省略可

タイムアウトしません。

--file=<file>

出力先パスを指定します。

省略可

「./snapshot.zip」を使用します。

注※

config.properties（本製品の設定ファイル）のプロパティです。

monitor.rest.port，およびmonitor.rest.bindaddressについては，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

snapshot.rest.default.threaddumpnumおよびsnapshot.rest.default.watchcommand.enabledについては，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

出力形式

標準出力に処理中のメッセージを出力します。

標準エラー出力にエラーメッセージを出力します。

--fileオプションのパス（省略時はカレントディレクトリのsnapshot.zip）にスナップショットログを出力します。

入力例

カレントディレクトリのsnapshot.zipにスナップショットログを出力します。

$ collect-snapshot.sh

オプションを指定してsnapshot1.zipにスナップショットログを出力します。

$ collect-snapshot.sh --port=28082 --threaddumpnum=3 --watchcommand=true --timeout-sec=60 --file=snapshot1.zip

戻り値

0：

正常終了しました。

1：

引数が不正です。

2：

実行時のエラーで異常終了しました。

3：

その他のエラーで異常終了しました。

18　運用管理用REST API

この章では，本製品の運用管理用REST APIについて説明します。

18.1　運用管理用REST APIの概要

運用管理用REST APIの概要について説明します。

18.1.1　運用管理用REST APIの記述形式

運用管理用REST APIについて次の形式で説明します。

説明

APIの機能について説明します。

形式

APIの記述形式を示します。

パラメタ

APIのパラメタについて説明します。

実行例

APIの実行例について説明します。

戻り値

APIの戻り値について説明しています。

18.2　スナップショットログ収集REST API

Tomcatプロセスモニタは，スナップショットログ収集REST APIを提供します。

18.2.1　GETメソッド

説明

次の表のリクエストを受け付けるとスナップショットログを収集し，レスポンスとして出力します。

表18‒1　スナップショットログ収集REST APIが収集処理を実行するリクエスト

項目

値

Method

GET

URL

/api/v1/snapshot

パラメタ

「表18‒2　スナップショットログ収集REST APIのパラメタ」に示すパラメタと値

形式

http://<IPアドレス>:<ポート番号>/api/v1/snapshot

<IPアドレス>にはTomcatプロセスモニタを起動させているマシンのIPアドレスを指定してください。<ポート番号>には，TomcatプロセスモニタのHTTP機能の受付ポート番号（monitor.rest.portの値の指定値）と同じ値を指定してください。

monitor.rest.portについては，「(2)　Tomcatプロセスモニタに関するプロパティ」を参照してください。

パラメタ

スナップショットログ収集REST APIのパラメタを次の表に示します。

表18‒2　スナップショットログ収集REST APIのパラメタ

パラメタ

指定できる値

省略の可否

デフォルト値

説明

threaddumpnum

0〜60

省略可

<snapshot.rest.default.threaddumpnum※の指定値>

スレッドダンプ情報を取得する回数を指定します。取得するとTomcatサーバプロセスに負荷が掛かります。

スレッドダンプ情報については，「(b)　スレッドダンプ情報」を参照してください。

watchcommand

次のどちらかを指定します。

true

false

省略可

<snapshot.rest.default.watchcommand.enabled※の指定値>

モニタリング情報を取得するかどうかを指定します。取得すると所要時間が長くなります。

モニタリング情報については，「(a)　モニタリング情報」を参照してください。

注※

config.properties（本製品の設定ファイル）のプロパティです。詳細は，「(4)　スナップショットログ収集機能に関するプロパティ」を参照してください。

実行例

リクエストの例を次に示します。

デフォルト値で収集

/api/v1/snapshot

オプションを指定して収集

/api/v1/snapshot?threaddumpnum=3&watchcommand=true

戻り値

正常時

スナップショットログの収集に成功した場合，レスポンスボディに出力されるスナップショットログ（zip形式）を次の表に示します。

表18‒3　収集に成功した場合に出力されるスナップショットログ

項目

値

Status

200

Content-Type

application/zip

Body

<スナップショットログ（zip形式）>

異常時

スナップショットログの収集に失敗した場合に出力されるエラーメッセージ（JSON形式）を次の表に示します。

表18‒4　収集に失敗した場合に出力されるエラーメッセージ（リクエストのパラメタが指定できない値だった場合）

項目

値

Status

400

Content-Type

application/json

Body

{ "message": "<メッセージKDLR10016-E>" }

表18‒5　収集に失敗した場合に出力されるエラーメッセージ（スナップショットログ出力に失敗した場合）

項目

値

Status

500

Content-Type

application/json

Body

{ "message": "<メッセージKDLR10017-E>" }

19　ユーザアプリケーションで使用できるAPI

この章では，ユーザアプリケーションで使用できるAPIについて説明します。

19.1　ユーザアプリケーションで使用できるAPIの概要

ユーザアプリケーションで使用できるAPIの概要について説明します。

19.1.1　ユーザアプリケーションで使用できるAPIの記述形式

ユーザアプリケーションで使用できるAPIについて次の形式で説明します。

説明

APIの機能について説明します。

形式

APIの記述形式を示します。

パラメタ

APIのパラメタについて説明します。

例外

APIを利用する際に発生する例外について説明します。

戻り値

APIの戻り値について説明しています。

19.2　性能解析トレースで使用するAPI

性能解析トレースのアプリケーション情報取得機能で使用するAPIについて説明します。主に，HiRDBのJDBCドライバから使用されることを想定しています。この機能では，uCosminexus Application Server V11-00以降で使用できるcom.hitachi.software.javaee.util.prf.PrfTraceクラスだけをサポートします。

このAPIを含むJavaのソースコードをコンパイルする場合，<本製品のインストールディレクトリ>/lib/tomcat/system/ucar-javaprf-api.jarをクラスパスに設定してください。本製品の実行時に，TomcatプロセスモニタがこのAPIのjarをデフォルトでクラスパスに設定します。そのため，クラスパスを設定する必要はありません。

性能解析トレースで使用するAPIについて説明します。メソッドの記載順は，アルファベット順です。

19.2.1　getClientApInfoメソッド

説明

getPrfTraceメソッド実行時に取得したクライアントアプリケーション情報を文字列表現で返します。

形式

public final String getClientApInfo()

パラメタ

なし

例外

なし

戻り値

クライアントアプリケーション情報の文字列表現。

次の場合には，nullを返します。

クライアントアプリケーション情報が設定されていない場合※

トレース機能が動作していない場合

注※

クライアントアプリケーション情報を引き継ぐシーケンスの範囲外の場合を指します。

19.2.2　getPrfTraceメソッド

説明

現在のスレッドが保持しているルートアプリケーション情報とクライアントアプリケーション情報を保持するPrfTraceのインスタンスを返します。

形式

public static PrfTrace getPrfTrace()

パラメタ

なし

例外

なし

戻り値

PrfTraceのインスタンス。

19.2.3　getRootApInfoメソッド

説明

getPrfTraceメソッド実行時に取得したルートアプリケーション情報を文字列表現で返します。

形式

public final String getRootApInfo()

パラメタ

なし

例外

なし

戻り値

ルートアプリケーション情報の文字列表現。

次の場合には，nullを返します。

ルートアプリケーション情報が設定されていない場合※

トレース機能が動作していない場合

注※

ルートアプリケーション情報を引き継ぐシーケンスの範囲外の場合を指します。

付録

付録A　GUIを使用したインストール

ここでは，「3.2　インストールする」にあるコマンドでのインストールではなく，GUIを用いた本製品のインストール手順を説明します。

操作手順

インストールメディアのデータを，本製品をインストールするマシンにコピーする。

本製品のインストールメディアをマウントし，インストールメディアに格納されているX64LINディレクトリを，インストール先のマシン上の任意のディレクトリにX64LINディレクトリごとコピーしてください。

これ以降，X64LINディレクトリのコピー先を<インストーラのパス>と表記します。

setupコマンドに実行権限を付ける。

「<インストーラのパス>/X64LIN/setup」という実行ファイルに対して，管理者権限で実行権限を付与します。

実行例：

$ sudo chmod +x <インストーラのパス>/X64LIN/setup

PPインストーラのsetupコマンドを実行する。

次に示す引数を指定してsetupコマンドを実行します。

$ sudo <インストーラのパス>/X64LIN/setup <インストーラのパス>

注

「3.2　インストールする」のコマンドでのインストール手順とはコマンドの引数が異なります。

PPインストーラのメインメニューで，［I］キーを押す。

PPインストール画面が表示されます。

インストールする製品を選択して［スペース］キーを押す。

「uCAR for Apache Tomcat」または「uCAR with Java for Apache Tomcat」にカーソルを移動させて選択してください。選択した製品の左側には「<@>」が表示されます。

インストールする製品の左側に「[@]」が表示されていることを確認して［I］キーを押す。

画面の最下行に，「Install PP? (y: install, n: cancel)==>」が表示されます。

［Y］キーを押す。

インストールが開始されます。

インストール終了を示すメッセージが表示されたら［Q］キーを押す。

PPインストーラのメインメニューに戻ります。

PPインストーラのメインメニューで［L］キーを押す。

PP一覧表示画面にインストール済みの製品一覧が表示されます。

本製品がインストールされていることを確認して［Q］キーを押す。

PPインストーラのメインメニューが表示されます。

PPインストーラのメインメニューで［Q］キーを押す。

PPインストーラが終了し，本製品のインストールが完了します。

インストールが正常に完了しているかどうかを確認する。

インストールが正常に完了しているかどうかは，install.logで確認できます。

実行例：

$ sudo cat /opt/hitachi/ucart/install.log

install.logに「rc=0 msg=I:Installation completed.」と出力されていれば，インストールが正常に完了しています。

出力例：

2022/06/30 12:34:56 rc=0 msg=I:Installation completed.

最新の修正パッチを適用する。

ソフトウェアサポートサービスのWebサイトから修正パッチが提供されている場合は，最新の修正パッチを入手して適用してください。修正パッチの適用方法については，「4.7　修正パッチを適用する」を参照してください。ソフトウェアサポートサービスのWebサイトにアクセスできない場合は，本製品に同梱されている修正パッチメディアを利用してください。

付録B　GUIを使用したアンセットアップ

ここでは，「4.8　アンセットアップする」にあるコマンドでのアンセットアップではなく，GUIを用いた本製品のアンセットアップ手順を説明します。

ここで説明するアンセットアップ手順は，次に示す条件を満たしていることを前提としています。

TomcatおよびTomcatプロセスモニタを停止している

「3.3　Tomcatに組み込む」のセットアップ手順に従って，次の3つの定義ファイルについて，編集前の状態でバックアップを作成している

${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

次のファイルがセットアップ前にすでに存在していた場合は，バックアップを作成している

${CATALINA_HOME}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

操作手順

Tomcatの定義ファイルを編集前の状態に戻す。

次の3つの定義ファイルについて，セットアップ時に取得したバックアップを使用して，編集前の状態に戻します。

${CATALINA_BASE}/conf/catalina.properties（Tomcatのプロパティ定義ファイル）

${CATALINA_BASE}/conf/server.xml（Tomcatのサーバ設定ファイル）

${CATALINA_BASE}/conf/context.xml（Tomcatのコンテキスト設定ファイル）

setenv.sh（Tomcat起動時の環境変数定義ファイル）を編集前の状態に戻す。

次のファイルがセットアップ前にすでに存在していた場合は，バックアップを使用して，編集前の状態に戻します。

${CATALINA_HOME}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

${CATALINA_BASE}/bin/setenv.sh（Tomcat起動時の環境変数定義ファイル）

セットアップ前には存在しなかった場合は，setenv.sh（Tomcat起動時の環境変数定義ファイル）自体を削除してください。

PPインストーラを使用して本製品をアンインストールする。

次のコマンドを管理者権限で実行し，画面の指示に従って「uCAR for Apache Tomcat」または「uCAR with Java for Apache Tomcat」を削除してください。

$ sudo /etc/hitachi_x64setup

これでアンセットアップは完了です。

付録C　本製品のアーカイブファイルを用いたインストールおよびアンセットアップ

PPインストーラを利用できない環境に本製品をインストールするため，アーカイブファイルを提供します。本製品のアーカイブファイルを用いることにより，次のメリットがあります。

一部の前提ライブラリのインストールが不要となる。

インストール，上書きインストールおよびアンセットアップ時に管理者権限が不要となる。

本製品のインストールディレクトリのパスを変更できる。

アーカイブファイルは，本製品に添付されています。具体的な使用方法については，添付品に同梱されているドキュメントを参照してください。

マニュアルに記載されている次のパスは，アーカイブファイルを展開したディレクトリのパスに読み替えてください。

/opt/hitachi/ucart

付録D　このマニュアルの参考情報

このマニュアルを読むに当たっての参考情報を示します。

付録D.1　関連マニュアル

関連マニュアルを次に示します。必要に応じてお読みください。

uCosminexus Application Runtime - Cosminexus Developer's Kit for Java 機能解説・リファレンス（3021-3-K02）

本製品とあわせて日立JavaVMを使用する場合に，お読みください。

Cosminexus V11 アプリケーションサーバ 機能解説 保守／移行編（3021-3-J11）

本製品のトレース機能でuCosminexus Application Serverと連携する際に，お読みください。

付録D.2　このマニュアルでの表記

サービス名，製品名，機能名などの名称を，次のように表記しています。

表記

サービス名，製品名，機能名など

AWS

Amazon Web Services

Azure

Microsoft Azure

HiRDB

HiRDB/Single Server Version 10

Linux

Amazon Linux 2

Amazon Linux 2

Amazon Linux 2023

Amazon Linux 2023

Debian GNU/Linux 11.0

Debian GNU/Linux 11.0

Red Hat Enterprise Linux 8（AMD/Intel 64）

Red Hat Enterprise Linux 8.1 （AMD/Intel 64）以降

Red Hat Enterprise Linux 9（AMD/Intel 64）

Red Hat Enterprise Linux 9.1 （AMD/Intel 64）以降

Ubuntu 22.04

Ubuntu 22.04

Tomcat

Apache Tomcat

サポートサービス

OSS Support Service with uCosminexus Application Runtime for Apache Tomcat

OSS Support Service with uCosminexus Application Runtime with Java for Apache Tomcat

日立JavaVM

Cosminexus Developer's Kit for Java

保守員

uCosminexus Application Runtimeサポートサービスの契約に基づくお問い合わせ窓口のことです。

付録D.3　英略語

このマニュアルで使用する英略語を次に示します。

英略語

英字での表記

API

Application Programming Interface

BOM

Byte Order Mark

CPU

Central Processing Unit

GUI

Graphical User Interface

HTTP

Hyper Text Transfer Protocol

Java EE, Java Platform, またはEnterprise Edition

Java Platform, Enterprise Edition

Java SE

Java Platform, Standard Edition

JAX-RS

Java API for RESTful Web Services

JDBC

Java Database Connectivity

JMX

Java Management Extensions

JRE

Java Runtime Environment

NFS

Network File System

OS

Operating System

OSS

Open Source Software

REST

Representational State Transfer

WAR

Web Application Archive

付録D.4　KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

索引

C

catalina.properties[1], [2]

com.cosminexus.appruntime.tomcat.healthcheck.MonitoringListener[1]

config.properties[1], [2]

context.xml[1], [2]

H

HTTPセッションのトレース[1]

HTTPリクエストおよびサーブレット・フィルタのトレース[1]

J

java.util.loggingのレベル[1]

JavaVMログ（Tomcatサーバプロセス）[1]

JavaVMログ（Tomcatプロセスモニタ）[1]

Javaの実行環境情報[1]

JAX-RSクライアントのトレース[1]

O

org.apache.catalina.valves.StuckThreadDetectionValve[1]

S

server.xml[1], [2]

setenv.sh[1], [2]

T

Tomcat JDBC Connection Poolのトレース[1]

Tomcat稼働中情報[1]

Tomcat起動時の環境変数定義ファイル[1]

Tomcatサーバプロセス開始完了通知待ちタイムアウト[1]

Tomcatサーバプロセス初期化完了通知待ちタイムアウト[1]

Tomcatサーバプロセス内のフィルタ[1]

Tomcatサーバプロセスのログ[1]

Tomcatトレースログ[1]

Tomcatのコンテキスト設定ファイル[1]

Tomcatのサーバ設定ファイル[1]

Tomcatのプロパティ定義ファイル[1]

Tomcatプロセスモニタ[1], [2]

Tomcatプロセスモニタ機能[1]

Tomcatプロセスモニタに関するプロパティ[1]

Tomcatプロセスモニタのログ[1]

U

uCosminexus Application Serverとの連携[1]

W

Webアプリケーションの開始時および終了時のトレース[1]

あ

アクション[1]

い

イベントプロパティ[1]

か

稼働監視機能[1]

稼働監視機能に関するプロパティ[1]

稼働監視用ライフサイクルリスナー[1]

監視項目[1]

き

機密情報のマスキング[1]

こ

コマンドの実行による情報の取得[1]

さ

サーバの開始時および終了時のトレース[1]

し

自動収集[1], [2], [3]

手動収集[1], [2], [3], [4]

す

スナップショットログ[1]

スナップショットログ収集機能[1]

スナップショットログ収集機能に関するプロパティ[1]

スナップショットログ収集コマンド[1]

スレッドダンプ情報[1]

て

定義ファイルの種類[1]

停滞検出バルブ[1]

と

統計情報出力機能[1]

統計情報出力機能に関するプロパティ[1]

統計情報ログ[1]

独自ログファイル[1]

トレース機能[1]

トレース機能に関するプロパティ[1]

は

ハートビート監視[1]

ふ

ファイルによる情報の収集[1]

プロセス生存監視[1]

プロセスの起動監視[1]

プロパティキーに含まれる可変値[1]

プロパティ値の変数展開について[1]

へ

ヘルスチェック[1]

ほ

保守ログ[1]

ホストマシン情報[1]

本製品全体に関するプロパティ[1]

本製品の設定ファイル[1]

め

メッセージ[1]

メッセージログ[1]

も

モニタリング情報[1]

ゆ

ユーザコマンドの実行[1]

ユーザスレッドおよび非同期処理API利用上の注意事項[1]

り

リクエスト処理の停滞監視[1]

ろ

ログ取得レベル[1]

ログファイルの種類[1]

マニュアル発行元

株式会社 日立製作所

〒 100-8280 　東京都千代田区丸の内一丁目 6 番 6 号