プライマリ・コンテンツに移動
Oracle® Fusion Middleware WebLogic Server Multitenantの使用
12c (12.2.1.1.0)
E77392-02
目次へ移動
目次

前
次

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

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

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

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

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

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

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

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

    注意:

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

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

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

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

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

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

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

注意:

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

このため、共有可能なJARファイルを指定することはできますが、これらのJARファイルからのクラスが1回のみロードされ共有されると想定することはできません。

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

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 ServerスタイルのAPP-INF/libディレクトリを識別します。

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

  • APP-INF-CLASSESは、WebLogic Serverスタイルの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アプリケーションの開発』のフィルタ・クラス・ローダーの使用方法に関する項を参照してください。