データベース・サーバーへの Java ルーチン・クラス・ファイルのデプロイ

Java™ ルーチンのインプリメンテーションをデータベース・サーバー・ファイル・システムにデプロイして、ルーチン呼び出し時にそれらを見つけ、ロードし、実行できるようにする必要があります。

1 つ以上の Java ルーチン実装を個々の Java クラス・ファイルに組み込むことができます。 Java ルーチン実装を含む Java クラス・ファイルは、一緒に収集して JAR ファイルにすることができます。 ルーチンの実装に使用する Java クラス・ファイルは、ターゲット・データベースにインストールされている JAR ファイル内になければなりません。

前提条件:
  • ルーチン・クラスのデプロイ先のデータベース・サーバーを識別します。
  • UNIX および Linux® オペレーティング・システムでは、 データベース・インスタンス所有者のユーザー ID を識別します。 不明の場合は、データベース管理者に問い合わせてください。
  • ルーチン・クラスをデプロイする場所が、db2nodes.cfg ファイルに含まれているすべてのホストからアクセス可能かどうか確認します。 ルーチン・クラス・ファイルを JAR ファイルにパッケージし、SQLJ.INSTALL_JAR プロシージャーを使用して JAR をデータベース・サーバーにインストールすることを検討します。
個別の Java ルーチン・クラス・ファイルをデプロイするには、以下の手順
  • Java ルーチン・クラスをデータベース関数ディレクトリーにコピーします。

    UNIX および Linux オペレーティング・システムでは、 関数ディレクトリーは install_path/function として定義されます。ここで、 install_path はデータベース・マネージャーのインストール・パスです。 例えば、$HOME/sqllib/function になります ($HOME はインスタンス所有者のホーム・ディレクトリー)。

    Windows オペレーティング・システムでは、function ディレクトリーは instance_profile_path\function として定義されます。ここで、 instance_profile_path は、 db2icrt (インスタンスの作成) コマンドで指定されたパスです。 インスタンス・プロファイル・パス名は、以下のように db2set コマンドを発行することによって検出できます。
    db2set DB2INSTPROF
    例: C:\Documents and Settings\All Users\Application Data\IBM\DB2\db2copy1\function

    クラスを Java パッケージの一部として宣言する場合は、完全修飾クラス名に対応するサブディレクトリーを function ディレクトリーに作成し、関連するクラス・ファイルを対応するサブディレクトリーに配置します。 例えば、 ibm.tests.test1 Linux オペレーティング・システムの場合というクラスを作成する場合、対応する Java バイトコード・ファイル ( test1.classという名前) を $HOME/sqllib/function/ibm/testsに保管します。ここで、 ¥ HOME はインスタンス所有者のホーム・ディレクトリーです。

Java ルーチン・クラス・ファイルを含む JAR ファイルをデプロイするには、以下のようにします。

Java ルーチン・クラス・ファイルがデプロイされ、CREATE ステートメントが実行されてデータベース内のルーチンが定義されると、ルーチンを呼び出すことができます。

従属クラスを持つデータベース・サーバーへの Java ルーチン・クラス・ファイルのデプロイ

Java ルーチン・クラス・ファイルに、標準の Java クラスまたはデータベース・クラスの一部ではないクラスに対する依存関係がある場合は、従属クラスごとに前のセクションで示されているステップを繰り返します。

別の方法として、従属クラスを検出するために CLASSPATH 環境変数内のディレクトリーを検索するようデータベースを構成することもできます。 Windows オペレーティング・システムでは、データベース・マネージャーは、 CLASSPATH システム環境変数内の指定されたディレクトリーを検索します。 UNIX および Linux オペレーティング・システムでは、 データベース・マネージャーは、インスタンス所有者の CLASSPATH 環境変数 が「 クラスパス " DB2ENVLIST 環境変数の一部として指定されます。 CLASSPATH 環境変数に頼るのではなく、従属クラスをインストールすることを強くお勧めします。