アプリケーション構築の手引き


SQLJ プログラム

注:IBM Java 開発者キット (UNIX、OS/2、および Windows 32 ビット・オペレーティング・システム版) で SQLJ プログラムを構築し、実行するには、 ご使用のオペレーティング・システムに該当する次のコマンドを使って、 JDK のジャストインタイム・コンパイラーをオフにしなければなりません。

OS/2 および Windows:
SET JAVA_COMPILER=NONE

UNIX:
export JAVA_COMPILER=NONE

ビルド・ファイル bldsqlj には、 SQLJ アプレットまたはアプリケーションを構築するためのコマンドが組み込まれています。 UNIX ではスクリプト・ファイルがこれに相当します。 OS/2 ではコマンド・ファイル bldsqlj.cmd が、 また Windows ではバッチ・ファイル bldsqlj.bat がこれに相当します。 これらのコマンド・ファイルとバッチ・ファイルの内容は同じです。 それでこのバージョンを最初に示してあり、その後に UNIX スクリプト・ファイルを示します。 アプレットとアプリケーションの構築に関するそれ以降の節では、 これらのビルド・ファイルを後から参照しています。
注:DB2 に付属している SQLJ 変換プログラムは、 変換後の .java ファイルを .class ファイルにコンパイルします。 そのため、この節のビルド・ファイルは java コンパイラーを使用しません。

以下に示す、OS/2 および Windows 32 ビット・オペレーティング・システム用のビルド・ファイルでは、 第 1 パラメーター %1 にソース・ファイルの名前を指定します。 第 2 パラメーター %2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター %3 には、 そのデータベースのユーザー ID を指定し、%4 にはそのパスワードを指定します。 最初のパラメーター (ソース・ファイル名) だけが、必須です。 データベース名、ユーザー ID、およびパスワードは任意指定です。 データベース名を指定しない場合は、 プログラムはデフォルトの sample データベースを使用します。

@echo off
rem bldsqlj -- OS/2 and Windows 32-bit operating systems
rem Builds a Java embedded SQL (SQLJ) program.
rem Usage: bldsqlj prog_name [ db_name [ userid password ]] 
if "%1" == "" goto error
rem Translate and compile the SQLJ source file
rem and bind the package to the database.
if "%2" == "" goto case1
if "%3" == "" goto case2
if "%4" == "" goto error
goto case3
:case1
   sqlj %1.sqlj
   db2profc -url=jdbc:db2:sample -prepoptions="package using %1" %1_SJProfile0 
   goto continue
:case2
   sqlj     -url=jdbc:db2:%2 %1.sqlj
   db2profc -url=jdbc:db2:%2 -prepoptions="package using %1" %1_SJProfile0
   goto continue
:case3
   sqlj     -url=jdbc:db2:%2 -user=%3 -password=%4  %1.sqlj
   db2profc -url=jdbc:db2:%2 -user=%3 -password=%4 -prepoptions="package using %1" 
     %1_SJProfile0
   goto continue
:continue
goto exit
:error
echo Usage: bldsqlj prog_name [ db_name [ userid password ]] 
:exit
@echo on

bldsqlj の変換プログラムとプリコンパイル・オプション

sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。

%1.sqlj
SQLJ ソース・ファイル。

%1.java
SQLJ ソース・ファイルから変換した後の Java ファイル。

db2profc
Java プロファイル・カスタマイザーが使用する DB2。

-url
データベース接続を確立するための JDBC URL を jdbc:db2:sample のように指定します。

-user
ユーザー ID を指定します (任意指定パラメーター)。

-password
パスワードを指定します (任意指定パラメーター)。

-prepoptions
データベースのパッケージ名をストリング "package using %1" で指定します。 %1 は SQLJ ソース・ファイル名です。

%1_SJProfile0
プログラムのシリアル化プロファイルを指定します。

以下に示す UNIX スクリプト・ファイルでは、 第 1 パラメーター $1 にソース・ファイルの名前を指定します。 第 2 パラメーター $2 には、 接続先のデータベースの名前を指定します。 第 3 パラメーター $3 にはそのデータベースのユーザー ID を、 また $4 にはパスワードを指定します。 最初のパラメーター (ソース・ファイル名) だけが、必須です。 データベース名、ユーザー ID、およびパスワードは任意指定です。 データベース名を指定しない場合は、 プログラムはデフォルトの sample データベースを使用します。

#! /bin/ksh
# bldsqlj script file -- UNIX platforms
# Builds a Java embedded SQL (SQLJ) sample
# Usage: bldsqlj <prog_name> [ <db_name> [ <userid> <password> ]] 
# Translate and compile the SQLJ source file
# and bind the package to the database.
if (($# < 2))
then
   sqlj $1.sqlj
   db2profc -url=jdbc:db2:sample -prepoptions="package using $1" $1_SJProfile0
elif (($# < 3))
then
   sqlj     -url=jdbc:db2:$2 $1.sqlj
   db2profc -url=jdbc:db2:$2 -prepoptions="package using $1" $1_SJProfile0
else
   sqlj     -url=jdbc:db2:$2 -user=$3 -password=$4  $1.sqlj
   db2profc -url=jdbc:db2:$2 -user=$3 -password=$4 -prepoptions="package using $1" 
     $1_SJProfile0
fi

bldsqlj の変換プログラムとプリコンパイル・オプション

sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。

$1.sqlj
SQLJ ソース・ファイル。

$1.java
SQLJ ソース・ファイルから変換した後の Java ファイル。

db2profc
Java プロファイル・カスタマイザーが使用する DB2。

-url
データベース接続を確立するための JDBC URL を jdbc:db2:sample のように指定します。

-user
ユーザー ID を指定します (任意指定パラメーター)。

-password
パスワードを指定します (任意指定パラメーター)。

-prepoptions
データベースのパッケージ名をストリング "package using $1" で指定します。 $1 は SQLJ ソース・ファイル名です。

$1_SJProfile0
プログラムのシリアル化プロファイルを指定します。

アプレット

Applt は、 DB2 データベースにアクセスする SQLJ アプレットを例示します。

このアプレットをビルド・ファイル bldsqlj で構築して実行するには、 次のようにします。

  1. DB2 マシン (サーバーまたはクライアント) に Web サーバーがインストールされて実行していることを確認してください。
  2. Applt.html ファイルの内容を、 ファイル内の指示に従って修正します。
  3. Applt.html で指定された TCP/IP ポートで JDBC アプレット・サーバーを開始します。 たとえば Applt.html では、 param name=port value='6789' と指定してから以下のように入力できます。
       db2jstrt 6789
    
  4. アプレットを次のコマンドで作成します。
       bldsqlj Applt [ <db_name> [ <userid> <password> ]]
    

    上記のコマンドで任意指定パラメーター <db_name> を指定すると、 デフォルトの sample データベースではない別のデータベースにアクセスできます。 任意指定パラメーター <userid><password> は、 リモートのクライアント・マシンからサーバーにアクセスするときなど、 アクセスする予定のデータベースが別のインスタンス上にある場合に指定しなければなりません。

  5. Web ブラウザーが、作業ディレクトリーにアクセス可能であることを確認してください。 もしアクセス可能ではない場合は、 次のファイルをディレクトリーにコピーして、アクセス可能にします。
       Applt.html,                             Applt.class,
       Applt_Cursor1.class,                    Applt_Cursor2.class,
       Applt_SJProfileKeys.class,              Applt_SJProfile0.ser
    
  6. OS/2 および Windows 32 ビット・オペレーティング・システムの場合にはファイル %DB2PATH%\java\db2java.zip%DB2PATH%\java\runtime.zip を、 また UNIX の場合には sqllib/java/db2java.zipsqllib/java/runtime.zip を、 他の Applt ファイルと同じディレクトリーにコピーします。
  7. クライアント・マシンで、 Web ブラウザー (JDK 1.1 をサポートしていなければなりません) を開始し、 Applt.html をロードします。

ステップ (1)、(5)、および (7) の代わりに、 次のコマンドをクライアント・マシンの作業ディレクトリーで入力して、 Java 開発者キットに付属のアプレット・ビューアーを使用することができます。

   appletviewer Applt.html

このプログラムは、Java の makefile を使って構築することも可能です。

アプリケーション

App は、 DB2 データベースにアクセスする SQLJ アプリケーションを例示します。

このアプリケーションをビルド・ファイル bldsqlj で構築するには、 以下に示すコマンドを入力します。

   bldsqlj App [ <db_name> [ <userid> <password> ]]

上記のコマンドで任意指定パラメーター <db_name> を指定すると、 デフォルトの sample データベースではない別のデータベースにアクセスできます。 任意指定パラメーター <userid><password> は、 リモートのクライアント・マシンからサーバーにアクセスするときなど、 アクセスする予定のデータベースが別のインスタンス上にある場合に指定しなければなりません。

次のコマンドで、アプリケーションに対して Java インタープリターを実行します。

   java App

このプログラムは、Java の makefile を使って構築することも可能です。

ストアード・プロシージャー用のクライアント・プログラム

Stclient は、 SQLJ ストアード・プロシージャー Stserver を JDBC アプリケーション・ドライバーを使って呼び出すクライアント・プログラムです。 このクライアント・アプリケーションを構築して実行する前に、 ストアード・プロシージャー・クラスをサーバー上で構築します。 "ストアード・プロシージャー"を参照してください。

このクライアント・プログラムをビルド・ファイル bldsqlj で構築するには、 以下に示すコマンドを入力します。

   bldsqlj Stclient [ <db_name> [ <userid> <password> ]]

上記のコマンドで任意指定パラメーター <db_name> を指定すると、 デフォルトの sample データベースではない別のデータベースにアクセスできます。 任意指定パラメーター <userid><password> は、 リモートのクライアント・マシンからサーバーにアクセスするときなど、 アクセスする予定のデータベースが別のインスタンス上にある場合に指定しなければなりません。

次のコマンドで、クライアント・アプリケーションに対して Java インタープリターを実行します。

   java Stclient 

このプログラムは、Java の makefile を使って構築することも可能です。

ユーザー定義関数用のクライアント・プログラム

UDFclie は、 ユーザー定義関数サーバー・プログラム UDFsrv を、 JDBC アプリケーション・ドライバーを使って呼び出すクライアント・プログラムです。 このクライアント・アプリケーションを構築して実行する前に、 UDFsrv プログラムをサーバー上で構築します。 "ユーザー定義関数 (UDF)"を参照してください。

この SQLJ クライアント・プログラムをビルド・ファイル bldsqlj で構築するには、 以下に示すコマンドを入力します。

   bldsqlj UDFclie [ <db_name> [ <userid> <password> ]]

上記のコマンドで任意指定パラメーター <db_name> を指定すると、 デフォルトの sample データベースではない別のデータベースにアクセスできます。 任意指定パラメーター <userid><password> は、 リモートのクライアント・マシンからサーバーにアクセスするときなど、 アクセスする予定のデータベースが別のインスタンス上にある場合に指定しなければなりません。

次のコマンドで、クライアント・アプリケーションに対して Java インタープリターを実行します。

   java UDFclie

このプログラムは、Java の makefile を使って構築することも可能です。

ストアード・プロシージャー

ビルド・ファイル bldsqljs には、 SQLJ ストアード・プロシージャーを構築するためのコマンドが組み込まれています。 UNIX ではスクリプト・ファイルがこれに相当します。 OS/2 ではコマンド・ファイル bldsqljs.cmd が、 また Windows ではバッチ・ファイル bldsqljs.bat がこれに相当します。 これらのコマンド・ファイルとバッチ・ファイルの内容は同じです。 それでこのバージョンを最初に示してあり、その後に UNIX スクリプト・ファイルを示します。

以下に示す、OS/2 および Windows 32 ビット・オペレーティング・システム用のビルド・ファイルでは、 第 1 パラメーター %1 にソース・ファイルの名前を指定します。 第 2 パラメーター %2 には、接続先のデータベースの名前を指定します。 ストアード・プロシージャーは、 データベースが存在するのと同じインスタンス上に構築されなければならないので、 ユーザー ID およびパスワード用のパラメーターはありません。

最初のパラメーター (ソース・ファイル名) だけが、必須です。 データベース名を指定しない場合は、 プログラムはデフォルトの sample データベースを使用します。

@echo off
rem bldsqljs -- OS/2 and Windows 32-bit operating systems
rem Builds a Java embedded SQL (SQLJ) stored procedure
rem Usage: bldsqljs prog_name [ db_name ] 
if "%1" == "" goto error
rem Translate and compile the SQLJ source file
rem and bind the package to the database.
if "%2" == "" goto case1
goto case2
:case1
   sqlj %1.sqlj 
   db2profc -url=jdbc:db2:sample -prepoptions="package using %1" %1_SJProfile0 
   goto continue
:case2
   sqlj     -url=jdbc:db2:%2 %1.sqlj 
   db2profc -url=jdbc:db2:%2 -prepoptions="package using %1" %1_SJProfile0
:continue
rem Copy the *.class and *.ser files to the 'function' directory.
copy %1*.class "%DB2PATH%\function"
copy %1*.ser "%DB2PATH%\function"
goto exit
:error
echo Usage: bldsqljs prog_name [ db_name ] 
:exit
@echo on


bldsqljs の変換プログラムとプリコンパイル・オプション

sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。

%1.sqlj
SQLJ ソース・ファイル。

%1.java
SQLJ ソース・ファイルから変換した後の Java ファイル。

db2profc
Java プロファイル・カスタマイザーが使用する DB2。

-url
データベース接続を確立するための JDBC URL を jdbc:db2:sample のように指定します。

-prepoptions
データベースのパッケージ名をストリング "package using %1" で指定します。 %1 は SQLJ ソース・ファイル名です。

%1_SJProfile0
プログラムのシリアル化プロファイルを指定します。

以下に示す UNIX スクリプト・ファイルでは、 第 1 パラメーター $1 にソース・ファイルの名前を指定します。 第 2 パラメーター $2 には、 接続先のデータベースの名前を指定します。 ストアード・プロシージャーは、 必ずデータベースが常駐するインスタンスに構築される必要があるため、 ユーザー ID やパスワードを指定するパラメーターはありません。

最初のパラメーター (ソース・ファイル名) だけが、必須です。 データベース名を指定しない場合は、 プログラムはデフォルトの sample データベースを使用します。

#! /bin/ksh
# bldsqljs script file -- UNIX platforms
# Builds a Java embedded SQL (SQLJ) stored procedure
# Usage: bldsqljs <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Translate and compile the SQLJ source file
# and bind the package to the database.
if (($# < 2))
then
   sqlj $1.sqlj
   db2profc -url=jdbc:db2:sample -prepoptions="package using $1" $1_SJProfile0
else
   sqlj     -url=jdbc:db2:$2 $1.sqlj
   db2profc -url=jdbc:db2:$2 -prepoptions="package using $1" $1_SJProfile0
fi
# Copy the *.class and *.ser files to the 'function' directory.
rm -f $DB2PATH/function/$1*.class
rm -f $DB2PATH/function/$1*.ser
cp $1*.class $DB2PATH/function
cp $1*.ser $DB2PATH/function


bldsqljs の変換プログラムとプリコンパイル・オプション

sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。

$1.sqlj
SQLJ ソース・ファイル。

$1.java
SQLJ ソース・ファイルから変換した後の Java ファイル。

db2profc
Java プロファイル・カスタマイザーが使用する DB2。

-url
データベース接続を確立するための JDBC URL を jdbc:db2:sample のように指定します。

-prepoptions
データベースのパッケージ名をストリング "package using $1" で指定します。 $1 は SQLJ ソース・ファイル名です。

$1_SJProfile0
プログラムのシリアル化プロファイルを指定します。

Stserver は、 DB2 データベースにアクセスするために、 JDBC アプリケーション・ドライバーを使用した PARAMETER STYLE JAVA ストアード・プロシージャーを例示します。 ストアード・プロシージャーはサーバー上でコンパイルされ、格納されます。 そして、クライアント・アプリケーションによって呼び出されるとサーバー・データベースにアクセスし、そのクライアント・アプリケーションに情報を戻します。

このストアード・プロシージャー・クラスをビルド・ファイル bldsqljs で構築するには、 以下に示すコマンドを入力します。

  1. 以下のコマンドを入力します。
       bldsqljs Stserver [ <db_name> ]
    

    上記のコマンドで任意指定パラメーター <db_name> を指定すると、 デフォルトの sample データベースではない別のデータベースにアクセスできます。

  2. 次に、 サーバー上で Stcreate.db2 スクリプトを実行することによってストアード・プロシージャーをカタログ化します。 まず、データベースに接続します。
       db2 connect to sample
    

    ストアード・プロシージャーがすでにカタログ化されている場合は、 次のコマンドを使用してそれらをドロップすることができます。

       db2 -td@ -vf Stdrop.db2
    

    その後、次のコマンドでストアード・プロシージャーをカタログ化します。

       db2 -td@ -vf Stcreate.db2
    
  3. カタログ化が終了したら、データベースを 1 度停止してから再始動し、 新しい共用ライブラリーが認識されるようにします。 必要であれば、共用ライブラリーにファイル・モードを設定して、 DB2 インスタンスからアクセスできるようにします。
  4. Stclient クライアント・アプリケーションをコンパイルして実行し、 ストアード・プロシージャーを呼び出します。 "ストアード・プロシージャー用のクライアント・プログラム"を参照してください。

このプログラムは、Java の makefile を使って構築することも可能です。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]