ストアード・プロシージャー・リンケージのための DB2 の構成
ここでは、z/OS® 上のコードに対するリモート・アクセスにストアード・プロシージャー・リンケージがかかわっている場合の DB2® の構成について詳しく取り上げます。calllink 要素の remoteComType 属性の値を STOREDPROCEDURE にすると、このリンケージが有効になります。
ワークロード・マネージャー
IMS™ デバッグ専用の WLM を作成する必要があります。Rational® COBOL Runtime for zSeries は、これを行うためのサンプル JCL を ELA.V6R0M1.SELASAMP(ELADBWLM) で提供しています。JCL を編集し、ご使用のシステム構成に一致するように STEPLIB を変更してください。アクセスする必要がある呼び出し先プログラムが含まれている PDS が STEPLIB に入っていることを確認してください。DLI デバッグのための構成を行うときには、EGL バージョンの AIBTDLI ロード・モジュールと CBLTDLI ロード・モジュールを作成して組み込んだ PDS が STEPLIB に入っていることも確認してください。次のリストに、サンプル JCL を示します。
//ELADBWLM PROC RGN=0K,APPLENV=ELADBWLM,DB2SSN=#db2ssn,NUMTCB=8
//*
//SYMBOLS INCLUDE MEMBER=$INCLUDE
//*
//IEFPROC EXEC PGM=DSNX9WLM,REGION=&RGN;,TIME=NOLIMIT,DYNAMNBR=10,
// PARM='&DB2SSN;,&NUMTCB;,&APPLENV;'
//STEPLIB DD DISP=SHR,DSN=#db2.SDSNEXIT
// DD DISP=SHR,DSN=#db2.SDSNLOAD
// DD DISP=SHR,DSN=#cee.SCEERUN
// DD DISP=SHR,DSN=ELA.V6R0M1.SELALMD
// DD DISP=SHR,DSN=#cobol.SIGYCOMP
// DD DISP=SHR,DSN=&HLQTCP..SEZATCP;
//ELAPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//SYSMDUMP DD SYSOUT=*
//SYSABEND DD DUMMY
//********************************************************************
//* WORKFILES FOR COMPILERS AND BINDER
//********************************************************************
//SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1))
DB2 ストアード・プロシージャー定義
EGL デバッグでは、SQL ストアード・プロシージャーでホストのデータベースにアクセスする必要があります。
このストアード・プロシージャーに対するアクセス権をすべてのユーザーに付与する必要もあります。Rational COBOL
Runtime for zSeries は、ELA.V6R0M1.SELASAMP の以下のメンバーで以下のサンプル SQL ステートメントを提供します。
- EZESP1CR
- ストアード・プロシージャーを作成するためのサンプル SQL ステートメントを提供します
- EZESP1GR
- ストアード・プロシージャーに権限を付与するためのサンプル SQL ステートメントを提供します
CREATE PROCEDURE <schema>.EZESP1 ( IN VAR01 INT,
IN VAR02 INT,
INOUT VAR03 VARCHAR(32672) FOR BIT DATA,
INOUT VAR04 BLOB(524288) )
EXTERNAL NAME EZESP1
LANGUAGE COBOL
PARAMETER STYLE GENERAL
NOT DETERMINISTIC
COLLID <collid>
WLM ENVIRONMENT <eladbwlm>
RUN OPTIONS 'ALL31(OFF) STACK(,,BELOW)'
以下のプレースホルダーを、ご使用のシステムに適した値に変更します。
- <schema>
- ストアード・プロシージャーのインストール先であるスキーマ。
- <collid>
- システムのコレクション ID。
- <eladbwlm>
- 前に指定したワークロード・マネージャーの名前。
デフォルトのストアード・プロシージャー名 EZESP1 を CREATE ステートメントで任意の名前に変更することもできます。ただし、EXTERNAL NAME は変更しないでください。さらに、デフォルトのストアード・プロシージャー名を変更する場合は、必ず以下を両方とも実行してください。
- SQL GRANT コマンドでプロシージャー名を変更する。
- EGL デバッガーを使用している場合は、「デバッグ」設定で新規ストアード・プロシージャー名を指定する ()。
ストアード・プロシージャー EZESP1GR.sql は、以下のようにして、全ユーザー
に EZESP1CR.sql へのアクセス権を付与します。
GRANT EXECUTE ON PROCEDURE <schema>.EZESP1 TO PUBLIC
ストアード・プロシージャー作成時に指定したスキーマに一致するように <schema> を変更してください。さらに、ストアード・プロシージャー作成時に SQL 名を変更した場合は、それもここで変更する必要があります。