22. マイクロサービス

マイクロサービスに関する注意・制限事項について説明します。

22.1. MicroProfile OpenTracing

22.1.1. 注意事項

22.1.1.1. 同梱するOSSのバージョンについて

本バージョンで同梱している OpenTracing 関連 OSS と、そのバージョンは、次の通りです。

OpenTracing 関連 OSS バージョン
OSS グループID:アーティファクトID バージョン
OpenTracing API io.opentracing:opentracing-api 0.33.0
OpenTracing NoOp io.opentracing:opentracing-noop 0.33.0
OpenTracing Utilities io.opentracing:opentracing-util 0.33.0
OpenTracing JAXRS2 io.opentracing.contrib:opentracing-jaxrs2 1.0.0
OpenTracing Web Servlet Filter io.opentracing.contrib:opentracing-web-servlet-filter 0.4.0
OpenTracing Concurrent io.opentracing.contrib:opentracing-concurrent 0.4.0
Tracer Resolver io.opentracing.contrib:opentracing-tracerresolver 0.1.8

本バージョンの MicroProfile OpenTracing は、トレーサー実装として Jaeger に対応しており、バージョン 1.31.0 にて動作確認を行っています。 また、トレース採取に必要な Jaeger Client と、それが依存する OSS を同梱しています。各 OSS のバージョンは次の通りです。 アプリケーションで、独自に、これらの OSS を利用する場合は、同梱している同じバージョンのものを利用してください。

Jaeger Client で利用する OSS
OSS グループID:アーティファクトID バージョン
Jaeger Client io.jaegertracing:jaeger-client 1.4.0
io.jaegertracing:jaeger-core 1.4.0
io.jaegertracing:jaeger-thrift 1.4.0
io.jaegertracing:jaeger-tracerresolver 1.4.0
Apache Thrift org.apache.thrift:libthrift 0.13.0
OkHttp com.squareup.okhttp3:okhttp 4.2.2
Okio com.squareup.okio:okio 2.2.2
Kotlin Stdlib org.jetbrains.kotlin:kotlin-stdlib 1.3.50
Kotlin Stdlib Common org.jetbrains.kotlin:kotlin-stdlib-common 1.3.50
JetBrains Java Annotations org.jetbrains:annotations 13.0
Gson com.google.code.gson:gson 2.8.6
SLF4J API Module org.slf4j:slf4j-api 1.7.28
SLF4J Simple Binding org.slf4j:slf4j-simple 1.7.28
22.1.1.2. Jaeger Client関連ライブラリのインストールディレクトリについて

V11.1より、Jaeger Clientのインストールディレクトリを、${AS_INSTALL}/libから、${AS_INSTALL}/lib/install/jaegerに変更しています。
OpenTracingでトレース情報を採取する場合は、事前に当該ライブラリのインストール作業が必要です。 詳細は、[ アプリケーション開発 > その他のアプリケーション > マイクロサービスアプリケーションの開発 > MicroProfile OpenTracing > 概要 > トレース情報採取のための準備 ] を参照してください。

22.1.1.3. Jaeger 利用時の JAEGER_PASSWORD の設定値について

JAEGER_PASSWORD には、運用管理コマンド (otxadmin) の encrypt コマンドで暗号化した値を設定してください。 なお、運用管理コマンドは、WebOTX Application Server がインストールされていない環境でも、WebOTX Developer や、ライセンス不要の WebOTX Client をインストールすることで利用可能です。

22.1.2. 制限事項

制限事項はありません。

22.2. MicroProfile OpenAPI

22.2.1. 注意事項

本製品の内蔵WebサーバでCORSフィルタ(org.apache.catalina.filters.CorsFilter)を使用する場合、<filter-mapping>属性の<url-pattern>に /* を指定することは推奨していません。(セキュリティ観点)
開発・評価用に一時的に使用するなど、使用方法にご注意ください。

22.2.2. 制限事項

プロセスグループに配備したアプリケーションについてはOpenAPIドキュメント生成の対象外となります。

22.3. MicroProfile Config

22.3.1. 注意事項

22.3.2. 制限事項

制限事項はありません。

22.4. MicroProfile Health

22.4.1. 注意事項

22.4.2. 制限事項

制限事項はありません。

22.5. MicroProfile Metrics

22.5.1. 注意事項

22.5.2. 制限事項

制限事項はありません。

22.6. マイクロサービスプロファイル(Uber JAR)

22.6.1. 注意事項

22.6.1.1. マイクロサービスプロファイル(Uber JAR)はフォアグラウンドプロセスとして起動される

マイクロサービスプロファイル(Uber JAR)を以下のコマンドで起動すると、フォアグラウンドのプロセスとして起動します。 そのため、起動したプロセスが終了するまで制御は戻ってきません。 プロセスを終了するには、Ctrl+C で終了します。

java -jar <WebOTX Uber JARファイル名>

バックグラウンドで実行するには、各OSのバックグラウンドプロセスを起動する方法でjavaコマンドを実行してください。 例えば、Windowsのコマンドプロンプトではstartコマンドで、PowerShellではStart-Processコマンドでバックグラウンドプロセスを起動できます。 また、Linuxのbashでは起動コマンドの最後に & を付けることでバックグラウンドプロセスを起動できます。

22.6.1.2. マイクロサービスプロファイル(Uber JAR)の展開先ディレクトリにマルチバイト文字を含むパスを使用することはできない

マイクロサービスプロファイル(Uber JAR)の展開先ディレクトリにマルチバイト文字を含むパスを使用することはできません。
展開先ディレクトリは、起動時の--basedirオプションで指定します。指定が無い場合、標準の一時ディレクトリに展開されます。
標準の一時ディレクトリのパスにマルチバイト文字が含まれる場合は、--basedirオプションでマルチバイト文字を含まないパスを展開先ディレクトリとして指定する必要があります。

展開先ディレクトリにマルチバイト文字を含むパスを使用すると、アプリケーションのロードに失敗するため、アプリケーションにアクセスすると 404 エラーとなります。
また、起動時に下記のログが出力されます。
出力先ログファイルは <展開先ディレクトリ>/WebOTX/domains/domain1/logs/agent.log です。 --log-to-stdio オプションを指定した場合は標準出力にログが出力されます。

ERROR    DEPLOY   - OTX03010194: 配備に失敗しました。: 配備処理中にエラーが発生しました: アプリケーション [<アプリケーション名>] の配備中に例外が発生しました。 : org.xml.sax.SAXParseExceptionpublicId: file:/<展開先ディレクトリ>/WebOTX/lib/schemas/web-app_3_1.xsd; lineNumber: 281; columnNumber: 47; Deployment descriptor file WEB-INF/web.xml in archive [<アプリケーション名>].  src-resolve: 名前'javaee:web-commonType'を'group'コンポーネントに解決できません。 [main]

22.6.2. 制限事項

制限事項はありません。