組み込み SQLJ の DB2 for z/OS レガシー・ドライバーとの併用
SQLJ (Structured Query Language in Java™) は、プログラマーが Java プログラム言語を使用して Structured Query Language (SQL) データベース要求を実行するステートメントを組み込めるようにする、プログラミングの拡張機能セットです。データ・アクセス・アプリケーションで、DB2® for z/OS® レガシー・ドライバーを使用できます。
このタスクについて
- SQLJ を WebSphere® Application Server for z/OS および DB2 for z/OS レガシー・ドライバーと併用するには、DB2 APAR PQ76442 をインストールします。
- SQLJ を使用して生成されたコンテナー管理パーシスタンス (CMP) Bean は 、DB2 for z/OS レガシー・ドライバーでサポートされません。SQLJ を使用して生成された CMP に対しては DB2 Universal Driver を使用してください。
以下に、DB2 for z/OS レガシー・ドライバーを使用して 、WebSphere Application Server for z/OS v6.0 上で実行する SQLJ で アプリケーションを開発するために必要なステップを示します。
手順
- 必要に応じて SQLJ を使用し、要件に従って Rational® Application Developer でアプリケーションを設計します。例えば、BMP を使用する Test という名の Bean を開発する場合
、TestBean.sqlj (TestBean.java ではない) というコードを作成します。
- DB2 for z/OS インストール済み環境から、db2sqljclasses.zip ファイルを ワークステーション上のディレクトリーにコピーし、EJB Java アーカイブ (JAR) プロジェクトの Java ビルド・パスを変更して、db2sqljclasses.zip を組み込みます。
- 以下のステップに従って、SQLJ コードを変換します。
- SQLJ ファイルを見つけ、ASCII モード転送を使用して、 これを z/OS 環境の HFS に FTP でファイル転送します。
- sqlj コマンドを使用して SQLJ コードを Java コードに変換します。2 つのファイルが生成されます。1 つのファイルは拡張子 .java を持ち、もう 1 つは拡張子 .ser を持ちます。
sqlj -compile=false SQLJ_FILE_NAME
- .java ファイルに対しては ASCII モード転送を、.ser ファイルに対しては BINARY モード転送を使用し、これらのファイルを、SQLJ ファイルが入っているワークステーション上のディレクトリーに戻します。
- プロジェクトを最新表示します。
- アプリケーションのデプロイメント・コードを生成します。
- EAR ファイルをエクスポートします。
- アプリケーションをインストールします。
- DB2 for z/OS ローカル JDBC プロバイダー (RRS) を使用して、データ・ソースを作成します。 JDBC Provider およびデータ・ソースを定義する場合、SQLJ サポートを提供するには、デフォルト値をそのまま使用して構いません。
- アプリケーションを WebSphere Application Server へインストールします。
ステップ 1 で作成したデータ・ソースを使用して、リソース参照を解決します。
- 直列化プロファイルをカスタマイズします。 デプロイメント・コードを生成すると、アプリケーションに固有の直列化プロファイル (拡張子 .ser を持つファイル) が作成されます。これらのプロファイルは、使用する前に、z/OS 環境でカスタマイズする必要があります。
- バイナリー転送を使用して、アプリケーションをインストールした z/OS 環境に 直列化プロファイルを転送します。 あるいは、Java jar コマンドを使用して、インストール済みの EAR ディレクトリーの EJB JAR ファイルから直列化プロファイルを抽出します。
- db2profc コマンドを使用し、直列化プロファイルをカスタマイズします。 このコマンドに関連するさまざまなオプションについての情報は DB2 の資料から得られますが、プロファイルをカスタマイズするための最小要件を以下に示します。
db2profc -pgmname=PROGRAM_NAME PROFILE_NAME
- 各部の意味は、次のとおりです。
- PROGRAM_NAME は有効な MVS™ PDS メンバー名である必要があり、7 文字まで使用可能です。
- PROFILE_NAME は、カスタマイズする直列化プロファイルの名前です。 各プロファイルに対して、db2profc を 1 回実行する必要があります。
- プロファイル・カスタマイザーは、PDS USERNAME.DBRMLIB.DATA に 4 つの DBRM データ・セットを作成します。DBRM のメンバー名は、PROGRAM_NAME として指定したものから始まります。
- CLASSPATH 環境変数に以下が含まれていることを確認します。
- 直列化プロファイルのロケーション
- インストール済み EAR ディレクトリー内の EJB JAR ファイル
- PDS を割り振り、作成される DBRM を含みます。この
PDS に USERNAME.DBRMLIB.DATA という名前を付けます。
ここで、USERNAME は db2profc コマンドを実装するユーザーです。以下にフィールドの例を示します。
Space units=TRACK Primary quantity=15 Secondary quantity=5 Directory blocks=10 Record format=FB Record length=80 Block size=27920 Data set name type=PDS
- 各部の意味は、次のとおりです。
- カスタマイズした既存の直列化プロファイルを、アプリケーション・クラスパスの一部で、EJB JAR ファイルに存在する直列化プロファイルの前のロケーションに配置します。
DB2 プロファイル・カスタマイザーの出力と入力ファイルは同じ名前を持ちます。 出力ファイルを、クラスパスのオリジナルの直列化プロファイルの前に移動します。 あるいは、カスタマイズしたプロファイルを EJB JAR ファイルに移動して、オリジナルと置き換えることもできます。オリジナルのファイルを置き換えることをお勧めします。
重要: 直列化プロファイルが存在する ディレクトリーから db2profc コマンドを実行すると、プロファイル・カスタマイザーにより直列化プロファイルが 上書きされます。プロファイル・カスタマイザーが稼働した後は、カスタマイズしたバージョンのみが必要となるので、 これは問題にはなりません。
- DBRM をパッケージにバインドします。 注: DBRM をバインドする前に、 データベース・テーブルを作成する必要があります。これを行わないと、バインド・ジョブは失敗します。
db2profc カスタマイズ・コマンドは、パッケージにバインドする必要がある 一連の DBRM を作成します。カスタマイズされた各プロファイルに対して、4 つの DBRM が作成されます。
これらの DBRM には、以下の性質があります。- USERNAME.DBRMLIB.DATA にあります。
- すべて、PROGRAM_NAME として指定したもので始まる名前を持ちます。
- 1 から 4 の番号がつけられています。
例えば、IBMUSER としてログインし、-pgmname=TESTBMP を指定し、次に db2profc コマンドを実行する場合、TESTBMP1、TESTBMP2、TESTBMP3、および TESTBMP4 という 4 つのデータ・セットが作成され、PDS IBMUSER.DBRMLIB.DATA に配置されます。
これらのデータ・セットは、UR、CS、RS、および RR に分離して、パッケージにバインドする必要があります。カスタマイズする 各直列化プロファイルに対してバインドを実行する必要があります。
- すべての DBRM をパッケージにバインドした後、パッケージを計画にバインドします。
計画に任意の名前をつけます。
重要: また、新規計画のパッケージ・リスト (PKLIST) に 、JDBC パッケージを組み込む必要があります。 組み込む JDBC パッケージのデフォルトの名前は、DSNJDBC.DSNJDBC1、...、DSNJDBC.DSNJDBC4 です。ご使用のインストール・システムが JDBC パッケージのデフォルトの名前を使用しなかった場合は、DB2 管理者に問い合わせて、 組み込む必要のある JDBC パッケージの名前を判別します。
以下は、新規計画をバインドするために使用するサンプル・ジョブです。- IBMUSER としてログオンしている間に 1 つの直列化プロファイルが作成されました。
- db2profc を実行するために -pgmname=TESTBMP が指定されました。
- 新規計画は、SQLJPLAN という名前が付けられます。
//BBOOLS JOB (516B,1025),'IBMUSER',MSGCLASS=H,CLASS=A,PRTY=14, // NOTIFY=&SYSUID,TIME=1440,USER=IBMUSER,PASSWORD=IBMUSER, // MSGLEVEL=(1,1) //******************************************************************** //BINDOLS EXEC PGM=IKJEFT01,DYNAMNBR=20 //DBRMLIB DD DSN=IBMUSER.DBRMLIB.DATA,DISP=SHR //* DD DSN=MVSDSOM.DB2710.SDSNDBRM,DISP=SHR //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSTSIN DD * DSN SYSTEM(DB2) BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP1) - VALIDATE(BIND) - ISOLATION(UR) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP2) - VALIDATE(BIND) - ISOLATION(CS) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP3) - VALIDATE(BIND) - ISOLATION(RS) - SQLERROR(NOPACKAGE) - BIND - PACKAGE(TESTBMP) - QUALIFIER(IBMUSER) - MEMBER(TESTBMP4) - VALIDATE(BIND) - ISOLATION(RR) - SQLERROR(NOPACKAGE) - BIND PLAN(SQLJPLAN) - QUALIFIER(IBMUSER) - PKLIST(TESTBMP.* - DSNJDBC.* ) - ACTION(REPLACE) RETAIN - VALIDATE(BIND) END /*
- 新規計画に適切な権限を付与します。SPUFI などの DB2 へのインターフェースを使用して権限を付与します。
次のコマンドを実行します。
各部の意味は、次のとおりです。GRANT EXECUTE ON PLAN PLANNAME TO APPSERVERID
- PLANNAME はバインドした計画の名前です。
- APPSERVERID は WebSphere Application Server を実行する際に使用する ID で、 例えば CBSYMSR1 などです。
- 新規計画に使用するデータ・ソースを構成します。
- WebSphere Application Server for z/OS の管理コンソールから、 データ・ソースへナビゲートし、「カスタム・プロパティー」を選択します。
- カスタム・プロパティー「planName」を選択します。
- 計画をバインドした時に付けた名前を用いて、planName の値を更新します。
- 「enableSQLJ」を true に設定します。
- サーバーを停止して再始動します。
- アプリケーションを実行します。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_sqljdb2zos
ファイル名:tdat_sqljdb2zos.html