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

トリガメンテナンス

注意:
トリガメンテナンスサブシステムは、Adabas Online System(AOS)アドオン製品がインストールされている場合のみ利用できます。 AOS デモバージョンでは利用できません。

トリガメンテナンス機能は、次の操作が可能な Natural アプリケーションです。

Start of instruction setトリガメンテナンスを開始する手順

注意:
トリガメンテナンス機能では、データベース ID とファイル番号が必要です。 これらの値が NATPARM LFILE パラメータまたは NTFILE マクロを使用してデフォルトで指定されていない場合は、メインメニューを使用する前に、入力する必要があります。 メインメニューで PF10 を押すと、これらの値を入力することができます。そうでない場合は、入力を要求するメッセージが自動的に表示されます。

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


概要

トリガメンテナンス機能は、データ画面やポップアップウィンドウを表示する一連のメニューとサブメニューで構成されます。 それぞれのメニューには、機能と機能コードのリスト、入力フィールドのグループ、コマンド行、PF キーのセット、およびメッセージエリアがあります。 Adabas Online System(AOS)は、同じ環境にインストールする必要があります。

ワイルドカード表記

ワイルドカード表記は、可能な限り許可されます。 例えば、ほとんどのメニューで、ファイル名を指定する必要があります。 ファイル名がわからない場合は、代わりにワイルドカード文字を入力できます。 値の範囲がポップアップウィンドウに表示され、その範囲から項目またはエントリを選択できます。

"ワイルドカード" という語句は、次のように特殊文字を使用することを意味します。

文字 次の条件に当てはまる名前を選択
* PERS* PERS で始まる名前
> PERS> PERS よりも大きい値が含まれる
< PERS< PERS よりも小さい値が含まれる

入力フィールド

トリガメンテナンス機能の各メニューには、次の入力フィールドが含まれます。

フィールド 入力
コード
機能を表すコードを入力します。 例えば、メインメニューのコードは次のとおりです。
A 管理者機能
F ファイル - フィールドテーブル定義
R プロシージャレポート
T トリガ定義の作成/修正
機能に応じて、サブメニュー、ポップアップ、またはデータ画面が表示されます。
ファイル名 ファイル名を入力するか、ワイルドカードを入力してファイル名と番号の選択リストを表示します(例えば、「a*」と入力すると、名前が a で始まるすべてのファイルのリストを返します)。
ファイル番号 ファイル番号を入力します。 FDT からファイル - フィールドテーブルを生成するときは、実際のファイル番号の代わりに「99999」と入力すると、有効なファイルのリストを取得できます。

その他の入力フィールドは変化します。 例としては、次のようなものがあります。

メッセージ

画面の上部または下部にあるメッセージエリアには、1 行のエラーメッセージまたはアクションメッセージが表示されます。 各メッセージには、メッセージ番号と短い説明が含まれます。 詳細については、『Adabas メッセージおよびコードマニュアル』を参照してください。

コマンド

次の表で、コマンド行に入力できるコマンドについて説明します。 コマンドによっては、すべての画面に適用されない場合があります。

コマンドは大文字と小文字を区別しないため、大文字、小文字、または大文字と小文字を混在させて入力することができます。 処理される前に、コマンドは大文字に変換されます。

コマンドで下線の付いた部分は、使用できる最短の省略形を示します。

コマンド 表示する内容
ACTIVITY または DISPLAY ACTIVITY [Current Trigger Activity]画面。現在実行中のトリガに関する情報が表示されます。
DISPLAY PROFILE [Display Profile Information]画面。トリガメンテナンス機能のプロファイルが表示されます。
DISPLAY TASKS または DISPLAY SYSTEMS [Subsystem Activity]画面。現在実行中の Natural サブシステムに関する情報が表示されます。
MENU メインメニュー。
EXIT、QUIT、または . (ピリオド) 前の画面。
FIELD [File-Field Table Definitions]メニュー。
TRIGGER [Trigger Definitions]メニュー。
ADMIN [Administrator]メニュー。
PROFILE [Profile Information]メニュー。
SET FILE 現在のトリガファイルのデータベースとファイルの割り当て。 別のデータベースとファイルを入力できますが、有効なトリガファイルである必要があります。
SET FDIC 現在の Predict ファイルのデータベースとファイルの割り当て。 別の Predict システムファイルを入力できます。
FORWARD または + 次のページ。
TOP、または -- 上部(先頭)に戻ります。例えば、ファイル - フィールドテーブルリストの最初の部分。
BACK、または - 前のページ。

PF キー

標準の PF キーについて次の表で説明します。

キー ラベル 説明 メニューまたは画面
PF1 ヘルプ 現在の機能に関する情報を表示します。 全画面
PF2 Menu メインメニューに戻ります。 全画面
PF3 出口 前の画面に戻ります。 ほとんどの場合、更新オプションが選択されていなければ、すべての更新が無視されます。 全画面
PF4 Field [File-Field Table Definitions]メニューを表示します。 メイン、[Profile Information]、[Procedure Reporting]、[Trigger Definitions]の各メニュー
PF5 Trigr [Trigger Definitions]メニューを表示します。 メイン、[File-Field Table Definitions]、[Profile Information]、[Procedure Reporting]の各メニュー、[Define Trigger Info]、[Add Function]の各ポップアップ
PF6 Admin [Administrator]メニューを表示します。 メイン、[File-Field Table Definitions]、[Trigger Definitions]の各メニュー
PF7 Procs [Procedure Reporting]メニューを表示します。 メインメニュー
PF10 FTRG [File Assignments for Triggers]ポップアップを表示します。現在使用しているデータベースとファイルとは別のデータベースとファイルを入力できます。 メインメニューと[File-Field Table Definitions]メニュー
PF11 FDIC Predict ファイルの設定の値を変更します(トリガの場合のみ)。 メインメニューと[File-Field Table Definitions]メニュー
PF12 Canc 現在のプロセスをキャンセルし、前の画面に戻ります。 更新オプションが選択されていなければ、すべての更新が無視されます。 全画面

Top of page

ファイル - フィールドテーブル

トリガでは、ファイル - フィールドテーブルへのアクセスが必要です。ファイル - フィールドテーブルは、ロングファイル名からファイル番号へ、およびフィールド名から 2 文字の Adabas フィールド ID へのマッピングを行います。

ファイル - フィールドテーブルには、次のエントリが含まれる必要があります。

ファイル - フィールドテーブルは、Adabas FDT、Natural DDM、または Predict Adabas ファイルから生成できますが、次の制限があります。

ファイル - フィールドテーブルの定義後は、外部フィールドの名前と内部フィールドの名前および番号を関連付けることができ、トリガをファイル - フィールドテーブルの任意のフィールドに対して定義できるようになります。 例えば、EMPLOYEES ファイルと SALARY フィールドを参照する場合、Adabas ではこれらをファイル 1 とフィールド AS として識別できるようになります。

レコードバッファ抽出

レコードバッファ抽出ルーチン(STPRBE)でレコードバッファ内のフィールドの値を抽出する場合、適切な位置と長さで値を抽出する必要があります。 正しい位置を特定するために、STPRBE では不要な各フィールドを通過する必要があり、そのため各フィールドの長さを認識している必要があります。

フィールドの長さがフォーマットバッファで指定されていない場合、定義がトリガファイル内に存在しなければ、エラーが発生します。 プロシージャは処理を続行できずに終了します。

グループフィールドテーブル

フォーマットバッファでグループ名が指定されている場合、STPRBE ではグループフィールドテーブルを使用して、そのグループに属するエレメンタリフィールドを特定します。 グループフィールドテーブル内の各エントリには、エレメンタリフィールドとグループにおけるオフセットに関する情報が含まれます。 オフセットは、最大で 7 グループレベルまで維持されます。 特定のファイルのグループフィールドテーブルで、最大で 50 のエレメンタリフィールドにエントリを設定できます。

グループフィールドテーブルのエントリは、ファイル - フィールドテーブルの生成機能、またはファイル - フィールドテーブルの修正機能から生成できます。

[File-Field Table Definitions]メニュー

ファイル - フィールドテーブルは、トリガメンテナンス機能のファイル - フィールドテーブル定義機能を使用して生成および保守できます。 任意のフィールドの組み合わせをファイル - フィールドテーブルに追加したり順次削除したりすることができます。

Start of instruction setファイル - フィールドテーブル定義機能にアクセスする手順

ファイル - フィールドテーブルの表示

Start of instruction setファイル - フィールドテーブルを表示する手順

グループテーブルの表示

Start of instruction setグループテーブルを表示する手順

グループフィールドテーブルの表示

Start of instruction setグループフィールドテーブルを表示する手順

ファイル - フィールドテーブルの修正

Start of instruction setファイル - フィールドテーブルを修正する手順

フィールドの修正

[Modify File-Field Table]画面では、グループフィールドテーブルのエントリを生成したり、フィールド属性を表示したり、ファイル - フィールドテーブルからフィールドを削除したりすることができます。

Start of instruction setグループフィールドテーブルのエントリを生成する手順

Start of instruction set各フィールドの属性を表示する手順

Start of instruction set1 つ以上のフィールドを削除する手順

グループフィールドテーブルの修正

Start of instruction set グループフィールドテーブルを修正する手順

Start of instruction set1 つ以上のエントリを削除する手順

ファイル - フィールドテーブルの削除

ファイル - フィールドテーブルの全体を削除する場合に限り、[File-Field Table Definitions]メニューの削除機能を使用します。 ファイル - フィールドテーブルを削除すると、そのファイルに関連付けられたグループフィールドテーブルもすべて削除されます。

Start of instruction setファイル - フィールドテーブル全体を削除する手順

ファイル - フィールドテーブルの生成

Start of instruction setファイル - フィールドテーブルを生成する手順

Start of instruction set1 つ以上のフィールドを追加する手順

Start of instruction set1 つ以上のフィールドを削除する手順

Start of instruction setグループフィールドテーブルのエントリを生成する手順

Start of instruction set各フィールドの属性を表示する手順

Top of page

トリガ定義

注意:
TRGMAIN と、ユーザープログラムからトリガを保守する API については、「TRGMAIN: トリガを保守するための API」を参照してください。

概念上、トリガは、2 つの部分から成ります。トリガするイベントと、トリガされるプロシージャです。 トリガするイベントは、一連の選択条件で定義されます。 条件が満たされると、それに応じてトリガされるプロシージャが実行されます。

選択条件(ファイル名、コマンドタイプ、フィールド名)は、トリガ定義の一部として対象のデータベースに格納されます。 ファイル - フィールドテーブルは、これらを対応する物理 Adabas ファイル番号と 2 文字のフィールド ID にマッピングします。 ファイル名とフィールド名は、最大 32 文字のわかりやすい名前にします。

注意:
トリガの結果として実行されるプロシージャからのデータベースコマンドは、開始 Adabas コマンドが実行されたデータベースに限定されません。

ファイル名

ファイル名では、開始 Adabas コマンドが操作するファイルを指定します。 トリガが対象とする Adabas ファイルは、1 つだけです。 トリガを複数のファイルに適用する場合は、ファイル名以外は同一のトリガを複数(ファイルごとに 1 つ)定義します。

コマンドタイプ

コマンドタイプでは、開始 Adabas コマンドのコマンドクラスを指定します。 トリガは、指定されたコマンドタイプに基づいて実行するように定義されます。

次の Adabas コマンドクラスの 1 つまたはすべてを単一のトリガ定義に指定できます。

コマンドクラス コマンドコード
FIND S1、S2、S4
READ L1、L2、L3、L4、L5、L6、L9
UPDATE A1、A4
INSERT N1、N2
DELETE E1、E4

トリガをすべてのコマンドクラスに適用する場合は、コマンドタイプフィールドを空白のままにします。 デフォルトでは "All"(すべてのコマンド)です。

トリガをすべてのコマンドクラスではなく、複数のコマンドクラスに適用する場合は、コマンドクラス以外は同一のトリガを複数(クラスごとに 1 つ)定義します。

フィールド名

トリガは、ファイル内の単一のフィールドまたはすべてのフィールドで操作するコマンドと関連付けることができます。 例えば、EMPLOYEES ファイルの SALARY フィールドで UPDATE コマンドが実行されるたびに起動するトリガを定義することが可能です。

フィールドを指定することが常に適切であるとは限りません。 例としては、次のようなものがあります。

トリガをすべてのフィールドではなく、複数のフィールドに適用する場合は、フィールド以外は同一のトリガを複数(フィールドごとに 1 つ)定義します。

トリガは、イベントの選択条件に従って、1 つのフィールドだけ(つまりフォーマットバッファで指定されているフィールド)に対して起動します。 ただし、トリガを複数のフィールドに対して起動する必要がある場合は、特定のコマンドとフィールドに対してトリガファイルを定義し、プロシージャ自体でその他のフィールドの存在を確認することができます。 「マルチトリガのサポートの実装」を参照してください。

プロシージャは、他のプロシージャを呼び出すかどうか、また呼び出すのであればどのフィールドに対して呼び出すのかを確認できます。 このメカニズムを利用すれば、"メインの" プロシージャで、エラーを処理したり、前に実行したプロシージャでエラーが発生した場合でも他のプロシージャを呼び出す必要があるかどうかを判断したりすることができます。 そのためユーザーは、プロシージャを起動するかどうかを判断するために精度の高いルールセットが必要な状況を柔軟に制御することができます。

[Trigger Definitions]メニュー

[Trigger Definitions]メニュー(下図参照)には、トリガ定義の作成と保守に使用できる機能があります。

Start of instruction set[Trigger Definitions]メニューを表示する手順

Start of instruction set特定ファイルのすべてのトリガ定義にアクセスする手順

Start of instruction set特定のトリガ定義にアクセスする手順

[Trigger Definitions]メニューを使用して、1 つ以上のトリガを選択することもできます。

Start of instruction setトリガを 1 つ以上選択する手順

  1. 機能コード「S」と、ファイル名またはファイル名にワイルドカード値(例えば「>G」)を入力します。

    表示される画面は、次の例のようになります。

    注意:
    特定のファイル名を選択した場合、画面にはファイル名ではなくロングファイル名が表示されます。

    HH:MM:SS          ***** TRIGGER MAINTENANCE *****             YYYY-MM-DD
    User USR01            - List Trigger Definitions -            DBnr 105 
    
    Sel File Name / Long Field Name    Commnd  Type      ProcName Para   RecB
    --- ---------------------------    ------- ----      -------- ------ ----
    _ MISCELLANEOUS                    Delete  Pre Non-P SYMP0003 Cont   None 
       ** Any Field **
    _  VEHICLES-FILE                   Delete  Pre Non-P SYMP0003 Cont   None
       ** Any Field **
    _  VEHICLES-FILE                   Read    Pre Async ANYONE   Contrl None 
       ** Any Field **  
    _  VEHICLES-FILE                   Read    Pre Async MAKE0001 Cont   None
       MAKE
    _  VEHICLES-FILE                   Read    Pre Async MODEL001 Cont   None 
       MODEL  
    _  VEHICLES-FILE                   Read    Pre Async COLOR001 Contrl None 
       COLOR  
    _  VEHICLES-FILE                   Read    Pre Async CLASS001 Contrl None
       CLASS 
    _  GDMUSIC                         (All)   Pre Async PROC008  Contrl None
       ** Any Field **
    
    Command ==>
    Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7--PF8---PF9---PF10--PF11--PF12
                Menu  Exit              --    -    +                       Canc
  2. ファイル名の隣の[Sel]フィールドに、表示の場合は「D」、修正の場合は「M」、選択の場合は「S」、パージの場合は「P」を入力します。

    「D」、「P」、または「M」を入力すると、トリガ定義がポップアップウィンドウに表示されます。 「単一トリガの定義」を参照してください。

    「S」を入力すると、そのトリガが選択され、[Trigger Definitions]メニューが表示されます。

複数のトリガ定義

Start of instruction set1 つ以上のトリガ定義を追加、表示、修正、または削除する手順

  1. [Trigger Definitions]メニューで、コード(A、D、M、または P)とファイル名を入力します。 コマンドタイプの指定は任意です。空白のままにしておくと、デフォルトで All(すべてのコマンド)になります。

    入力したコードに応じて、次のいずれかの画面が表示されます。

    これらの画面には、指定したファイルのトリガ定義が表示されます。 例えば[Modify Trigger Definitions]画面は、次のようになります。

    HH:MM:SS                ***** TRIGGER MAINTENANCE *****         YYYY-MM-DD  
    User USR01              - Modify Trigger Definitions -          DBnr 105    
    
                                                              Pre-Post .. Pre   
    File ... VEHICLES-FILE (3)                                Command ... Read  
    
    Prty Long Field Name                  Fld Type   ProcName Params RecBuff Msg
    ---- -------------------------------- --- -----  -------- ------ -------    
    010  COLOR___________________________ AF  Async  COLOR001 Contrl None___    
    020  CLASS___________________________ AH  Async  CLASS001 Contrl None___    
    030  MAKE____________________________ AD  Async  MAKE0001 Contrl None___    
    040  MODEL___________________________ AE  Async  MODEL001 Contrl None___    
    050  ** Any Field **_________________ **  Async  SAMP0002 Contrl None___    
    ___  ________________________________ __  _____  ________ ______ _______    
    ___  ________________________________ __  _____  ________ ______ _______    
    ___  ________________________________ __  _____  ________ ______ _______    
    ___  ________________________________ __  _____  ________ ______ _______    
    ___  ________________________________ __  _____  ________ ______ _______    
    ___  ________________________________ __  _____  ________ ______ _______    
    Modify Entries, or enter '.'(Exit), or '?'(Help) to see options ... _       
    
    Command ==>
    Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12
          Help  Menu  Exit        Updat       -     +           Reseq Post  Canc
  2. 適切な情報を入力したら、PF5 キーを押してトリガテーブルを更新します。

    更新が確認されたことがメッセージにより通知されます。 入力した情報が無効または不完全な場合は、エラーメッセージが表示されます。

エントリフィールド

トリガ定義の画面のエントリフィールドについて次に説明します。

注意:
ロングフィールド名と[Fld](ショートフィールド名)の両方を入力する必要はありません。 一方を入力すると、もう一方はファイル - フィールドテーブルエントリから設定されます。

Prty(プライオリティ)

Adabas トリガドライバは、各トリガに定義された選択条件と一致するかどうか、フォーマットバッファをスキャンします。 同じファイルとコマンドに複数のフィールド名が指定されている場合、各フィールドに割り当てられるプライオリティによって、処理される順序が決まります。 一致が見つかると、トリガが起動されます。 [Prty]フィールドでは、シーケンスを設定または修正できます。

最高のプライオリティは 1 です。 ただし、プライオリティは 10 刻みで 10~900 の範囲で表されます。 それ以外の値が入力されると、フィールドの順序、つまり "プライオリティ" が変化します。 10 刻みの途中の値を入力すると、次の 10 刻みの値へと順番に並べ替えられます(RESEQ コマンドを使用、「コマンド」を参照)。例えばフィールドにプライオリティとして 11 と 12 を入力すると、それぞれの値は 20 と 30 として並べ替えられます。

フィールドのプライオリティを変更するには、1~9 の値を指定します。

[List Trigger Definitions]画面で MAKE のプライオリティの値を 30 から 10 に変更し、それに応じて他のフィールドのプライオリティを変更する場合は、MAKE に 1~9 の値を割り当てます。

RESEQ コマンドを使用すると、すべてのフィールドのプライオリティが 10~900 に変更され、MAKE が 10、COLOR が 20、CLASS が 30 というようになります。

Long Field Name

フィールドの Adabas ロングフィールド名です。 フィールド名の選択リストを表示するには、ワイルドカードを入力します。 ロングフィールド名が不明な場合は、[Fld](ショートフィールド名)から設定できます。

Fld(ショートフィールド名)

Adabas ショートフィールド名、つまり特定ファイルの特定フィールドを識別するために DBMS で使用されるユニークな名前です。 フィールドのロングフィールド名と対応する必要があります。 ショートフィールド名が不明な場合は、ロングフィールド名から設定できます。

Type

[Type]は、非同期、関与、または非関与です。 デフォルト値は非同期です。

ProcName

トリガの選択条件が満たされたときに呼び出される Natural サブプログラムの名前です。 値は、1~8 文字の有効な Natural サブプログラム名です。 デフォルト値はありません。

重要:
トリガを呼び出すユーザージョブの名前は、トリガの ProcName とは異なる必要があります。

Params

トリガのプロシージャが呼び出されるときに渡されるパラメータは次のとおりです。

Contrl ACB インターフェイスを使用します。トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、制御パラメータが使用されます。 Contrl がデフォルト値です。
Contrx ACB または ACBX インターフェイスを使用します。トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、制御パラメータが使用されます。
Resp プレコマンドトリガの場合には、コマンドの実行を防ぐために、修正可能なレスポンスコードフィールドが使用されます。 レスポンスコードは同期トリガでのみ使用されます。レスポンスコードには、すでに完了している可能性のある非同期トリガに対する値や意味はありません。
None パラメータは渡されません。

 

RecBuff

値は access(読み取り専用)、update(読み書き)、または update(なし)です。

Msg

エラーが発生したときに、このフィールドにエラーメッセージが表示されることがあります。 エラーの説明は画面の下部に表示されます。

コマンド

次の表で、トリガ定義の画面のコマンド行に入力できるコマンドについて説明します。

注意:
コマンドは、大文字、小文字、または大文字と小文字を混在させて入力することができます。

コマンド 説明
PRTY [Modify Trigger Definitions]画面を表示します。トリガに割り当てられたプライオリティを修正できます。
UPDATE 入力した値でトリガファイルを更新します。
BACK、- 前のページを表示します。
FWD、+ 次のページを表示します。
RESEQ トリガ定義のリストをプライオリティ順に並べ替えます。
POST このファイルとコマンドのポストコマンドトリガを表示します。
PRE このファイルとコマンドのプレコマンドトリガを表示します。
ACTIVATE プレコマンドトリガまたはポストコマンドトリガをアクティブ化します。
DEACTIVATE プレコマンドトリガまたはポストコマンドトリガを非アクティブ化します。
DELETE 選択したトリガ定義をトリガファイルから削除します。
MODIFY トリガ定義を修正します。

単一トリガの定義

Start of instruction set単一のトリガ定義を追加、表示、修正、または削除する手順

Start of instruction set トリガ定義を追加する手順

  1. プロシージャの名前を入力します。

  2. 必要に応じてオプションを修正します。

  3. PF5 キーを押して追加を確認します。

Start of instruction setトリガ定義を修正する手順

  1. [Modify Function]ポップアップは、次のようになります。

    Modify Details and press 'PF5' to Confirm Update.    
    
       HH:MM:SS   *** Define Trigger Info ***   YYYY-MM-DD  
                       - Modify Function -                  
    
       Trigger Information   ** Active **                   
         File Number ....... 4                              
         File Name ......... AUTOMOBILES                    
         Command Type ...... Read                           
         Long Field Name ... BODY-TYPE                      
         Adabas Field ...... AC                             
         Field Prty/Seq .... 010                            
       Procedure Information                                
         Name (Subpgm)...... _________                      
         Pre Cmd Select .... N  (Post)                      
         Trigger Type ...... N  (Non-Participating)         
         CALLNAT Params .... C  (Cntl Info + Resp)          
         RecBuffer Access .. A  (May be Accessed)           
    
       Command ==>
       Enter-PF1--PF2--PF3--PF4--PF5--PF6--PF7--PF8--
             Help Menu Exit Prty Updat     Act  Deact
  2. [Procedure Information]の[Field Prty/Seq](プライオリティまたはシーケンス)などのフィールドを修正します。

  3. トリガをアクティブ化または非アクティブ化する場合は、コマンド行に「ACTIVATE」または「DEACTIVATE」を入力します。 次に、トリガのステータスを一時的にするか、永続的にするかを選択します。

    コマンド   意味
    アクティブ化 一時的 ニュークリアスでトリガをアクティブ化しますが、トリガファイルでは非アクティブステータスのままにします。
      永続的 ニュークリアスでトリガをアクティブ化し、トリガファイルから非アクティブステータスを削除します。
    非アクティブ化 一時的 データベースに対して発行されたすべてのコマンドのイベント条件を確認するトリガを無視します。つまり、この定義に対してトリガを起動できません。
      永続的 ステータス "非アクティブ" でトリガファイルにトリガを格納します。ニュークリアスが開始してもアクティブ化されません。 ただし、トリガを後で開始することはできます。 アクティブな Adabas セッションは直ちに非アクティブ化されます。
  4. PF5 キーを押して更新を確認します。

Start of instruction setトリガ定義を削除する手順

Start of instruction setファイルのすべてのフィールドをプライオリティ順に表示する手順

Top of page

プロシージャレポート

次に示す[Procedure Reporting]メニューでは、トリガされたプロシージャのリストを取得できます。このリストは、ファイルまたはプロシージャ名をアルファベット順にソートしたリストです。 レポートは、特定のファイルに制限することも、すべてのファイルを含めることもできます。 プロシージャレポートを使用すると、例えば重複したプロシージャを特定したり、特定のプロシージャが使用されている各インスタンスを識別したりすることができます。

Start of instruction set[Procedure Reporting]メニューを表示する手順

Start of instruction set特定のファイルのみのプロシージャをリストする手順

Start of instruction set特定の名前から始まるプロシージャをリストする手順

どちらの場合も表示される画面には、次の例で示すように、情報のタイプが含まれます。

HH:MM:SS              ***** TRIGGER MAINTENANCE *****        YYYY-MM-DD
User USR01               - List Procedure Names -            DBnr 105

 File Name ... AUTOMOBILES                                       Fnr ... 4 


 Sel  ProcName   Command  Field Name                   When  Type   ParmTy 
 --- --------   -------  ----------------------------  ----  -----  ------ 
  _   PROC0001   Read     BODY-TYPE                     Post  NonP   Cntrl 
  _   PROC0001   Update   ** Any Field **               Pre   Async  Cntrl 
      PRO001     (All)    MILEAGE                       Pre   Async  Cntrl 
  _   SUBPGM     Read     COLOR                         Pre   Async  Cntrl 




 Select 'D' to Display, or enter 'F'(Fwd), 'T'(Top), 'B'(Bck), '.'(Exit)  
 Command ==>
Enter-PF1---PF2---PF3---PF4---PF5---PF6--PF7--PF8---PF9--PF10--PF11--PF12
      Help  Menu  Exit              --    -    +                     Canc

プロシージャレポートには、データベース番号、ファイル番号、およびファイル名と、プロシージャごとに次の情報が示されます。

フィールド 説明
ProcName トリガされたプロシージャの名前。
Command トリガを開始した Adabas コマンド。
Field Name トリガフィールド名。
When プロシージャを実行するタイミング。
  • "pre-command": 開始 Adabas コマンドの前にプロシージャを実行します。

  • "post-command": 開始 Adabas コマンドの後にプロシージャを実行します。

Type トリガのタイプ。
  • "non-participating": トリガされるプロシージャは、開始 Adabas コマンドのトランザクションロジックに関与しません。

  • "participating": トリガされるプロシージャは、開始 Adabas コマンドのトランザクションロジックに関与することがあります。

  • "asynchronous": Adabas コマンドとトリガされるプロシージャを個々に実行し、お互いに影響し合いません。 トリガされるプロシージャのトランザクションロジックは、Adabas コマンドトランザクションロジックに関与しません。

ParmTy プロシージャが呼び出されるときに渡されるパラメータのタイプ。
  • "control": トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、ACB 形式の制御パラメータが使用されます。 これがデフォルト値です。

  • "controlx": トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、ACB または ACBX 形式の制御パラメータが使用されます。

  • "response": プレコマンドトリガの場合にコマンドの実行を防ぐために、修正可能なレスポンスコードフィールドが使用されます。 レスポンスコードは同期トリガでのみ使用されます。レスポンスコードには、すでに完了している可能性のある非同期トリガに対する値や意味はありません。

  • "none": パラメータは渡されません。

Start of instruction set特定のプロシージャの詳細情報を取得する手順

Top of page

管理者機能

管理者機能では、トリガアクティビティを監視したり、プロファイルを表示および修正したり、ジョブステータス設定やバッファサイズを保守したりすることができます。

Start of instruction set[Administrator Functions]メニューを表示する手順

アクティブなセッションの設定

アクティブなセッションの設定には、ジョブステータス設定やバッファサイズなどが含まれます。

Start of instruction set アクティブなセッションの設定を修正する手順

  1. [Administrator Functions]メニューで、[Active Session Settings]を表す「A」を入力します。

  2. フィールドの値を修正し、PF5 キーを押して設定を更新します。

ニュークリアスクラスタ環境では、アクティブなセッションの設定に加えた変更がクラスタ内のすべてのアクティブなニュークリアスに反映されます。

[Active Session Settings]画面は、次の例のようになります。

HH:MM:SS              ***** TRIGGER MAINTENANCE *****           YYYY-MM-DD
User USR01              - Active Session Settings -             DBnr 105  

 Job Name ..........SAGDT077           Trigger File Number ......12    

 SVC Number ........217                Max File to be accepted...60    
 Nucleus .......... Active__                                           
 Triggers ......... Active__           Session Buffer Sizes in Bytes   
 Stored Proc. ..... Active__             Trigger Table Buffer....8192  
 Error Action ..... Halt                 Pre Trigger Queue.......15244 
 Trigger Logging .. Active__             Post Trigger Queue......2960  
 Activity Timeout.. 600                  Waiting Subsys Queue....80    
 Subsystems                              Acquired Storage........31232 
   Maximum ........5                     Used Storage............31232 
   Active .........5                                                   
   Inactive ...... 0                                                   
   Waiting ........5                                                   
   In Progress ....0                                                   

Change Parameters as required or press 'PF3' to Exit           

Command ==>                                                         
Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12-
      Help  Menu  Exit  Sact  Updat                                     Canc

注意:
[Subsystem Activity]画面を表示するには、PF4 キーを押します。

[Active Session Settings]のフィールドについて次の表で説明します。

フィールド 説明
Job Name Adabas ニュークリアスのジョブ名。
SVC Number データベースで使用している SVC の番号。
Nucleus Adabas トリガとストアドプロシージャが現在のデータベースでアクティブであるかどうかを示します。
Triggers "active"(デフォルト)の場合、このデータベースでトリガを実行できます。"inactive" の場合、実行できません。 このフィールドは変更できます。 「refresh」と入力すると、トリガテーブルを更新できます(「トリガテーブルの更新」を参照)。
Stored Procedures "active"(デフォルト)の場合、このデータベースでストアドプロシージャを実行できます。"inactive" の場合、実行できません。 このフィールドは変更できます。
Error Action 処理のエラーが発生したときに、トリガメンテナンスで実行されるアクション("reject"、"halt"、または "ignore")。 このフィールドは変更できます。
Trigger Logging ロギング機能が "active" と "inactive" のどちらであるかを示します。
Activity Timeout タスクがキャンセルされる前の秒数。 デフォルト値は 60 で、最大値は 9999 です。 このフィールドは変更できます。 ゼロに設定すると、Adabas TT パラメータ値のデフォルト値になります。
Subsystems
Maximum 割り当てられる Natural サブシステムの数。 値は 01~10 です。
Active 開始した Natural サブシステムの数。 システムを回復できないエラーが発生し、サブシステムが非アクティブな場合、この値は可能な最大値より小さくなることがあります。
Inactive システムを回復できないエラーが発生したために現在終了またはシャットダウンしている Natural サブシステムの数。
Waiting 現在処理を待機中のサブシステムの数。
In Progress 現在トリガを処理中のサブシステムの数。
Trigger File Number データベースのトリガファイルのファイル番号。
Max File to be accepted Adabas トリガとストアドプロシージャが受け入れ可能な最大ファイル番号。 データベースの起動時や初期化時に、ロード済みの最大のファイル番号に 10 を足した値として設定されます。 その後、さらに大きいファイル番号がデータベースに追加された場合、ファイルで検出されたすべてのトリガが無視されます。 Max File 値を超えるトリガをアクティブ化するには、データベースをシャットダウンしてから再スタートする必要があります。
Session Buffer Sizes in Bytes
Trigger Table Buffer トリガテーブルバッファのサイズ。 このフィールドは、プロファイル修正機能を使用して修正できます。
Pre-Trigger Queue 任意の時点で処理中であるすべてのプレコマンドトリガのキューのサイズ。
Post-Trigger Queue 任意の時点で処理中であるすべてのポストコマンドトリガのキューのサイズ。
Waiting Subsys Queue トリガの処理を待機しているタスクのキューのサイズ。現在のところ、80 バイトで固定です。
Acquired Storage Adabas トリガとストアドプロシージャで使用するために取得されるストレージの合計サイズ。
Used Storage 処理時に Adabas トリガとストアドプロシージャで使用されているストレージの実際のサイズ。

トリガテーブルの更新

REFRESH コマンドを使用すると、データベースをシャットダウンせずに新しいトリガをトリガテーブルに追加できます。 ニュークリアスクラスタ環境では、REFRESH コマンドですべてのクラスタニュークリアスのトリガテーブルが更新されます。

ロードされる追加トリガの数が、最初にロード済みの数よりも非常に大きい場合は、増加したトリガを処理するのに十分な追加スペースを手動で割り当てます。 トリガテーブルバッファが十分大きくない場合、Adabas トリガプロファイルのエラーアクションフィールドの値に基づいて Adabas トリガとストアドプロシージャが終了するような不整合が発生することがあります。

必要なトリガを使用するアプリケーションを実装する前に、それらのトリガをあらかじめロードしておくと、トリガテーブルの更新を回避できます。

Start of instruction setトリガテーブルを更新する手順

バッファサイズの計算

トリガテーブル、プレトリガキュー、およびポストトリガキューには、バッファが必要です。

トリガテーブル

トリガテーブルのバッファサイズは、次のように計算します。

((TOT TRG + TOT FILE)) * TRG ELEMENT) + 4096 = TOTAL  SIZE

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

TOT TRG トリガテーブルで定義されたトリガの合計数
TOT FILE トリガが存在するファイルの合計数
TRG ELEMENT トリガ要素のサイズ(28 バイト)

Adabas トリガドライバで TOTAL SIZE を計算すると、結果は 256 の倍数に切り捨てられます。

プレトリガキューとポストトリガキュー

データベースに渡される 1 秒当たりのコマンド数、実際にプロシージャが実行される時間、およびトリガが同期と非同期のどちらであるかによって、キューイングが起こる場合と起こらない場合とがあります。 各バッファは、プレトリガとポストトリガを個別にキューイングするように設定されています。 キューがいっぱいになると、トリガを起動するそれ以降のコマンドは、レスポンスコード 154 を受け取ります。 キューイングが消去された場合、DBA はキューサイズを大きくすることを検討してください。

バッファサイズを設定する場合は、プレトリガとポストトリガの比率についても考慮してください。 例えば、まったくプレトリガを使用しない場合、プレトリガキューは必要ないため、すべてのバッファスペースをポストトリガキューに割り当てる必要があります。

プロファイル情報の表示/修正

プロファイルには、Adabas トリガとストアドプロシージャで必要なシステム情報があり、指定したデータベース ID とファイル番号から生成されます。 プロファイルが生成されたら、そのプロファイルを表示したり、プロファイル内の値を修正したりすることができます。

Start of instruction setプロファイル表示する手順

Adabas トリガとストアドプロシージャによって、プロファイル内のフィールドにデフォルト値が割り当てられ、これらの値が初期化時に使用されます。 この情報は、初期化時(つまり Adabas ニュークリアスの開始時)のみ有効です。 プロファイルを修正した場合、新しい値は、ニュークリアスが次回バウンスされるときに有効になります。

Start of instruction set プロファイルを修正する手順

  1. [Display Profile Information]画面で、PF5 キーを押します。 [Administrator Functions]メニューで、[Modify Profile Information]を表す「M」を入力します。

    [Modify Profile Information]画面が表示されます。

  2. 新しい値を入力し、PF5 キーを押すか、コマンド行に「UPDATE」と入力します。

    プロファイルが正常に更新されたことがメッセージにより通知されます。

プロファイルのフィールド

プロファイルのフィールドについて次の表で説明します。

フィールド 説明
DBnr このプロファイルを適用するトリガファイルのデータベース ID。 値は、NTFILE、LFILE、または PF10(FTRG)を使用して入力します。
Trigger Status
このフィールドは変更できます。
アクティブ (デフォルト)このデータベースに対してトリガを実行できます。
非アクティブ このデータベースに対してトリガを実行できません。
Stored Proc. Status
このフィールドは変更できます。
アクティブ (デフォルト)このデータベースに対してストアドプロシージャを実行できます。
非アクティブ このデータベースに対してストアドプロシージャを実行できません。
Total Triggers このデータベース ID に対して定義されたトリガの合計数。 デフォルトで、トリガテーブルバッファのサイズを計算するために使用できます。 値は、トリガファイルに追加されたトリガ定義から取得されます。 この値が正しいかどうかは、NUMBER コマンドを発行して確認できます。
Batch Natural Name プロシージャを実際に実行する 1~10 の Natural サブシステムを起動するために、Adabas トリガドライバによって開始される Natural ニュークリアス。 この名前は、インストール処理中に、Natural ニュークリアスコンポーネントに割り当てられます。
Maximum Subsystems このフィールドは変更できます。
指定された Adabas セッションでアクティブ化される Natural サブシステムの数。 値は 01~10 です。
Activity Timeout このフィールドは変更できます。 タスクがキャンセルされる前の秒数。 デフォルトは 60 で、最大値は 9999 です。 ゼロに設定すると、デフォルトで Adabas TT パラメータ値になります。
NATPARM Parameters Natural ニュークリアスにリンクされた NATPARM モジュールのダイナミックなパラメータ上書き(NATPARM モジュールは、Natural セッションで有効になるオプションを指定する)。 「NATPARM について」を参照してください。
Fixed NATPARM この値は、Adabas トリガとストアドプロシージャによって生成されます。
STACK=(LOGON:SYSSPT;STP)
SYSSPT はプロシージャが実行されるライブラリです。STP は Natural ドライバを呼び出すために使用されます。
CMPRINT Assignment このフィールドは変更できます。 CMPRINT ラベルのダイナミックな割り当て。 デフォルト値は TSPRT です。 Natural 構文で特定のプリンタ番号表記(PRINT(01)、DISPLAY(02)、WRITE(03) など)が使用されない限り、特定のサブシステム内にある任意のプロシージャからの出力は、このラベルに送信される必要があります。
NATSEC LOGON Required このフィールドは Natural サブシステムが Natural Security 配下で実行されている場合にのみ適用されます。 Natural Security へのログオンが必要か(Y)必要でないか(N)を示します。 それぞれ AUTO=OFF、AUTO=ON に対応します。
ユーザー ID このフィールドは変更できます。 このフィールドは Natural サブシステムが Natural Security 配下で実行されている場合にのみ適用されます。 これは、Natural Security ユーザー ID です。
デフォルト値は USER** です。 ** は、サブシステムのダイナミックタスク番号(値 01~10)で置き換えられます。 デフォルトでは ** を接尾辞として使用しますが、空白以外の文字が 1 つ以上指定されていれば、ユーザー ID の任意の位置に指定できます。
パスワード このフィールドは変更できます。 このフィールドは Natural サブシステムが Natural Security 配下で実行されている場合にのみ適用されます。 これは Natural Security パスワードです。
デフォルト値は PSWD** です。 ** は、サブシステムのダイナミックタスク番号で置き換えられます。 デフォルトでは ** を接尾辞として使用しますが、空白以外の文字が 1 つ以上指定されていれば、ユーザー ID の任意の位置に指定できます。
Error Action
このフィールドは変更できます。 このフィールドは、システムが復元できなかった処理エラーの後で、Adabas トリガとストアドプロシージャによって実行されるアクションです。
停止 (デフォルト)クラスタとクラスタ以外の両方のニュークリアスに対して ADAEND が発行された場合と同様に、Adabas ニュークリアスを停止します。
拒否 Adabas トリガとストアドプロシージャはアクティブなままにします。ただし、トリガを起動するあらゆるコマンドがレスポンスコード 157 を受け取ります。ニュークリアスの 1 つが "拒否" に切り替わると、その他のニュークリアスもすべて切り替わります。 ただしリフレッシュ時に問題が発生し、エラーアクションが "拒否" の場合、ニュークリアスはシャットダウンします。トリガテーブルが破損または不完全な場合は、コマンドを拒否できません。
無視 Adabas トリガとストアドプロシージャをシャットダウンします。ただし、Adabas トリガとストアドプロシージャの状態に関わらず、ニュークリアスはアクティブなままにします。 クラスタ環境でニュークリアスの 1 つが "無視" に切り替わると、その他のニュークリアスもすべて切り替わります。 リフレッシュ時に問題が発生し、エラーアクションが "無視" の場合、すべてのニュークリアスが "無視" に切り替わります。

注意:
"無視" オプションを指定すると、アプリケーションの整合性に問題が発生する可能性があります。

Log Trigger Activity
このフィールドは変更できます。
アクティブ トリガアクティビティをログに記録します。
非アクティブ (デフォルト)トリガアクティビティをログに記録しません。
トリガやストアドプロシージャが呼び出されると、ユーザーの定義に従って、プロシージャに関する情報が常に出力スプールに出力されます。 この情報は、監査やデバッグに役立ちます。
Trigger Table Size このフィールドは変更できます。 これは、トリガテーブルバッファのサイズ(バイト単位)です。 追加のトリガがトリガテーブルにロードされる場合は、バッファサイズを増やす必要がある可能性があります(「トリガテーブルの更新」を参照)。 デフォルト値は、トリガファイルに定義されたトリガの数に基づいて計算されます。 「バッファサイズの計算」を参照してください。
Pre-Trigger Queue Size このフィールドは変更できます。 これは、プレトリガキューバッファのサイズ(バイト単位)です。このバッファは、処理の選択前にプレコマンドトリガを格納します。 デフォルト値が計算されます(「バッファサイズの計算」を参照)。
Post-Trigger Queue Size このフィールドは変更できます。 これは、ポストトリガキューバッファのサイズ(バイト単位)です。このバッファは、処理の選択前にポストコマンドトリガを格納します。 デフォルト値が計算されます(「バッファサイズの計算」を参照)。

サブシステムアクティビティ

サブシステムアクティビティでは、現在実行中の Natural サブシステムに関する情報が表示されます。

Start of instruction setサブシステムアクティビティ情報を表示する手順

Start of instruction set アクティブまたは待機中のサブシステムをキャンセルする手順

  1. コマンド行に「CANCEL」と入力します。

  2. キャンセルするサブシステムの[Status]フィールドに、「C」(キャンセル)と入力します。

  3. 終了するには、PF3 キーを押します。

トリガアクティビティ

トリガアクティビティでは、現在実行中のトリガに関する情報が表示されます。

Start of instruction setトリガアクティビティ情報を表示する手順

[Current Trigger Activity]画面の情報について次の表で説明します。

フィールド 説明
Nmbr トリガを実行する Natural サブシステムの数。 有効な値の範囲は 01~10 です。
Status サブシステムの現在のステータス(アクティブまたは待機中)。
Cmd トリガを開始した Adabas コマンド。
Fnr コマンドが呼び出されたファイル番号。 このフィールドの値がトリガファイルと同じである場合、これはストアドプロシージャです。
Field トリガの起動元となったフィールドの名前。
ProcName トリガされたプロシージャの名前。
Type トリガのタイプ。pre(プレコマンド)、post(ポストコマンド)、non-P(非関与)、part(関与)、または async(非同期)。
RecBu トリガの RecBuff 設定。access(読み取り専用)、update(読み書き)、または none(なし)です。
UserID 実際の Adabas コマンドを発行したユーザーの ID(16 進数値)。

Start of instruction set追加情報を表示する手順

Top of page