デフォルトの Java™ クラス・ローダー・オプションと、各タイプの優先順位について詳細に説明します。
JavaCompute ノードは、ノードの Java クラス・プロパティーとして定義されている Java クラスをロードおよび実行します。 通常、このクラスは、他の必須クラスとともに、ブローカー・アーカイブ (BAR) ファイルに含まれている Java アーカイブ (JAR) ファイルにデプロイされます。このファイルを使用して、JavaCompute ノードが含まれるフローがデプロイされます。
このようにデプロイされたすべての Java クラスは、実行グループ全体のクラス・ローダーによってロードされます。 新規または変更された JAR ファイルがデプロイされると、 実行グループ全体のクラス・ローダーは削除され、 現在デプロイされているすべての JAR ファイルを含めて再作成されます。 同時に、すべての JavaCompute ノードは、 それぞれが使用している Java クラスをリフレッシュし、 すべての Java 静的変数を再作成します。 ノードの JavaClassLoader 構成可能サービスのプロパティーを使用すれば、この動作を変更し、代替クラス・ローダーを使用することもできます。 詳細については、構成可能サービスを使用した JavaCompute ノードのクラス・ロードを参照してください。
実行グループ全体のクラス・ローダーは、まずデプロイされているすべての JAR ファイルを対象に必須クラスを検索します。 必須クラスが見つからない場合、共有クラス・ローダーに従います。 共有クラス・ローダーは、ブローカー・マシン上の一連のディレクトリーを確認し、検出された JAR ファイルをすべてロードします。 JavaCompute ノードが使用するクライアント・ライブラリーなど、繰り返しデプロイする必要のない必須 JAR ファイルは、共有クラス・ローダーを使用してインストールすることができます。 詳細については、Java 共有クラス・ローダーを参照してください。
デプロイされた JAR ファイルにも、共有クラス・ディレクトリーにインストールされた JAR ファイルにも必須クラスが見つからない場合、すべてのブローカー提供クラスが含まれるクラス・ローダーが確認されます (例えば、jplugin2.jar が含まれるクラス・ローダーなど)。続いてクラスパス・クラス・ローダーが確認され、最終的に Java 仮想マシン (JVM) システムのクラス・ローダーが確認されます。
上記のどの手段でクラスをロードするかを決めるにあたり、2 つのキーポイントを考慮する必要があります。