apache CXF を使用して、jetty サーバーにロードされている wsdls (約 50) から Java ソース クラスを生成しています。Jetty (v.7.4.5) は、別の Java アプリケーション内で org.eclipse.jetty.server.Server->start() を使用してプログラムで開始されます。
これらのクラスが含まれていない場合、Jetty サーバーは非常に高速 (3 秒未満) で起動しますが、サービスを含む war バンドルが含まれている場合、Windows OS では 40 秒以上かかります。Solaris では問題がさらに悪化し、約 3 分かかります。
ロード中のサービス実装者は初期化されておらず、いかなる種類のリソースも必要としないため、遅延の原因にはなりません。追加の jar ファイルは、jetty を開始するアプリケーションから既にプリロードされているため、.war ファイルには含まれません。それにもかかわらず、web.xml は web-app metadata-complete="true" フラグを使用します。
スプリング構成を使用し、関連するスプリング Bean を遅延初期化します。
既に以下のケースを確認しておりますが、いずれも前述の問題とは関係ありません。
Apache cxf クライアントの初期化が遅い http://cxf.547215.n5.nabble.com/Slow-Init-Time-td563933.html
さらに、サービスの半分をロードしようとしましたが、Windows でのロード時間は約 25 秒でしたが、Solaris では約 2 分のままでした。
初期化時間を最小限に抑えるために、何が遅延を引き起こしているのか、トラブルシューティングの方法をお尋ねしたいと思います。すなわち:
1) なぜこの遅延が存在すると思いますか (特に Solaris の場合)。2) Jetty の JVM メモリと CPU 構成を取得するにはどうすればよいですか? Jetty.xml 構成ファイルを使用してそれらを変更する方法はありますか?
カールさん、どんなアイデアでも大歓迎です。