Manual / 機能と制限2026.10.14 · ユーザーマニュアル
CHAPTER 10 / KOHAKU

機能と制限

対応する機能とサーバ構成、導入・運用時に確認する制限をまとめます。

要求処理と配備の流れ

要求処理の主要経路
bin/kohaku.sh
  → kohaku.bootstrap.Main(YAMLを読みServerを構築)
  → Server.init / start
      → webapps走査 → WAR展開 → 記述子解析
      → webappクラスローダ → JNDI束縛 → webapp初期化
      → HTTP / HTTPSコネクタ
          → ServletContainer → Filter / Servlet / JSP
      → 管理listener → HealthProbes / MetricRegistry

Java 21の仮想スレッドとblocking I/Oを軸にしたJPMS構成です。アプリの WEB-INF/classes と WEB-INF/lib はwebappクラスローダで読み込み、通常のアプリクラスは子優先です。java.* は親のみ、javax.* / jdk.* 等は親優先、Kohaku内部パッケージは限定した例外以外を親から隠します。同一JVM内のクラスローダ分離を、悪意あるアプリに対するOSサンドボックスと解釈しないでください。

モジュールと責務
モジュール役割
kohaku-core設定、YAML、ライフサイクル、ログ、診断、メトリクス、共通呼出し文脈
kohaku-io / kohaku-httpblocking I/O、HTTP/1.1、HTTP/2、TLS、request-id
kohaku-loader / kohaku-deployerクラスローダ分離、WAR展開、記述子・アノテーション解析
kohaku-containerServlet、セッション、dispatch、非同期、アプリライフサイクル
kohaku-securityrealm、認証、パスワード保存形式
kohaku-naming / kohaku-jtaJNDI、JDBCプール、トランザクション管理
kohaku-el / kohaku-jsp / kohaku-jstlEL評価、JSP翻訳・コンパイル、標準タグ
kohaku-concurrent管理Executor、Scheduler、ThreadFactory、ContextService
kohaku-websocket / kohaku-websocket-shimサーバ・クライアントWebSocket、webappでの発見
kohaku-agent / kohaku-bootstrap常駐エージェントと全体の起動・配線・運用機能

対応範囲と既知の制限

現行機能の境界
項目現在の位置づけ
仕様適合Servlet 4.0等のAPI対応・適合作業中。全ての仕様要件への対応や認証を保証するものではありません
Web ProfileCDI 2.0、Interceptors 1.2、JSF 2.3、JAX-RS 2.1、JPA 2.2等は未対応
自動注入@Resourceやinjection-targetの対応に制限あり。アプリから明示的にJNDI lookupを使用します
JTAの宣言的機能@Transactional / @TransactionScopedは未実装
永続トランザクション復旧durable recoveryログなし。XAを使ってもクラッシュ後の自動復旧保証なし
非XA複数参加1相のローカル参加者が複数の場合、全体の原子性保証なし
標準data-source記述子web.xmlの標準data-sourceは未実装。Kohaku固有記述子または共有設定を使用
ホットデプロイポーリング。WAR更新は撤去後に配備。展開ディレクトリ内編集の自動再配備なし
セッション永続化現行はメモリ内。プロセス再起動や再配備を跨ぐ保持を前提にしない
共有ライブラリlibはmodule path、sharedはコンテナ提供物。任意の共通jarの公開拡張点ではない
TLS終端プロキシ正規authorityは明示設定。Forwarded等の一般的な信頼プロキシ設定として扱わない
管理面未認証・平文、既定無効。readinessはwebapp/DBの業務正常性を保証しない
自動再起動起動・停止スクリプトに、異常終了を監視して自動で再起動する機能はありません
停止・資源回収止まらない処理を安全に強制終了できず、quarantine・作業世代の保持が起こり得る