バージョン 8.1.3
 —  トリガとストアドプロシージャ  —

インストールと設定

このドキュメントでは、Adabas トリガとストアドプロシージャ機能のインストール方法について説明します。 NATPARM の設定、プリンタとワークファイルの割り当て、Natural Security 環境の構成、ストアドプロシージャのリンクルーチンの設定について説明します。

このドキュメントでは、次のトピックについて説明します。


ソフトウェア要件

Adabas に付属の Adabas トリガとストアドプロシージャ機能は、次のオペレーティングシステム用の Natural 3.1 以上で使用できます。

この機能では、Adabas Online System(AOS)が必要です。

Natural Optimizer Compiler は必須ではありませんが、トリガとストアドプロシージャの使用時に Natural Optimizer Compiler を使用すると、大幅にパフォーマンスが向上することがあります。

Top of page

概要

Adabas トリガとストアドプロシージャ機能のインストールは、3 つに分かれています。

Top of page

トリガメンテナンスのインストール

1. AOS のインストール

Adabas Online System(AOS)アドオン製品をインストールします。 Adabas Online System のドキュメントに記載されている手順を使用します。

2. トリガファイルのロード

ADALOD ユーティリティを使用して、トリガファイルを Adabas データベースにロードします。

トリガファイルのロードを指定するには、ADALOD パラメータでキーワード TRIGGER を指定します。 チェックポイントまたはセキュリティファイルをロードするときは、CHECKPOINT または SECURITY パラメータを指定して同じ方法で行います。

ADACMP のステップは省略します。FDT 定義はすでにニュークリアスによって認識されるため、この手順は不要です。

この時点でトリガファイルは、Adabas Security を持つことが許可されていません。つまり、Adabas パスワードと暗号化またはセキュリティバイバリューは設定されていません。

3. NATPARM と再リンクの修正

オンライン Natural ニュークリアスでトリガとストアドプロシージャを使用するように NATPARM を更新し、NATPARM を Natural ニュークリアスに再リンクします。 次のいずれかを使用します。

トリガファイルの論理ファイル番号は 154 です。

注意:
NTFILE マクロまたは LFILE パラメータを使用しない場合は、Adabas トリガとストアドプロシージャ機能を開始するたびに、データベース ID とファイル番号を入力する必要があります。

4. 機能の開始とプロファイルの作成

Natural セッションから Adabas トリガとストアドプロシージャ機能を開始し、プロファイルを作成します。

  1. Adabas Online System にログオンし、オプション[Trigger Maintenance]を選択します。 Enter キーを押します。

  2. メインメニューから、[A](Administrator Functions)を選択し、Enter キーを押します。 必要に応じて、データベース ID とファイル番号を入力し、Enter キーを 2 回押します。

    注意:
    データベース ID とファイル番号は、前述の手順 3 で NTFILE マクロまたは LFILE パラメータを使用していない場合、または定義で指定した値が正しくない場合に限り、必要になります。

  3. [Administrator Functions]メニューから、[M](Modify Profile Information)を選択し、Enter キーを押します。

    [Modify Profile Information]画面には、上書き可能なデフォルト値が表示されます。 ただし、Adabas トリガとストアドプロシージャ機能を実行する前に、プロファイルを正しくインストールしておく必要があります。 詳細については、「プロファイル情報の表示/修正」を参照してください。

    注意:
    トリガメンテナンスは、必要なファイル - フィールドテーブルとトリガ定義が追加されるまで、完全には機能しません。 詳細については、「トリガメンテナンス」を参照してください。

Top of page

Adabas トリガドライバのインストール

モジュール ADATSP と STPEND は、Adabas ロードライブラリ内にあります。 TRGMPMJ は、Adabas ニュークリアスを開始するために使用する JCL/JCS です。

1. ADARUN SPT パラメータの設定

ADARUN SPT=YES と設定してニュークリアスで Adabas トリガとストアドプロシージャ機能をアクティブ化するか、SPT=NO と設定して非アクティブ化します。

注意:

  1. SPT=YES の場合、PROG=ADANUC と MODE=MULTI を設定する必要があります。 SPT は、グローバルパラメータであり、クラスタ内のすべてのニュークリアスで同じ設定にする必要があります。
  2. OPENRQ=YES は指定しないでください。 Natural サブシステムで、レスポンスコード 148 を受け取り、初期化できないという問題が発生します。

2. Natural サブシステムの設定

各サブシステムにラベルとジョブ制御割り当てを指定します。

これらは、最大サブシステム数の値、Adabas トリガプロファイルでの CMPRINT 割り当て数、およびプロシージャで使用される出力およびワークファイルに依存します。

3. すべての Natural ワークファイルおよび出力ファイルの設定

指定されたすべての Natural ワークファイルおよび出力ファイルに追加のラベルを指定します。

BS2000 における例外

BS2000 ジョブでは、ラベルを指定する必要はありません。 出力は次のファイルにあります。

L.L.db_task_nr.natural_load_name.timestamp

上記の意味は次に示すとおりです。

db_task_nr トリガおよびストアドプロシージャ機能を実行しているデータベースのタスク番号
natural_load_name バッチ Natural モジュールの名前
timestamp サブタスクが開始された時間を示す文字

手順 2 と 3 の例

次の例で、前述の手順 2 と 3 を説明します。 この例では、次のように設定されています。

z/OS JCL の場合は、次のラベルを指定する必要があります。

//TSPRT01  DD  SYSOUT=X
//TSPRT02  DD  SYSOUT=X
//TSPRT03  DD  SYSOUT=X
//TSPRT04  DD  SYSOUT=X
//TSPRT05  DD  SYSOUT=X

VSE JCS の場合は、次のラベルを指定する必要があります。

// ASSGN SYS041,DISK,VOL=PACK01,SHR
// DLBL TSPRT01,'PRINT.OUTPUT1',0,SD
// EXTENT SYS041,PACK01,1.0,SSSS,LLL
// ASSGN SYS042,DISK,VOL=PACK01,SHR
// DLBL TSPRT02,'PRINT.OUTPUT2',0,SD
// EXTENT SYS042,PACK01,1.0,SSSS,LLL
// ASSGN SYS043,DISK,VOL=PACK01,SHR
// DLBL TSPRT03,'PRINT.OUTPUT3',0,SD
// EXTENT SYS043,PACK01,1.0,SSSS,LLL
// ASSGN SYS044,DISK,VOL=PACK01,SHR
// DLBL TSPRT04,'PRINT.OUTPUT4',0,SD
// EXTENT SYS044,PACK01,1.0,SSSS,LLL
// ASSGN SYS045,DISK,VOL=PACK01,SHR
// DLBL TSPRT05,'PRINT.OUTPUT5',0,SD
// EXTENT SYS045,PACK01,1.0,SSSS,LLL

z/VM EXEC の場合は、次のラベルを指定する必要があります。

"FILEDEF TSPRT01 DISK TSPRT01 LISTING A"
"FILEDEF TSPRT02 DISK TSPRT02 LISTING A"
"FILEDEF TSPRT03 DISK TSPRT03 LISTING A"
"FILEDEF TSPRT04 DISK TSPRT04 LISTING A"
"FILEDEF TSPRT05 DISK TSPRT05 LISTING A"

プロファイルで定義されている 5 つのサブシステムのそれぞれで、出力ファイルに対して WRITE、PRINT、または DISPLAY を実行できる場合は、MPM JCL で次の定義を指定する必要があります。

z/OS の場合を以下に示します。

//CMPRT01  DD  SYSOUT=X
//CMPRT02  DD  SYSOUT=X
//CMPRT03  DD  SYSOUT=X
//CMPRT04  DD  SYSOUT=X
//CMPRT05  DD  SYSOUT=X

VSE の場合を以下に示します。

// ASSGN SYS051,DISK,VOL=PACK01,SHR
// DLBL CMPRT01,'PRINT.CMPRT01',0,SD
// EXTENT SYS051,PACK01,1.0,SSSS,LLL
// ASSGN SYS052,DISK,VOL=PACK01,SHR
// DLBL CMPRT02,'PRINT.CMPRT02',0,SD
// EXTENT SYS052,PACK01,1.0,SSSS,LLL
// ASSGN SYS053,DISK,VOL=PACK01,SHR
// DLBL CMPRT03,'PRINT.CMPRT03',0,SD
// EXTENT SYS053,PACK01,1.0,SSSS,LLL
// ASSGN SYS054,DISK,VOL=PACK01,SHR
// DLBL CMPRT04,'PRINT.CMPRT04',0,SD
// EXTENT SYS054,PACK01,1.0,SSSS,LLL
// ASSGN SYS055,DISK,VOL=PACK01,SHR
// DLBL CMPRT05,'PRINT.CMPRT05',0,SD
// EXTENT SYS055,PACK01,1.0,SSSS,LLL

z/VM の場合を以下に示します。

"FILEDEF CMPRT01 DISK CMPRT01 LISTING A"
"FILEDEF CMPRT02 DISK CMPRT02 LISTING A"
"FILEDEF CMPRT03 DISK CMPRT03 LISTING A"
"FILEDEF CMPRT04 DISK CMPRT04 LISTING A"
"FILEDEF CMPRT05 DISK CMPRT05 LISTING A"

CMPRTnn ラベルと論理プリンタの割り当てについては、「プリンタの考慮事項」を参照してください。

プロファイルで定義されている 5 つのサブシステムのそれぞれで、ワークファイルに対して WRITE WORK または READ WORK を実行できる場合は、MPM JCL で次の定義を指定する必要があります。

z/OS の場合を以下に示します。

//CMWKF01 DD DISP=SHR,DSN=WORK.CMWKF01
//CMWKF02 DD DISP=SHR,DSN=WORK.CMWKF02
//CMWKF03 DD DISP=SHR,DSN=WORK.CMWKF03
//CMWKF04 DD DISP=SHR,DSN=WORK.CMWKF04
//CMWKF05 DD DISP=SHR,DSN=WORK.CMWKF05

VSE の場合を以下に示します。

// ASSGN SYS061,DISK,VOL=PACK01,SHR
// DLBL CMWKF01,'WORK.CMWKF01',0,SD
// EXTENT SYS061,PACK01,1.0,SSSS,LLL
// ASSGN SYS062,DISK,VOL=PACK01,SHR
// DLBL CMWKF02,'WORK.CMWKF02',0,SD
// EXTENT SYS062,PACK01,1.0,SSSS,LLL
// ASSGN SYS063,DISK,VOL=PACK01,SHR
// DLBL CMWKF03,'WORK.CMWKF03',0,SD
// EXTENT SYS063,PACK01,1.0,SSSS,LLL
// ASSGN SYS064,DISK,VOL=PACK01,SHR
// DLBL CMWKF04,'WORK.CMWKF04',0,SD
// EXTENT SYS064,PACK01,1.0,SSSS,LLL
// ASSGN SYS065,DISK,VOL=PACK01,SHR
// DLBL CMWKF05,'WORK.CMWKF05',0,SD
// EXTENT SYS065,PACK01,1.0,SSSS,LLL

z/VM の場合を以下に示します。

"FILEDEF CMWKF01 DISK CMWKF01 LISTING A"
"FILEDEF CMWKF02 DISK CMWKF02 LISTING A"
"FILEDEF CMWKF03 DISK CMWKF03 LISTING A"
"FILEDEF CMWKF04 DISK CMWKF04 LISTING A"
"FILEDEF CMWKF05 DISK CMWKF05 LISTING A"

注意:

  1. プロシージャでワークファイルのサポートまたはプリンタファイルの追加定義が必要ない場合、ファイル名割り当ては必要ありません。
  2. MPM JCL/JCS には、特定の Natural サブプログラムまたはプログラムを実行するためにバッチ Natural JCL/JCS で通常使用されるその他の割り当ては含めないでください。

z/VM サポートに必要な変更

z/VM マルチタスキングは、Adabas トリガとストアドプロシージャ機能をサポートするときに使用されます。 そのため、サンプルの RMTNUC EXEC に変更を加える必要があります。

次のサンプルを参考に、RMTNUC EXEC を修正してください。

/*              Sample RMTNUC Exec                                    */
/*                                                                    */
Address COMMAND
 user.set = word('HT RT',cmsflag(cmstype)+1)
"SET CMSTYPE HT"

trce = 'OFF'
htype = 'HT'
interpret trace trce
/*  The following variable may have the following values:             */
/*       'DISK' to spool a dump to the virtual printer & read to disk */
/*       'PRT'  to spool a dump to the virtual printer                */
/*       'NO'   to suppress a dump                                    */
dump = 'NO'
/*                                                                    */
dbid = '00052'
restart = 'NO'
if 'ARG'() = 1 then parse upper arg dbid restart .
dbid = 'STRIP'(dbid)
if dbid = '' then dbid = '00052'
             else dbid = 'RIGHT'(dbid,5,'0')
signal on error
interpret call adf || dbid 'ADANUC MULTI' trce htype
pull . device
if result = 99 then signal error
/*                                                                    */
errtype ='CMS'
'COPY RUNNUC CONTROL A RDV' || dbid 'CONTROL A ADANUC DDCARD A (REPLACE)'
'COPY RUNMULTI CONTROL A ADANUC DDCARD A (APPEND)'
'COPY RDB' || dbid 'CONTROL A ADANUC DDCARD A (APPEND)'
'COPY STP' || dbid 'CONTROL A ADANUC DDCARD A (APPEND)'
If restart = 'RESTART' then
  'COPY RUNDIB CONTROL A ADANUC DDCARD A (APPEND)'
/*                                                                    */


errtype ='DATADEF'
/*
'DATADEF DDPRINT,DSN=NUC' || dbid'.DDPRINT,MODE=A'
'DATADEF DDDRUCK,DSN=NUC' || dbid'.DDDRUCK,MODE=A'
*/
'DATADEF DDPRINT,DSN=.TEMP,UNIT=SFS,FNAME=NUC' || dbid',FTYPE=DDPRINT'
'DATADEF DDPRINT,DSN=.TEMP,UNIT=SFS,FNAME=NUC' || dbid',FTYPE=DDDRUCK'
'DATADEF DDCARD,DSN=ADANUC.DDCARD,MODE=A'
select ;
   when dump = 'DISK' then 'DATADEF DUMP,DSN=ADANUC.DUMP,MODE=A'
   when dump = 'PRT'  then 'DATADEF DUMP,UNIT=PRT'
   when dump = 'NO'   then 'DATADEF DUMP,DUMMY'
   otherwise do
      say '..         Invalid dump request'
      signal error
   end
end
signal off error
  /*-----------------------------------------------------------------*/
  /*  Add the filedef's for Adabas triggers and stored procedures    */
  /*-----------------------------------------------------------------*/

  "FILEDEF *      CLEAR"     /*  Let's start clean                   */

/* Filedefs for Adabas triggers & stored procedures facility         */

  "FILEDEF TSPRT01 DISK TSPRT01 LISTING  A"
  "FILEDEF TSPRT02 DISK TSPRT02 LISTING  A"
  "FILEDEF TSPRT03 DISK TSPRT03 LISTING  A"
  "FILEDEF TSPRT04 DISK TSPRT04 LISTING  A"
  "FILEDEF TSPRT05 DISK TSPRT05 LISTING  A"

  "FILEDEF CMPRT01  DISK CMPRT01  LISTING  A"
  "FILEDEF CMPRT02  DISK CMPRT02  LISTING  A"
  "FILEDEF CMPRT03  DISK CMPRT03  LISTING  A"
  "FILEDEF CMPRT04  DISK CMPRT04  LISTING  A"
  "FILEDEF CMPRT05  DISK CMPRT05  LISTING  A"

  "FILEDEF CMWKF01  DUMMY"
  "FILEDEF CMWKF02  DUMMY"
  "FILEDEF CMWKF03  DUMMY"
  "FILEDEF CMWKF04  DUMMY"
  "FILEDEF CMWKF05  DUMMY"

/* End of Filedefs for Adabas triggers & stored procedures facility  */


/*---------------------------------------------------------------------*/
/*  Now set the language file to SSFume                                */
/*---------------------------------------------------------------------*/

"SET LANGUAGE ( ADD SSF USER"

"LOADMOD  SSFRUN"
"PROGMAP  SSFRUN"
  'SSFRUN'                    /* This will run ADARUN                */

   rcode = rc
  "EXECOS"

  'FINIS * * *'

  Exit rcode
error:
'SET CMSTYPE' origtype
return 99

4. ローカルライブラリの指定

MPM JCL STEPLIB / JCS LIBDEF で適切なローカルライブラリを指定します。 次の項目を含めるようにします。

Top of page

Natural トリガドライバのインストール

Adabas トリガとストアドプロシージャ機能は、Natural サブシステムを使用してユーザー作成のプロシージャを実行します。 これらのサブシステムは、サブタスクとして実行されます。最大で同時に 10 のサブシステムをアクティブにできます。 Natural サブシステムは、基本的にバッチ Natural ニュークリアスです。

サブタスクは、z/OS の場合は Adabas アドレススペースで、VSE の場合は Adabas パーティションで、z/VM の場合は Adabas リージョンで実行されます。 BS2000 の場合、サブタスクは Adabas と同じアドレススペースで実行されませんが、グループの共通メモリと P1 イベント処理を使用して Adabas ニュークリアスと通信する派生ジョブです。

Adabas 実行中のリソースの使用状況を最適化するために、Natural サブシステムで使用されるリソースを最小化するように Natural トリガドライバ(Natural ニュークリアスコンポーネント)を構成することが重要です。

Adabas サンプルジョブ

Adabas のインストールの一部として、テープからデータセット ADAvrs.JOBS がロードされています。 その結果、次のサンプルがインストールされています。

名前 説明
ASMNTOS NATOS アセンブリ(z/OS のみ)
ASMNTVSE NATVSE アセンブリ(VSE のみ)
ASMNTBS2 NAMBS2 アセンブリ(BS2000 のみ)
ASMPARM NATPARM アセンブリ
LNKBATCH Natural ニュークリアスリンク
LNKNATNS 分割ニュークリアス用の非共有 Natural ニュークリアスリンク(BS2000 以外)
LNKNATSH 分割ニュークリアス用の共有 Natural ニュークリアスリンク(BS2000 以外)
TRGMPMJ 起動 MPM JCL(BS2000 以外)
TRGPARM Adabas トリガとストアドプロシージャ機能に必要な変更が加えられた NATPARM(BS2000 以外)
TSPBLDM TSP Natural バージョン 4.2.3 モジュールをビルド
TSP$LOAD TSPBLDM EXEC による呼び出し

注意:
サンプルを修正した場合は、別のライブラリに格納するようにしてください。そうしないと、今後のバージョンをインストールしたときに上書きされてしまいます。

バッチ Natural ドライバ NATOS/NATVSE/NAMBS2

Natural のインストールの一部として、データセット NATvrs.SRCE がロードされています。 ソースライブラリのメンバ NATOS/NATVSE/NAMBS2 には、バッチ Natural ドライバが含まれています。このバッチ Natural ドライバは、Adabas トリガとストアドプロシージャ機能でバッチ Natural ニュークリアスを作成するときに使用する必要があります。

バッチ Natural ニュークリアスの準備

Natural を環境非依存のニュークリアスと環境依存のニュークリアスの 2 つに分割することをお勧めします。 詳細は、Natural のインストールに関するドキュメントを参照してください。

z/OS 環境

Adabas トリガとストアドプロシージャ機能で使用される Natural ニュークリアスは、NATPARM モジュールと STPDRV および STPRBE のエントリポイントが含まれる必要があります。

STPNAT モジュールとリンクしている必要があります。 リンクでは、オプション RENT または REUSE を使用しないでください。使用すると、予測できない結果が生じます。 また、ストアドプロシージャとトリガ(ADARUN SPT=YES)で使用される ADALNK ルーチンが、NOREUSE および NORENT でリンクされるようにします。そうでないと、予測できない結果が生じます。

リンクモジュールは、MPM JCL STEPLIB に連結されているライブラリに配置する必要があります。

VSE 環境

Adabas トリガとストアドプロシージャ機能で使用される Natural ニュークリアスには、サンプルジョブ ASMPARM を使用して作成された専用の NATPARM モジュールが含まれる必要があります。

また、モジュール STPNAT を Natural リンクに追加してください。 詳細については、サンプルジョブ LNKBATCH を参照してください。

リンクモジュールは、MPM JCS LIBDEF に連結されているライブラリに配置する必要があります。

z/VM 環境

Adabas トリガとストアドプロシージャ機能で使用される Natural ニュークリアスは、サンプルジョブ TSPBLDM を使用して作成された専用の NATPARM モジュールが含まれる必要があります。 TSPBLDM EXEC などを使用して、Adabas トリガとストアドプロシージャ機能で使用する Natural ニュークリアスを作成します。 TSPBLDM EXEC では TSP$LOAD を呼び出すことに注意してください。TSP をサポートするための追加 INCLUDE が含まれています。

BS2000 環境

NAMBS2 マクロパラメータを ADACOM=ADABAS に設定します。

ライブラリの命名規則に従って、ASMPARM および ASMNTBS2 モジュールをカスタマイズします。 ASMPARM を使用して、NATPARM モジュールをアセンブルできます。 ASMNTBS2 モジュールは、Natural ドライバ NAMBS2 をアセンブルします。

次のモジュールを Natural にリンクします。

STPNAT SPAENA

バッチ Natural ドライバがアセンブルされたら、LNKBATCH ジョブを使用してリンクします。

1. バッチ Natural ドライバのアセンブル

z/OS の場合は、ADAvrs.JOBS データセットのサンプルジョブ ASMNTOS を使用して、バッチ Natural ドライバをアセンブルします。

VSE の場合は、JCS のサンプル ASMNTVSE を使用します。 Natural ジョブ NATI055 も参照してください。

BS2000 の場合は、ADAvrs.JOBS ライブラリの ASMNTBS2 を使用します。

2. NATPARM モジュールのアセンブル

詳細は「NATPARM について」を参照してください。

メンバ STPNAT は、Adabas ロードライブラリで提供されており、3 つのエントリポイント STPDRV、STPRBE、および ADABAS があります。

STPNAT

STPNAT は ADAUSER を置換します。 STPNAT には、同じ Adabas エントリポイントがあり、ADAUSER の通常の機能のすべてを実行します。 また、トリガとストアドプロシージャ用に特化したロジックが含まれています。

z/OS、VSE、および z/VM 環境

次のように、NATPARM モジュールの CSTATIC パラメータ指定に STPDRV と STPRBE を組み込みます。

CSTATIC=(STPDRV,STPRBE)

VSE および z/VM 環境では、次のパラメータも指定します。

ADAPRM=ON
  EXTBUF=10
  MT=0

BS2000 環境

次のように、NATPARM モジュールの CSTATIC パラメータ指定に STPNAT と SPAENA を組み込みます。

CSTATIC=(STPNAT,SPAENA)

3. バッチ Natural ドライバのリンク

手順 1 でアセンブルしたバッチ Natural ドライバをリンクするときは、手順 2 でアセンブルした NATPARM と STPNAT を組み込んで、Adabas トリガとストアドプロシージャ機能のバッチ Natural ニュークリアスを作成します。

Natural ニュークリアスのリンクデッキに INCLUDE STPNAT ステートメントが含まれ、通常の INCLUDE ADAUSER ステートメントが含まれていないことを確認します。 AOSASM モジュールは必要ありません。

BS2000 環境

ADAVrs.JOBS ライブラリで提供される LNKBATCH ジョブを関連のあるライブラリ用にカスタマイズし、ジョブを実行します。

4. REGION/SIZE パラメータ設定の確認

Adabas 起動 JCL/JCS の REGION/SIZE パラメータにサイズ制限が設定されていないことを確認します。

オペレーティングシステムの設定時に、8 メガバイトなどのサイズ制限が指定されている可能性があります。

5. Natural ニュークリアスから Adabas ニュークリアスへのアクセスを可能にする

z/OS 環境

手順 3 で作成した Natural モジュールが、Adabas 初期化時に Adabas ニュークリアスにアクセスできるように、次のいずれかの操作を行います。

Adabas ロードライブラリ(データセット ADABAS.Vvr.LOAD)には、モジュール STPEND も格納されています。STPEND は、MPM JCL steplib のいずれかのライブラリ内に格納されている必要があります。

//STEPLIB  DD  DISP=SHR, DSN=ADABAS.Vvr.LOAD
           DD  DISP=SHR, DSN=NATURAL.Vvr.LOAD

VSE 環境

手順 3 で作成した Natural モジュールが、Adabas ニュークリアスの起動ジョブの LIBDEF SEARCH ステートメントで使用される Adabas ライブラリにリンクされるようにします。 Natural ライブラリ(フェーズが格納されている)を Adabas ニュークリアスの起動ジョブの LIBDEF SEARCH ステートメントに追加します。

BS2000 環境

Adabas ニュークリアスが次のステートメントで実行されるようにします。

/START-PROGRAM *M(&ADALIB,ADARUN),-
/  RUN-MODE=ADV(ALT-LIB=YES)

次のようにして、バッチニュークリアスが格納されているライブラリにアクセスします。

/SET-FILE-LINK DDLNKPAR,DDLNKPAR_file
/SET-FILE-LINK BLSLIBnn,batch_natural_library

上記の意味は次に示すとおりです。

nn 00~99。BLSLIB リンクカードで次に使用可能な番号
batch_natural_library バッチ Natural ライブラリ
DDLNKPAR_file 次のステートメントが記載されたファイル

ADARUN DBID=dbid

ADARUN IDTNAME=idtname

dbid は Adabas ニュークリアスのデータベース ID、idtname は Adabas ニュークリアス実行時の ID テーブル名

重要:
DDLNKPAR_file は、一時ファイルにしてはなりません

6. ADALNK リンクオプションの確認

ストアドプロシージャとトリガ(ADARUN SPT=YES)で使用される ADALNK ルーチンが、NOREUSE および NORENT でリンクされるようにします。そうしないと、予測できない結果が生じます。

Top of page

NATPARM について

Natural パラメータモジュールで Natural ニュークリアスに指定された NATPARM 定義を使用して、Natural セッション用に環境を調整します。

Natural ニュークリアスコンポーネントを正常に実行するには、特定の NATPARM パラメータに適切な値を指定する必要があります。 詳細については、Natural のマニュアルを参照してください。

特殊な要件

ADAPRM

VSE および VM/CMS 環境では、ON に設定する必要があります。

バッファプール

要求やローカル環境の構成に応じて、ローカルバッファプールまたはグローバルバッファプールを使用します。

バッファサイズ

Natural トリガドライバは実行時システムのみである(開発システムではない)ため、プログラムの記述内容に応じて、さまざまなバッファを最小サイズに維持する ことができます。 例えば ESIZE をどの Natural プログラムでも使用できる最大 GDA サイズに設定できます。 Adabas トリガとストアドプロシージャ機能で使用される GDA のサイズは、12K です。

CDYNAM

このパラメータは、非 Natural プログラムのダイナミックロードを制御します。 プロシージャは Natural ニュークリアスにリンクされるため、トリガとストアドプロシージャでは無条件で設定します。 デフォルト値は 5 です。

CSTATIC

CSTATIC パラメータは、Natural に静的にリンクされているプログラムを制御します。 デフォルト値はありません。 このパラメータには、Adabas トリガとストアドプロシージャ機能で使用されるルーチンを指定する必要があります。

STPDRV Natural トリガドライバ
STPRBE レコードバッファ抽出ルーチン
SPAENA データベースコマンドキューへのアクセスを可能にします(BS2000 のみ)

 

DU(mp)

デフォルトの DU=OFF では、アベンド時にメモリダンプが生成されません。 この設定により、Natural ESTAE がセッション中アクティブになります。 Natural ESTAE がアクティブな場合、すべてのプログラムアベンドがトラップされ、Natural セッションは終了するのではなく、再スタートします。 これは重要なパフォーマンスの考慮事項です。

DYNPARM

デフォルトの DYNPARM=ON は、Natural の起動時に提供されるダイナミックパラメータを処理します。 各バッチ Natural サブシステムは、少なくとも 1 つのパラメータ(STACK=)を指定して起動されるため、このデフォルト設定を使用する必要があります。 詳細は「NATPARM のダイナミックな上書き」を参照してください。

ETA

ETA は、エラートランザクションプログラムです。 指定しないでください。 Adabas トリガとストアドプロシージャ機能では、独自の要件に従って、Natural セッションのエラートランザクションプログラムが設定されます。

注意:
Adabas トリガとストアドプロシージャ機能は、単独で 1500 バイトを使用します。そのため、ETA プログラムが GDA で 4K を使用する場合の ESIZE は約 6K になります。

ETID

ETID が使用される場合、つまり ETID=' '(空白)を指定しない場合、各タスク(最大で 10 タスク)にユニークな ETID(Adabas ユーザー ID)を割り当てる必要があります。 Natural Security が使用され、かつ NATPARM 値が ETID に指定されていない場合、ライブラリプロファイルの RESTART オプションおよびユーザープロファイルの ETID オプションを "N" に指定することで、エラーメッセージ NAT3048 および NAT3009 を防ぐことができます。

EXTBUF

VSE および z/VM 環境では、EXTBUF パラメータを 10 以上に設定します。 z/OS 環境で EXTBUF は必須ではありません。

リミットパラメータ

バッチ Natural サブシステムは長時間に渡るトランザクションであるため、LE、LT、MADIO、MAXCL、および MT パラメータを制限付きで設定しないでください。 これらのパラメータを制限付きで設定すると、プロシージャの実行時にエラーが発生することがあります。この場合、トリガを起動したコマンドは、レスポンスコード 155 または 156 を受け取ります。

注意:
Adabas トリガプロファイルのタイムアウトパラメータによって、長時間に渡るプロシージャの問題は自動的に解決します。 または、DBA がプロシージャの実行でビジーなサブシステムをキャンセルすることもできます。

NTLFILE

NTLFILE パラメータは、Adabas トリガファイルを指すようにコーディングする必要があります。 トリガファイルの論理ファイル番号は 154 です。 または、Natural NTLFILE パラメータを使用してダイナミックに上書きするように NTFILE パラメータを指定します。

PROFILE

PROFILE パラメータは指定しないでください。 このパラメータにより、すべての Natural コントロールブロックが初期化される前に、Adabas コールが発行されます。 それにより、ストアドプロシージャとトリガの初期化時に予期できない結果が生じます。

PROGRAM

PROGRAM パラメータは指定しないでください。 このパラメータはバッチ Natural サブシステムの起動時に使用され、STPEND に設定されます。 このモジュールは Adabas トリガとストアドプロシージャのロードライブラリ内にあり、必要に応じてロードできるように MPM JCL steplib に追加する必要があります。

STACK

STACK パラメータは指定しないでください。 このパラメータはバッチ Natural サブシステムの起動時に使用され、Adabas トリガとストアドプロシージャ機能によって指定されます。

NATPARM のダイナミックな上書き

Natural ニュークリアスで指定される NATPARM 値は、Adabas トリガプロファイルを使用して、または Natural Security がインストールされている場合は Natural Security を使用して、ダイナミックに定義できます。

NATPARM パラメータの値は、Adabas トリガプロファイルから取得され、Natural サブシステムの初期化時に使用されます。 プロファイルで指定される NATPARM 値は、Natural ニュークリアスで指定される値を上書きします。

NATPARM の定義を修正する前に、「特殊な要件」を参照してください。 各 Natural サブシステムはさまざまなアプリケーションやファイルに関するトリガ要求を受け入れることができるため、Natural 環境を適切に設定することが重要です。

STACK パラメータを渡す必要があります。Natural サブシステムは、Natural トリガドライバの初期化後に Natural トリガドライバに制御を渡します。 STACK パラメータの値は次のように固定され、ユーザーからは変更できません。

STACK=(LOGON:SYSSPT;STP)

ここでは次の内容を表しています。

SYSSPT インストール手順で、ストアドプロシージャアプリケーションに対して INPL が実行されたライブラリ。 これは、実行可能なプロシージャを格納するライブラリでもあります。
STP Natural トリガドライバの起動ルーチンです。

その他のすべての NATPARM 値は、必要に応じてユーザーが設定する必要があります。

Natural セッションは、Adabas ニュークリアスがアクティブな限り、通常は実行し続けます。 したがって、各 Natural サブシステムは長時間に渡るタスクです。Natural セッションのリミットパラメータを適宜設定する必要があります。 Natural サブシステムの実行中は、セッション設定を修正できません。 ただし、特定のセッションパラメータは、通常の Natural プログラミングオプションと同様の方法でプロシージャを使用して修正できます。

Top of page

プリンタの考慮事項

バッチ Natural サブシステムでは、プリンタは常に CMPRINT ラベルとサブシステムの番号によって指定されます。 単一のアドレススペースで実行している場合は、競合を防ぐために CMPRINT に別の割り当てを設定する必要があります。複数の Natural サブシステムが実行中であり、それらのいずれか、またはすべてで、出力が実行される可能性があるためです。

さまざまなサブシステムで割り当てられたプリンタのオープンとクローズが行われている場合でも、これらが競合しないという保証はありません。 競合が発生すると、オペレーティングシステムでエラーが発生します。

例えば WRITE (nn)、PRINT (nn)、または DISPLAY (nn) オプションを使用する場合、"nn" はすべてのサブシステムに永続的に割り当てられた固有の番号です(CMPRINT の場合と異なる)。

サブシステム 01 で実行中のプロシージャが WRITE (01) を実行し、サブシステム 02 で実行中の別のプロシージャが WRITE (01) を実行すると、オペレーティングシステムでエラーが発生し、最終的には Natural からエラーを受け取ります。このような状況を防ぐ必要があります。

ダイナミックな CMPRINT 割り当て

Natural サブシステムが起動すると、Adabas トリガドライバは、Adabas トリガプロファイルの "CMPRINT 割り当て" 定義に基づいてダイナミックなプリンタ割り当てを決定します。

トリガプロファイルの CMPRINT 割り当ては 1~6 バイトのフィールドで、MPM JCL のファイル割り当てと一致する必要があります。 このプリンタ割り当ては、サブシステムの起動時にサブシステムタスク番号の接頭辞として使用されます。

例えば、プリンタ TSPRT を指定する場合、サブシステム 01 と 02 では、MPM 起動 JCL/JCS でラベル TSPRT01 と TSPRT02 が定義されることが想定されます。

Adabas トリガとストアドプロシージャ機能は、バックグラウンドで実行されるサブタスクまたはサブシステムです。 複数の Natural サブシステムがあり、プロシージャを特定のサブシステムから実行されるようにすることは不可能です。情報の出力で WRITE、PRINT、または DISPLAY ステートメントが使用されるときに、CMPRINT がダイナミックに割り当てられるためです。

プロシージャに渡される PDA には、ユニークなサブシステム ID が含まれるため、DECIDE ステートメントを使用して CMPRT01~CMPRT31 に出力できるようになります。

DECIDE ON FIRST VALUE OF RQ-TASK    /*check subsystem number
  VALUE  '01' WRITE  (1)  NOTITLE NOHDR  text
  VALUE  '02' WRITE  (2)  NOTITLE NOHDR  text
  VALUE  '03' WRITE  (3)  NOTITLE NOHDR  text
  VALUE  '04' WRITE  (4)  NOTITLE NOHDR  text
  VALUE  '05' WRITE  (5)  NOTITLE NOHDR  text
  NONE        WRITE       NOTITLE NOHDR  text
  END-DECIDE

最後の例(NONE)では、CMPRINT ラベルのダイナミック割り当てで指定されたプリンタに出力されます。

サブシステム 01 で実行中のプロシージャが出力を実行する場合は、CMPRINT のダイナミック割り当てに出力することも、DECIDE ステートメントで示すように、MPM JCL/JCS で指定されるプリンタ 01(CMPRT01)に出力することもできます。

複数のプリンタが必要な場合は、出力ファイルの範囲を定義できます。 例えば Natural サブシステムが 5 つ定義されている場合、出力ファイルの範囲は CMPRT01~CMPRT05、または CMPRT06~CMPRT10 のように定義できます。

BS2000 のみ

宣言しない場合、CMPRINT は SYSLST に書き込みます。 サブタスキングにより、次の構造で自動的にファイルを割り当てられます。

L.L.<db_task_number>.<natural_load_name>.<timestamp>

ここでは次の内容を表しています。

<db_task_number> トリガおよびストアドプロシージャ機能を実行しているデータベースのタスク番号
<natural_load_name> バッチ Natural モジュールの名前
<timestamp> サブタスクが開始された時間を示す文字

Top of page

ワークファイルの考慮事項

ワークファイルのラベルの形式は、次のとおりです。

CMWKFnn

"nn" は、ワークファイル番号です。

ワークファイルの使用方法は、若干の考慮が必要になる可能性があります。しかし、ワークファイルに対する読み書きがない場合は、ワークファイルを JCL/JCS に配置する必要はありません。

ワークファイルが必要な場合、競合が発生しないようにする方法を確立する必要があります。 プリンタの考慮と同様のことがワークファイルにも適用されます。

例えば、プロシージャの読み書き操作は、タスク番号、つまりプロシージャが実行される Natural サブシステムの番号に応じて、特定のワークファイルがターゲットとなる可能性があります。 この場合、タスク 01 は CMWKF01 を読み書きし、タスク 02 は CMWKF02 を読み書きします。

プロシージャが実行されているサブシステムを特定できるため、そのサブシステムに永続的に割り当てられているワークファイルを使用できます。

プリンタの考慮事項」で説明するように、DECIDE ステートメントを使用して、このような割り当てを行えます。 プロシージャの使用方法によっては、別の解決方法を使用することもできます。

Top of page

Natural Security の考慮事項

このセクションでは、ストアドプロシージャ使用時の Natural サブシステムの実行に関するセキュリティについて説明します。 Natural Security 環境で Adabas トリガとストアドプロシージャを使用するときの情報です。

ログオン

Natural にログオンするときは、AUTO=ON と AUTO=OFF のどちらも使用できます。

ライブラリ設定

ライブラリ SYSTRG を定義します。 起動パラメータを、SYSAOS からログオンするときは " "(空白)に設定し、ログオン画面から直接ログオンするときは "menu" に設定します。

ライブラリ SYSSPT を定義します。 Natural サブシステムは、このライブラリにログオンします。

どちらのライブラリにも起動、エラー、または再スタート設定を含めないでください。 これらの設定は、Adabas トリガとストアドプロシージャ機能の初期化時に自動的に確立されます。

ライブラリは保護できます。ただし、Adabas トリガプロファイルを使用して定義されたユーザーには、ログオンして必要な処理すべてを実行するのに十分な権限が必要です。 例えば、あるモジュールでサブシステムのユーザー ID を許可しないと、Natural トリガドライバがそのルーチンを呼び出したときにエラーが発生してしまうため、よい方法とは言えません。

セキュリティの制限

Natural Security では、次のような特定の NATPARM 設定を上書きできます。

Natural サブシステムは、複数の "サブトランザクション" を実行する長いトランザクションの 1 つです。 セキュリティの制限がこれらの 1 つ以上に設定されている場合、制限はそのセッションのすべてのプログラムに適用されます。

パラメータの設定

Adabas トリガとストアドプロシージャサブタスクに影響のある Natural Security パラメータの設定について次に説明します。

Error Program

Error Program は指定しないでください。 エラーは、Adabas トリガとストアドプロシージャ機能によって内部的に処理されます。

ETID

トランザクションデータを格納するプロシージャが、異なるサブシステムから続いて呼び出されることがあります。 正しく動作するには、ルーチン GET TRANSACTION DATA がプロシージャの呼び出し元サブシステムを認識している必要があります。 これが問題となる場合、ユーザーは別の形式でデータ回復する方法を構築します。 レスポンスコード 9 または 48 を防ぐため、ETID オプションは慎重に使用してください。

Library Protection

Library Protection は必須ではありませんが、Adabas Online System ユーザーは SYSTRG にログオンできる必要があり、Natural トリガドライバは SYSSPT にログオンできる必要があります。

MADIO

Natural サブシステムの実行時間が長時間にわたる場合があるため、制限を超えないように 0(ゼロ)を設定します。

MAXCL

Natural サブシステムの実行時間が長時間にわたる場合があるため、制限を超えないように 0(ゼロ)を設定します。

Non-Activity Logoff Limit

Natural サブシステムの実行時間が長時間にわたる場合があるため、制限を超えないように 0(ゼロ)を設定します。

Password Change Option

Natural Security ユーザープロファイルには、n 日ごとにユーザーにパスワードの変更を要求するときに使用できるオプションがあります。 このオプションを使用する場合、Adabas トリガプロファイルの NATSEC パスワード も修正する必要があります。

Restart Program

指定しないでください。 再スタートは、Adabas トリガとストアドプロシージャ機能によって内部的に処理されます。

Steplibs

制限はありません。 Adabas トリガとストアドプロシージャ機能は、SYSSPT にログオンします。 そのため、すべてのプロシージャは必要に応じて steplibs 内にある必要があります。

Startup Transaction

指定しないでください。 Startup は、ログオン時に Adabas Online System または Natural トリガドライバによって自動に設定されます。

Top of page