Websphere共有ライブラリとJavaプロジェクトで定義されたライブラリの使用を理解する助けになる人はいますか?私はwebsphereには新しく、共有ライブラリのコンセプトを理解していないというだけでなく、作業しているプロジェクトのlibフォルダにライブラリクラスを置いているだけです。Websphere共有ライブラリとJavaプロジェクトで定義されたライブラリの使用を理解していますか?
答えて
共有ライブラリを使用することにはいくつかの利点があります。
- は、メモリ消費量を削減します。多くのアプリケーションを使用する場合は、サーバーに関連する共有ライブラリまたは独立した共有ライブラリを使用することにより、JVMはアプリケーション内のライブラリの各コピーのクラスをロードするのではなく、クラスの単一のコピーをメモリにロードできます。
- WARのサイズを小さくします。これにより、バックアップを維持すると、展開時間が短縮され、ネットワーク転送が削減され、ストレージサイズが縮小されます。
- 環境の管理性を向上させます。多くのアプリケーションが展開されており、修正のためにライブラリの1つをアップグレードする必要がある場合は、中央ライブラリを更新するよりも多くのアプリケーションを再パッケージ化/再デプロイする方が多くなります。一度にすべてではなく「ゆっくり」アプリケーションを更新する必要がある場合は、依存バージョンの異なるバージョンに対して複数の共有ライブラリを宣言できます。このアプローチでは、サーバー関連のライブラリではなくアプリケーションに関連するライブラリを使用する必要があるため、ここに挙げたその他の利点を引き続き得るには、独立した共有ライブラリを使用する必要があります。
- ネイティブライブラリのサポートが強化されました。アプリケーションでネイティブライブラリを使用するライブラリが必要で、アプリケーションでライブラリをパッケージ化する場合、ネイティブライブラリがアンロードされたりロードされたりするのを防ぐJVMの制限があるため、通常はサーバを再起動せずにアプリケーションを再起動することはできません。複数のアプリケーション。
通常、アプリケーションは使用しているライブラリのバージョンと緊密に結合しているため、ライブラリをアプリケーションから分離すると、アップグレードがより困難になる可能性があります。
ブレットが有効なポイントを持ち出しました。私は#3の欠点についてもっと詳しく説明します。
#3の場合は、修正のために例のような新しいバージョンにライブラリをアップグレードすることが有効です。しかし、私の経験では、同じJVMを本番環境で共有する複数のアプリケーションがあり、それらがすべてライブラリを使用すると、(a)新しいバージョンのライブラリ(b)をすべてのアプリケーションで適時にテストし、 )すべての利害関係者が、異なる事業部門にある場合に特に配備される図書館の修正に同意するようにしてください。アプリケーションは、親ライブラリを親ラストに設定することによって親ライブラリをオーバーライドできますが、最新の修正を統合する必要のあるアプリケーションがEARファイル内で実行し、共有ライブラリをオーバーライドできることを意味します。しかし、それは共有ライブラリの利点を打ち破っています。これは、JVM環境がどのように「共有」されているか、同じJVM内のアプリケーションがタイムリーに新しいバージョンのライブラリを使用できるかどうか(つまり、テストを終了するかどうか)などです。
アプリケーションに関連する共有ライブラリをサーバー関連ではなく使用する場合は、依存バージョンの異なるバージョンに対して複数の共有ライブラリを宣言してから、一度に1つずつアプリケーションをゆっくりと更新することができます。このアプローチでは、共有ライブラリの他のメリットをすべて得ることができます(ただし、メモリ消費のメリットを得るには、独立した共有ライブラリを使用する必要があります)。 –
(あなたのフィードバックを反映するように私の答えを更新しました。ありがとうございます) –
- 1. Websphere共有ライブラリ
- 2. Websphere共有ライブラリとJava 2セキュリティ
- 3. Websphere:デプロイメント記述子を使用した共有ライブラリの設定
- 4. g ++未定義シンボル共有ライブラリを使用しているエラー
- 5. Websphere共有ライブラリ「優先度」?
- 6. Cプログラミング:共有ライブラリ(.so)で定義されたマクロを再定義する
- 7. Mavenで共有ライブラリを使用してプロジェクトを整理するにはどうすればいいですか?
- 8. CMake:静的ライブラリと共有ライブラリの異なるコンパイル定義
- 9. 共有ライブラリで定義されていない参照を取得する
- 10. Java EE共有ライブラリ?
- 11. 共有ライブラリの未定義のシンボル
- 12. 共有ライブラリを使用したクロスコンパイル
- 13. 共有ライブラリの未定義シンボル
- 14. linux共有のCライブラリが共有されていません
- 15. GAEで共有されているPythonライブラリを使用できますか?
- 16. Heroku - ネイティブ共有ライブラリを使用したJavaアプリケーションのホスト
- 17. GNU共有ライブラリで定義された関数への未定義参照を作成します。
- 18. jenkins共有ライブラリを使用して変数を定義するにはどうすればよいですか?
- 19. 静的NTLライブラリを使用してJNIビルド共有ライブラリ
- 20. VS2010でプロジェクト間でDLLライブラリを共有
- 21. 共有ライブラリのpstack(c/C++)。破損した共有ライブラリ
- 22. アンドロイドビルドシステムでネイティブ共有ライブラリをロードするJavaライブラリを処理する方法
- 23. Xcp 2.2 Javaサービス用の共有ライブラリ
- 24. 設定ファイルと共有ライブラリでboost-diを使用する
- 25. なぜCMake EXPORTは共有ライブラリの構築に使用される静的ライブラリを必要としますか?
- 26. djangoプロジェクトの共有ライブラリ用のフォルダはどこですか?
- 27. 共有ライブラリ用語
- 28. Solaris 10 Sparc上のcmake:共有ライブラリを使用しないように設定されていますか?
- 29. 共有されたmmapファイルを管理するためのライブラリまたはツール
- 30. 2つのプロセスによって使用される共有ライブラリ
ありがとうございます!それは多くをクリアします。 – alove0286
これがあなたの質問に答えた場合は、答えの左側にあるチェックマークをクリックする必要があります。これは私の評判を高め、それはあなたの受諾率を上げ、それによって人々があなたの質問に将来的に答える可能性が高まります。 –
#1の潜在的な欠点:いくつかのライブラリは、アプリケーション間で共有されているとうまく動作しないようです。少なくともlog4jは私たちに過去にそのような問題を引き起こしました。一方で、アプリケーションに関連するアプリケーションを使用すると動作すると思われますが、それには利点がありません: – dbreaux