Java EE App Serverで実行されているアプリケーションがあり、パートナー企業のWebサービスを呼び出す必要があります。
JDK(1.6)のwsimport.exeを使用して、クライアントクラスを生成しました。サービスをインスタンス化し、Webサービスを呼び出すためにポートを取得します。
Webサービスへの最初の呼び出しが遅いことに気づきました。これは、WSDLを検証しているためだと思われます。後続の呼び出しは高速です。
WSDLをローカルに保持することができ、それによって最初の呼び出しが高速化されるようです。
アプリを最適化するために、クライアントのプールを作成できると考えていました。これには、アプリにスロットルがあるという追加の利点があります。たとえば、5つのクライアントのプールがあるとすると、最大で5つのクライアントにメモリを使用します。サーバーの負荷が突然増加した場合でも、クライアントの数に制限がないとメモリ不足エラーが発生することを心配する必要はありません。過去の経験に基づいて、Webサービスクライアントは大量のメモリを使用すると想定しています...
- プールを気にしませんか?
- 遅いWebサービスへの最初の呼び出しをどのように乗り越えますか?
- そのプールを作成するための最良の方法は何ですか。そうすれば、最小限のプログラミングを行う必要があります(つまり、ライブラリ/ APIなどを使用したいので、車輪の再発明やコーディングを行う必要はありません。毛むくじゃらのバグ)。