プライマリ・コンテンツに移動
Oracle® Fusion Middleware WebLogic Server Multitenantの使用
12c (12.2.1)
E67376-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

13 共有アプリケーション・クラス・ローダーの構成

この章では、WebLogic Server Multitenant (MT)で共有アプリケーション・クラス・ローダーを使用する方法について説明します。この章では、適宜追加情報について、WebLogic Serverのドキュメント・セットおよびオンライン・ヘルプを参照します。

この機能は、アプリケーション開発者による使用のみを対象としています。この章では、『Oracle WebLogic Serverアプリケーションの開発』のWebLogic Serverアプリケーションのクラス・ローディングの理解に関する項で説明しているように、WebLogic Serverアプリケーションのクラス・ローディングを理解していることを前提としています。WebLogic Serverアプリケーションのクラス・ローディングについて理解していない場合は、その章を最初にお読みください。

この章の内容は次のとおりです。

共有アプリケーション・クラス・ローダーの構成: 概要

同じアプリケーションの複数のインスタンスを異なるパーティションで実行する場合、これらのインスタンス間でクラス・ローディング・メモリーを最適化する必要がある場合があります。WebLogic Server MTには、この目的のためにデプロイメント・ディスクリプタ・ベースのクラス・ローディング機能が含まれています。

WebLogic Server MTには、次の2つのタイプのクラス・ローダーが用意されています。

  • パーティション・クラス・ローダー - パーティション・クラス・ローダーは、パーティションごとにかわりに作成されます。このクラス・ローダーは、パーティション全体かつそのパーティションでのみ表示可能である必要があり、ドメインの残りの部分では表示できないクラスをロードします。(これには、グローバル・コネクタが含まれます。)


    注意:

    グローバル・コネクタは、サーバー内のすべてのアプリケーションで表示可能および使用可能になるように構成された、特定のタイプのコネクタ・モジュールです。これらのモジュールは、スタンドアロンとして、またはエンタープライズ・アプリケーション(EAR)のモジュールとしてデプロイされます。

  • 共有アプリケーション・クラス・ローダー - 共有アプリケーション・クラス・ローダーは、アプリケーションがリソース・グループ・テンプレートにデプロイされる場合にSaaSユースケースでのみ関連します。クラス・ローダーは、あるアプリケーションのすべてのインスタンスでパーティションを越えて表示可能である必要があるが、他のアプリケーションでは表示できないクラスをロードします。(パーティションではなく)ドメインに直接デプロイされているアプリケーションは、パーティションが構成されている場合でも影響を受けません。

    WebLogicデプロイメント・ディスクリプタは、アプリケーション・パッケージング内のAPP-INF/classesの下のJARおよびクラスを識別する、新しいshareable構成をサポートします。これらのクラスは、共有アプリケーション・クラス・ローダーからロードされる必要があります。

    shareable構成は、エンタープライズ・アプリケーションのweblogic-application.xmlファイルで、および本番モードでのみサポートされます。

パーティションを作成するときに、新しいパーティション・クラス・ローダーが作成され、パーティションの最初のアプリケーションがリソース・グループにデプロイされます。既存のパーティション・クラス・ローダーは、パーティションが削除されると削除され、パーティションの最後のアプリケーションがリソース・グループからアンデプロイされます。

アプリケーション(共有可能なJARが構成された)がリソース・グループ・テンプレートにデプロイされると、新しい共有アプリケーション・クラス・ローダーを作成でき、リソース・グループ・テンプレートはパーティションのリソース・グループによって参照されます。

既存の共有アプリケーション・クラス・ローダーは、関連するアプリケーションがリソース・グループ・テンプレートからアンデプロイされると削除されます。アプリケーションをリソース・グループ・テンプレートからアンデプロイすると、そのテンプレートを参照するすべてのリソース・グループからアプリケーションはただちにアンデプロイされます。

保証されない共有クラス・ローディング

クラス・ローディングが共有されると仮定できません。共有は可能な場合と可能でない場合があります。たとえば、パーティションごとに異なる構成を取得するようにフィルタリングが設定されている場合、共有はできません。フィルタ・クラス・ローダーの詳細は、『Oracle WebLogic Serverアプリケーションの開発』のフィルタ・クラス・ローダーの使用に関する項を参照してください。

そのため、どのJARが共有可能かを示すことはできますが、これらのJARのクラスを一度のみロードして共有することを仮定できません。

共有アプリケーション・クラス・ローダーの構成: 主な手順

XMLエディタを使用すると、アプリケーション開発者は、アプリケーションの作成時にweblogic-application.xmlファイルを編集し、<class-loading>要素内に1つ以上のshareable要素を追加できます。

次に例を示します。

<class-loading>
  <shareable dir="APP-INF-LIB">
    <include>coupon-generator.jar</include>
    <include>group-discounts.jar</include>
  </shareable>
  <shareable dir="LIB-DIR">
    <exclude>program-guide.jar</exclude>
  </shareable>
</class-loading> 

dir属性は、以降のパターンが適用されるディレクトリを識別します。dirでサポートされる値は、次の値のみです。

  • APP-INF-LIBは、WebLogicスタイルのAPP-INF/libディレクトリを識別します。

  • LIB-DIRは、Java EEスタイルのライブラリ・ディレクトリを識別します。

  • APP-INF-CLASSESは、WebLogicスタイルのAPP-INF/classesを識別します。

APP-INF-LIBおよびLIB-DIRの場合、<include></include>要素で設定した値は、問題なく共有できると考えられるJARファイルを識別します。これらのJARのクラスは、次のものに依存できません。

  • 共有可能とみなされていないJARのクラス。

  • グローバル・コネクタなど、パーティション・スコープのクラス。

同様に、APP-INF-LIBおよびLIB-DIRの場合、<exclude></exclude>要素は、共有できないJARの識別に役立ちます。

次の構成ルールが適用されます。

  • APP-INF-LIBおよびLIB-DIRがincludeまたはexclude構成なしで識別される場合、そのディレクトリのすべてのJARは共有可能とみなされます。

  • APP-INF-LIBおよびLIB-DIRがinclude構成で識別される場合、includeパターンで識別されるJARのみが共有可能とみなされます。

  • APP-INF-LIBおよびLIB-DIRがexclude構成で識別される場合、excludeパターンによって識別されるJARを除くディレクトリのすべてのJARが共有可能とみなされます。

APP-INF-CLASSES

APP-INF-CLASSESの場合、includeおよびexclude構成は、存在しても無視されます。APP-INF-CLASSESが共有可能と識別された場合、すべてのクラスが共有可能と宣言されます。

APP-INF-CLASSESは、コード・ソースの場所であり、includeおよびexclude要素は必要ありません。共有アプリケーション・クラス・ローダー実装では、コード・ソースの場所内に要素を含めたり除外することはできません。

APP-INF-CLASSESは、ディスクリプタのパッケージング単位、アプリケーションまたはライブラリでのみ有効です。アプリケーションおよびライブラリの場合は、個別に宣言する必要があります。

関連タスクおよびリンク

フィルタ・クラス・ローダーの詳細は、『Oracle WebLogic Serverアプリケーションの開発』のフィルタ・クラス・ローダーの使用に関する項を参照してください。