ストアード・プロシージャー・リンケージのための 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 デバッガーを使用している場合は、「デバッグ」設定で新規ストアード・プロシージャー名を指定する (「ウィンドウ」 > 「設定」 > 「EGL」 > 「デバッグ」 > 「IMS DLI のデバッグ」)。
ストアード・プロシージャー EZESP1GR.sql は、以下のようにして、全ユーザー に EZESP1CR.sql へのアクセス権を付与します。
GRANT EXECUTE ON PROCEDURE <schema>.EZESP1 TO PUBLIC

ストアード・プロシージャー作成時に指定したスキーマに一致するように <schema> を変更してください。さらに、ストアード・プロシージャー作成時に SQL 名を変更した場合は、それもここで変更する必要があります。


フィードバック