注意:
トリガメンテナンスサブシステムは、Adabas Online System(AOS)アドオン製品がインストールされている場合のみ利用できます。 AOS
デモバージョンでは利用できません。
トリガメンテナンス機能は、次の操作が可能な Natural アプリケーションです。
トリガ定義の追加、削除、修正、およびリスト表示
ファイル - フィールドテーブルの生成、修正、表示、および削除
実行時トリガシステム定義のプロファイル情報の表示および修正
トリガ操作の監視と、トリガの永続的または一時的なアクティブ化または非アクティブ化
トリガメンテナンスを開始する手順
Adabas Online System(AOS)メインメニューから[Trigger Maintenance]を選択するか、ライブラリ SYSTRG の Natural NEXT プロンプトで「MENU」と入力します。
トリガメンテナンスのメインメニューが表示されます。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Main Menu - DBnr 105 Code Function ---- --------------------------------- A Administrator Functions F File-Field Table Definitions R Procedure Reports T Create/Modify Trigger Definitions ? Help . Exit ---- --------------------------------- Code ... Command ==> Enter--PF1--PF2--PF3--PF4---PF5---PF6---PF7--PF8--PF9--PF10--PF11--PF12 Help Exit Field Trigr Admin Procs FTRG FDIC Canc |
次の表で、メインメニューの機能について説明します。
コード | 機能 | 説明 |
---|---|---|
A | 管理者機能 | プロファイル情報(トリガとストアドプロシージャの実行時パラメータ設定)を表示または修正します。 Natural サブシステム情報を取得します。 サブシステムアクティビティとトリガアクティビティを監視します。 |
F | ファイル - フィールドテーブル定義 | ファイル - フィールドテーブルを表示、生成、修正、削除、または選択します。 ファイル - フィールドテーブルのソースを表示します。 |
R | プロシージャレポート | 定義済みトリガのプロシージャのリストをファイル順または名前順に表示します。 |
T | トリガ定義の作成/修正 | トリガ定義を追加、表示、修正、削除、または選択します。 |
? | ヘルプ | トリガメンテナンス機能のヘルプ情報を表示します。 |
. | 出口 | Natural NEXT 画面に戻ります。 メインメニューに戻るには、「TRIGGERS」と入力します。 |
注意:
トリガメンテナンス機能では、データベース ID とファイル番号が必要です。 これらの値が
NATPARM LFILE パラメータまたは NTFILE
マクロを使用してデフォルトで指定されていない場合は、メインメニューを使用する前に、入力する必要があります。 メインメニューで PF10
を押すと、これらの値を入力することができます。そうでない場合は、入力を要求するメッセージが自動的に表示されます。
このドキュメントでは、次のトピックについて説明します。
トリガメンテナンス機能は、データ画面やポップアップウィンドウを表示する一連のメニューとサブメニューで構成されます。 それぞれのメニューには、機能と機能コードのリスト、入力フィールドのグループ、コマンド行、PF キーのセット、およびメッセージエリアがあります。 Adabas Online System(AOS)は、同じ環境にインストールする必要があります。
ワイルドカード表記は、可能な限り許可されます。 例えば、ほとんどのメニューで、ファイル名を指定する必要があります。 ファイル名がわからない場合は、代わりにワイルドカード文字を入力できます。 値の範囲がポップアップウィンドウに表示され、その範囲から項目またはエントリを選択できます。
"ワイルドカード" という語句は、次のように特殊文字を使用することを意味します。
文字 | 例 | 次の条件に当てはまる名前を選択 |
---|---|---|
* | PERS* | PERS で始まる名前 |
> | PERS> | PERS よりも大きい値が含まれる |
< | PERS< | PERS よりも小さい値が含まれる |
トリガメンテナンス機能の各メニューには、次の入力フィールドが含まれます。
フィールド | 入力 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
コード |
|
||||||||||||
ファイル名 | ファイル名を入力するか、ワイルドカードを入力してファイル名と番号の選択リストを表示します(例えば、「a*」と入力すると、名前が a で始まるすべてのファイルのリストを返します)。 | ||||||||||||
ファイル番号 | ファイル番号を入力します。 FDT からファイル - フィールドテーブルを生成するときは、実際のファイル番号の代わりに「99999」と入力すると、有効なファイルのリストを取得できます。 |
その他の入力フィールドは変化します。 例としては、次のようなものがあります。
[File-Field Table Definitions]メニューには、[Generation Type]入力フィールドがあります。 [Generation Type]は、ファイル - フィールドテーブルを生成するソースを指定します(Natural DDM、Adabas FDT、または Predict Adabas ファイル定義)。
[Trigger Definitions]メニューには、[Field Name]と[Command Type]入力フィールドがあります。 [File Name]、[Command Type]、および[Field Name]は、トリガ定義の作成時に指定する選択条件を構成します。
画面の上部または下部にあるメッセージエリアには、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、または - | 前のページ。 |
キー | ラベル | 説明 | メニューまたは画面 |
---|---|---|---|
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 | 現在のプロセスをキャンセルし、前の画面に戻ります。 更新オプションが選択されていなければ、すべての更新が無視されます。 | 全画面 |
トリガでは、ファイル - フィールドテーブルへのアクセスが必要です。ファイル - フィールドテーブルは、ロングファイル名からファイル番号へ、およびフィールド名から 2 文字の Adabas フィールド ID へのマッピングを行います。
ファイル - フィールドテーブルには、次のエントリが含まれる必要があります。
トリガ定義で使用されるすべてのフィールド
トリガされたプロシージャのアクセスまたは更新コマンドで参照されるすべてのフィールド
レコードバッファ抽出ルーチン(STPRBE)でクエリされる必要のあるすべてのフィールド
ファイル - フィールドテーブルは、Adabas FDT、Natural DDM、または Predict Adabas ファイルから生成できますが、次の制限があります。
スーパーディスクリプタ、サブディスクリプタ、ハイパーディスクリプタ、およびフォネティックディスクリプタは、ヒストグラム(L9)のみでサポートされます。
ファイル - フィールドテーブルの定義後は、外部フィールドの名前と内部フィールドの名前および番号を関連付けることができ、トリガをファイル - フィールドテーブルの任意のフィールドに対して定義できるようになります。 例えば、EMPLOYEES ファイルと SALARY フィールドを参照する場合、Adabas ではこれらをファイル 1 とフィールド AS として識別できるようになります。
レコードバッファ抽出ルーチン(STPRBE)でレコードバッファ内のフィールドの値を抽出する場合、適切な位置と長さで値を抽出する必要があります。 正しい位置を特定するために、STPRBE では不要な各フィールドを通過する必要があり、そのため各フィールドの長さを認識している必要があります。
フォーマットバッファでフィールドの長さを明示的に指定しない場合は、ファイル - フィールドテーブル定義から取得する必要があります。
Natural のように、フィールドの長さが常にフォーマットバッファで指定されている場合は、ファイル - フィールドテーブルにフィールドを含める必要はありません。
フィールドの長さがフォーマットバッファで指定されていない場合、定義がトリガファイル内に存在しなければ、エラーが発生します。 プロシージャは処理を続行できずに終了します。
フォーマットバッファでグループ名が指定されている場合、STPRBE ではグループフィールドテーブルを使用して、そのグループに属するエレメンタリフィールドを特定します。 グループフィールドテーブル内の各エントリには、エレメンタリフィールドとグループにおけるオフセットに関する情報が含まれます。 オフセットは、最大で 7 グループレベルまで維持されます。 特定のファイルのグループフィールドテーブルで、最大で 50 のエレメンタリフィールドにエントリを設定できます。
グループフィールドテーブルのエントリは、ファイル - フィールドテーブルの生成機能、またはファイル - フィールドテーブルの修正機能から生成できます。
ファイル - フィールドテーブルは、トリガメンテナンス機能のファイル - フィールドテーブル定義機能を使用して生成および保守できます。 任意のフィールドの組み合わせをファイル - フィールドテーブルに追加したり順次削除したりすることができます。
ファイル - フィールドテーブル定義機能にアクセスする手順
メインメニューで「F」と入力します。
表示される画面は、次の例のようになります。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - File-Field Table Definitions Menu - DBnr 105 Code Function ---- ------------------------------------ D Display File-Field Table G Generate File-Field Table M Modify File-Field Table P Delete File-Field Table R Rename File-Field Table S Select File-Field Table V View the Origin for File-Field Table ? Help . Exit ---- ------------------------------------ Code ......... _ File Name .... ___________________ File Number .. _____ Gen. Type .... __ Command ==> Enter-PF1--PF2--PF3--PF4--PF5---PF6---PF7---PF8--PF9--PF10--PF11--PF12 Help Menu Exit Trigr Admin Procs FTRG FDIC Canc |
次の表で[File-Field Table Definitions]メニューのそれぞれの機能を説明します。
機能 | 説明 |
---|---|
Display File-Field Table | 指定されたファイルのテーブルを表示します。 |
Generate File-Field Table | フィールドを追加または削除して、新しいテーブルを生成します。 生成タイプコードが必要です。 |
Modify File-Field Table | 1 つ以上のフィールドを削除して、テーブルを修正します。 トリガ定義で使用しているフィールドは削除できません。 |
Delete File-Field Table | テーブル全体を削除します。 トリガ定義で使用しているフィールドが 1 つ以上含まれているテーブルは削除できません。 |
Rename File-Field Table | テーブルの名前を変更します。 指定されたテーブルのすべてのフィールドとトリガの名前が変更されます。 |
Select a File-Field Table | 選択リストからテーブルを選択します。 |
View the Origin for File-Field Table | テーブルの生成元となった FDT、DDM、または Predict ファイルを表示します。 選択したフィールドをテーブルに追加できます。 |
ファイル - フィールドテーブルを表示する手順
[File-Field Table Definitions]メニューで「D」と入力します。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Display File-Field Table - DBnr 105 File Name ... AUTOMOBILES Fnr ... 4 Field Name Long Field Name Status Message ---------- -------------------------------- ------ ------------------ AC BODY-TYPE Triggr CA COLOR Triggr AA MAKE Active FB MILEAGE Triggr AB MODEL Active BD WEIGHT Active DA YEAR Active 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 Next -- - + Grp GFld Canc |
この画面の情報を確認するには、Enter キーを押してください。
グループテーブルを表示するには、PF9 キーを押すか、スクロールし続けます。 ファイルのグループテーブルが生成された場合は、ファイル - フィールドテーブルの最後に表示されます。
グループフィールドテーブルを表示するには、PF10 キーを押します。
グループテーブルを表示する手順
PF9(Grp)キーを押すか、[Display File-Field Table]画面の最後までスクロールします。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Display Group Table - DBnr 105 File Name ... AUTOMOBILES Fnr ... 4 Name Level Type Length Name Level Type Length Name Level Type Length ---- ----- ---- ------ ---- ----- ---- ------ ---- ----- ---- ------ AB 1 G 60 A1 1 G 53 A2 1 G 21 AQ 1 P 13 A3 1 G 4 AW 1 P 12 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 -- - + GFld FFT Canc |
この画面の情報を確認するには、Enter キーを押してください。
グループフィールドテーブルを表示するには、PF10 キーを押すか、スクロールし続けます。 グループフィールドテーブルがグループテーブルの最後に表示されます。
[Display File-Field Table]画面に戻るには、PF11 キーを押してください。
ファイルの各グループフィールドがリストされます。 [Type]列の[G]は、単一グループフィールドを表します。[P]は、ピリオディック(PE)グループを表します。 グループフィールドテーブルエントリは、フィールドがグループまたは PE グループの一部である場合にのみ作成できます。
[Length]列には次の情報が表示されます。
単一グループの場合は、グループに含まれるすべてのフィールドの合計長
PE グループの場合は、各オカレンスの合計長
グループフィールドテーブルを表示する手順
[Display File-Field Table]画面で PF10(GFld)キーを押します。
または:
[Display Group Table]画面の最後までスクロールします。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYY-MM-DD User USR01 - Display Group-Field Table - DBnr 105 File Name ... AUTOMOBILES Fnr ... 4 Field Group Offsets Message ---------------- ------------------------------------ -------------------- 2,AS,5,P AQ(3) 2,AT,5,P AQ(8) 2,AU,2,U A3(0) 2,AV,2,U A3(2) 2,AX,6,U AW(0) 2,AY,6,U AW(6) Enter 'F'(Fwd), 'T' (Top), 'B' (Bck), or '.'(Exit) Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- |
この画面の情報を確認するには、Enter キーを押してください。
グループテーブルを表示するには、PF9 キーを押してください。
[Display File-Field Table]画面に戻るには、PF11 キーを押してください。
フィールドは ADACMP FNDEF フォーマットで表示されます。表示される内容は、レベル、名前、長さ、フォーマット[オプション]です。 詳細は、『Adabas ユーティリティマニュアル』を参照してください。
[Group Offsets]列は、フィールドが参加するグループおよびそのグループ内のフィールドのオフセットを示します。 フィールドが複数のグループのメンバである場合は、追加グループ(およびグループ内のフィールドのオフセット)もリストされます。
例えば、AS フィールドは AQ グループに属しており、オフセット 3 にあります。 また、AT フィールドも AQ グループに属していますが、オフセット 8 にあります。
ファイル - フィールドテーブルを修正する手順
[File-Field Table Definitions]メニューで「M」と入力します。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Modify File-Field Table - DBnr 105 File Name ... AUTOMOBILES Fnr ...4 Sel Field Name Long Field Name Status Message ---- ---------- -------------------------------- ------ -------------- __ AC BODY-TYPE Triggr __ CA COLOR Triggr __ AA MAKE Active __ FB MILEAGE Triggr __ AB MODEL Active __ BD WEIGHT Active __ DA YEAR Active Mark fields with 'A' Add, 'D' Delete, 'G' Generate, 'I' Info, or '.' Exit Command==> Enter-PF1---PF2---PF3---PF4--PF5---PF6--PF7--PF8--PF9---PF10---PF11--PF12 Help Menu Exit Next -- - + Grp GFld Canc |
この画面の情報を確認するには、Enter キーを押してください。
グループテーブルを表示するには、PF9 キーを押すか、最後までスクロールします。 グループテーブルを修正することはできません。
グループフィールドテーブルを修正するには、PF10 キーを押します。
[Modify File-Field Table]画面で、[Status]が
[Triggr]であるフィールドは、トリガ定義で使用されています。
[Active]であるフィールドは、ファイル - フィールドテーブルに含まれていますが、トリガ定義では使用されていません。
[Modify File-Field Table]画面では、グループフィールドテーブルのエントリを生成したり、フィールド属性を表示したり、ファイル - フィールドテーブルからフィールドを削除したりすることができます。
グループフィールドテーブルのエントリを生成する手順
フィールド名の隣の[Sel]列に「G」を入力して、エントリを生成する各フィールドにマークを付けます。 その後、Enter キーを押します。
グループフィールドテーブルエントリは、フィールドがグループまたは PE グループの一部である場合にのみ作成できます。
各フィールドの属性を表示する手順
フィールド名の隣の[Sel]列に「I」を入力して、フィールドにマークを付けます。 その後、Enter キーを押します。
フィールドのグループフィールドエントリが生成されている場合は、結果のウィンドウに、フィールド名、フォーマット、長さ、タイプ(スーパーディスクリプタの場合は SP、サブディスクリプタの場合は SB)、およびインジケータが表示されます。
1 つ以上のフィールドを削除する手順
フィールド名の隣の[Sel]列に「D」を入力して、削除する各フィールドにマークを付けます。 その後、Enter キーを押します。
次の規則が適用されます。
Enter キーを押す前に、フィールド名の隣の[Sel]列に「A」と入力すると、フィールドの削除をキャンセルできます。
[Active]のフィールドだけを削除できます。
[Triggr]のフィールドは、トリガ定義を先に削除しなければ削除できません。
グループフィールドテーブルを修正する手順
[Modify File-Field Table]画面で PF10(GFld)キーを押します。
または:
[Display Group Table]画面の最後までスクロールします。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYY-MM-DD User USR01 - Modify Group-Field Table - DBnr 105 File Name ... AUTOMOBILES Fnr ... 4 Sel Field Group Offsets Message --- ---------------- ------------------------------------ --------------- _ 2,AS,5,P AQ(3) _ 2,AT,5,P AQ(8) _ 2,AU,2,U A3(0) _ 2,AV,2,U A3(2) _ 2,AX,6,U AW(0) _ 2,AY,6,U AW(6) Mark Fields with 'D'(Delete) or '.'(Exit) Command ===> Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Menu Exit -- - + Grp FFT Canc |
この画面の情報を確認するには、Enter キーを押してください。
グループテーブルを表示するには、PF9 キーを押してください。 グループテーブルを修正することはできません。
[Modify File-Field Table]画面に戻るには、PF11 キーを押してください。
フィールドは ADACMP FNDEF フォーマットで表示されます。表示される内容は、レベル、名前、長さ、フォーマット[オプション]です。 詳細は、『Adabas ユーティリティマニュアル』を参照してください。
[Group Offsets]列は、フィールドが参加するグループおよびそのグループ内のフィールドのオフセットを示します。 フィールドが複数のグループのメンバである場合は、追加グループ(およびグループ内のフィールドのオフセット)もリストされます。
例えば、AS フィールドは AQ グループに属しており、オフセット 3 にあります。 また、AT フィールドも AQ グループに属していますが、オフセット 8 にあります。
1 つ以上のエントリを削除する手順
フィールド名の隣の[Sel]列に「D」を入力して、削除する各エントリにマークを付けます。 その後、Enter キーを押します。
ファイル - フィールドテーブルの全体を削除する場合に限り、[File-Field Table Definitions]メニューの削除機能を使用します。 ファイル - フィールドテーブルを削除すると、そのファイルに関連付けられたグループフィールドテーブルもすべて削除されます。
ファイル - フィールドテーブル全体を削除する手順
[File-Field Table Definitions]メニューで[Delete File-Field Table]を表す「P」を入力します。
TRG0109 エラーが発生した場合、このエラーは、すべてのトリガが削除されるまでテーブルを削除できないことを表します。 ファイル - フィールドテーブルを表示して、テーブルのいずれかのフィールドに[Triggr](トリガ定義で使用されている)とマークが付いているかどうか確認してください。 マークが付いていない場合、トリガ定義を確認する必要があります。 "すべてのフィールド" オプション(フィールド名 **)のトリガがこのファイルに定義されている可能性があります。
ファイル - フィールドテーブルを生成する手順
[File-Field Table Definitions]メニューで「G」と入力し、ファイル名と次に示す生成タイプコードを入力します。
コード | ソース |
---|---|
F | Adabas FDT |
D | Natural DDM |
P | Predict ファイル |
FDT 生成は、常にトリガファイルの現在の設定に対するデータベースの DBID から行われます。
DDM と Predict の生成は、常に Predict ファイルのデータベースとファイル番号から行われます。 これはFDIC の現在の設定から取得できます。または PF10 キーを使用したり、トリガメンテナンス機能のコマンド行からコマンド SET FDIC を発行したりして上書きすることもできます。
注意:
FDT ファイル名には、ワイルドカード表記を使用できません。
ただし、生成機能に限って、ファイル番号に「99999」と入力すると、データベースにロードされているすべてのファイルのリストを表示できます。
表示される画面には、ファイル - フィールドテーブルを生成するためのソース(FDT、DDM、または Predict ファイル)が含まれます。 ファイル - フィールドテーブルに追加したり削除したりするフィールドを選択できます。 「FDT のサンプル」を参照してください。
ファイル - フィールドテーブルが生成されると、フィールド名(ロングネーム)が変更されたかどうか、Adabas ショートネームを基に確認されます。 変更された場合、ステータスフィールドは値[Alias]になり、新しいフィールドの名前が、先頭にコロン(:)を付けてメッセージフィールドに表示されます。 フィールド名の隣の[Sel]列に「A」を入力して、エントリを新しい名前で更新します。
FDT 生成の場合、フィールド名は常に Adabas ショートネームに "-FIELD" を付けた名前として生成されます。 トリガメンテナンス機能が生成されなかった名前を検出すると、メッセージでは "xx-FIELD" という形式のロングフィールド名として使用されます。 もう一度[Sel]列で「A」を入力し、変更を確認します。 「FDT のサンプル」には、各フィールドのステータスがあります。 [Active]とマークが付いたフィールドは、ファイル - フィールドテーブルにすでに含まれます。
生成タイプが[F](Adabas FDT)の場合、フィールド名は "xx-FIELD" のように生成されます("xx" は Adabas フィールド名)。 その後、DDM または Predict Adabas ファイルのファイル番号とファイル名が FDT 定義でのファイル番号とファイル名と同じ場合、これらのフィールドは、DDM または Adabas ファイルのユーザー定義名で更新されることがあります。
注意:
[Field Definition]列のフィールドは、ADACMP FNDEF
フォーマットで表示されます。"U" はアンパック形式の数値を表し、フィールド長は文字数ではなくバイト数です。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Generate/Modify File-Field Table - DBnr 105 FDT File Name .. AUTOMOBILES FDT Fnr ... 4 Sel Field Definition Long Field Name Status Message --- ----------------- --------------- ------ -------------- _ 01,AA,020,A,DE,NU MAKE Active _ 01,AB,020,A,DE,NU MODEL Active _ 01,AC,015,A,DE,NU BODY-TYPE Active _ 01,BA,002,U,DE,NU BA-FIELD _ 01,BB,003,U,DE,NU BB-FIELD _ 01,BC,005,U,NU BC-FIELD _ 01,BD,005,U,NU WEIGHT Active _ 01,CA,010,A,DE,NU COLOR Active _ 01,DA,002,U,DE,NU YEAR Active _ 01,DB,016,A,NU DB-FIELD _ 01,FA,006,U,DE,NU FA-FIELD _ 01,FB,006,U,DE,NU MILEAGE Active Mark Fields with 'A' Add, 'D' Delete, 'G'Generate, 'I' Info, or '.' Exit Command==> Enter-PF1---PF2---PF3---PF4--PF5---PF6--PF7--PF8--PF9--PF10--PF11--PF12 Help Menu Exit Next -- - + Canc |
1 つ以上のフィールドを追加する手順
フィールド名の隣の[Sel]列に「A」を入力して、追加する各フィールドにマークを付けます。 その後、Enter キーを押します。
すべてのフィールドをファイル - フィールドテーブルに追加する場合は、コマンド行に「ALL」と入力します。
1 つ以上のフィールドを削除する手順
フィールド名の隣の[Sel]列に「D」を入力して、削除する各フィールドにマークを付けます。 その後、Enter キーを押します。
グループフィールドテーブルのエントリを生成する手順
フィールド名の隣の[Sel]列に「G」を入力して、エントリを生成する各フィールドにマークを付けます。 その後、Enter キーを押します。
グループフィールドテーブルエントリは、フィールドがグループまたは PE グループの一部である場合にのみ作成できます。
各フィールドの属性を表示する手順
フィールド名の隣の[Sel]列に「I」を入力して、フィールドにマークを付けます。 その後、Enter キーを押します。
フィールドのグループフィールドエントリが生成されている場合は、結果のウィンドウに、フィールド名、フォーマット、長さ、タイプ(スーパーディスクリプタの場合は SP、サブディスクリプタの場合は SB)、およびインジケータが表示されます。
注意:
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 コマンドが実行されるたびに起動するトリガを定義することが可能です。
フィールドを指定することが常に適切であるとは限りません。 例としては、次のようなものがあります。
特定のフィールドを DELETE コマンドと関連付けることは無意味です。DELETE コマンドはフォーマットバッファを必要としないからです。
プレコマンドトリガの読み込みコマンドの場合、フィールドにはデータが含まれません。 そのため、読み込むフィールド、または要求を発行したユーザーのユーザー ID のいずれかを検証しない場合、フィールドを指定する必要はありません。
トリガをすべてのフィールドではなく、複数のフィールドに適用する場合は、フィールド以外は同一のトリガを複数(フィールドごとに 1 つ)定義します。
トリガは、イベントの選択条件に従って、1 つのフィールドだけ(つまりフォーマットバッファで指定されているフィールド)に対して起動します。 ただし、トリガを複数のフィールドに対して起動する必要がある場合は、特定のコマンドとフィールドに対してトリガファイルを定義し、プロシージャ自体でその他のフィールドの存在を確認することができます。 「マルチトリガのサポートの実装」を参照してください。
プロシージャは、他のプロシージャを呼び出すかどうか、また呼び出すのであればどのフィールドに対して呼び出すのかを確認できます。 このメカニズムを利用すれば、"メインの" プロシージャで、エラーを処理したり、前に実行したプロシージャでエラーが発生した場合でも他のプロシージャを呼び出す必要があるかどうかを判断したりすることができます。 そのためユーザーは、プロシージャを起動するかどうかを判断するために精度の高いルールセットが必要な状況を柔軟に制御することができます。
[Trigger Definitions]メニュー(下図参照)には、トリガ定義の作成と保守に使用できる機能があります。
[Trigger Definitions]メニューを表示する手順
メインメニューで[Create/Modify Trigger Definitions]を表す「T」を入力します。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Trigger Definitions Menu - DBnr 105 Code Function ---- -------------------------- A Add Trigger Definition D Display Trigger Definition M Modify Trigger Definition P Delete Trigger Definition S Select Trigger Definition ? Help . Exit ---- ------------------------- Code ........ _ Active/Deactive Opt... _ File Name ... _________________ Cmd Type .... _ Field Name .. _________________ Command ==> Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7--PF8--PF9--PF10--PF11--PF12-- Help Menu Exit Field Admin Procs FTRG FDIC Canc |
[Trigger Definitions]メニューでは、トリガ定義を追加、表示、修正、または削除できます。 画面に同じファイルに対する複数のトリガ定義を表示したり、ポップアップウィンドウにファイル内の特定フィールドの単一トリガ定義を表示したりすることができます。
特定ファイルのすべてのトリガ定義にアクセスする手順
機能コード(A は追加、D は表示、M は修正、P はパージ/削除)とファイル名を入力します。 コマンドタイプとフィールド名にはワイルドカード値を入力します。
そのファイルのすべてのトリガ定義が画面に表示されます。 この画面にアクセスするために入力した機能コード(A、D、M、または P)に応じて、1 つ以上のトリガ定義を追加、表示、修正、または削除できます。 「複数のトリガ定義」を参照してください。
特定のトリガ定義にアクセスする手順
機能コード(A、D、M、または P)、ファイル名、およびフィールド名を入力します。
トリガ定義がポップアップウィンドウに表示されます。 機能(A、D、M、または P)に応じて、トリガ定義を追加、表示、修正、または削除できます。 「単一トリガの定義」を参照してください。
[Trigger Definitions]メニューを使用して、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 |
ファイル名の隣の[Sel]フィールドに、表示の場合は「D」、修正の場合は「M」、選択の場合は「S」、パージの場合は「P」を入力します。
「D」、「P」、または「M」を入力すると、トリガ定義がポップアップウィンドウに表示されます。 「単一トリガの定義」を参照してください。
「S」を入力すると、そのトリガが選択され、[Trigger Definitions]メニューが表示されます。
1 つ以上のトリガ定義を追加、表示、修正、または削除する手順
[Trigger Definitions]メニューで、コード(A、D、M、または P)とファイル名を入力します。 コマンドタイプの指定は任意です。空白のままにしておくと、デフォルトで All(すべてのコマンド)になります。
入力したコードに応じて、次のいずれかの画面が表示されます。
[Add Trigger Definitions]
[Display Trigger Definitions]
[Modify Trigger Definitions]
[Delete Trigger Definitions]
これらの画面には、指定したファイルのトリガ定義が表示されます。 例えば[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 |
適切な情報を入力したら、PF5 キーを押してトリガテーブルを更新します。
更新が確認されたことがメッセージにより通知されます。 入力した情報が無効または不完全な場合は、エラーメッセージが表示されます。
トリガ定義の画面のエントリフィールドについて次に説明します。
注意:
ロングフィールド名と[Fld](ショートフィールド名)の両方を入力する必要はありません。 一方を入力すると、もう一方はファイル -
フィールドテーブルエントリから設定されます。
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 というようになります。
フィールドの Adabas ロングフィールド名です。 フィールド名の選択リストを表示するには、ワイルドカードを入力します。 ロングフィールド名が不明な場合は、[Fld](ショートフィールド名)から設定できます。
Adabas ショートフィールド名、つまり特定ファイルの特定フィールドを識別するために DBMS で使用されるユニークな名前です。 フィールドのロングフィールド名と対応する必要があります。 ショートフィールド名が不明な場合は、ロングフィールド名から設定できます。
[Type]は、非同期、関与、または非関与です。 デフォルト値は非同期です。
トリガの選択条件が満たされたときに呼び出される Natural サブプログラムの名前です。 値は、1~8 文字の有効な Natural サブプログラム名です。 デフォルト値はありません。
重要:
トリガを呼び出すユーザージョブの名前は、トリガの ProcName とは異なる必要があります。
トリガのプロシージャが呼び出されるときに渡されるパラメータは次のとおりです。
Contrl | ACB インターフェイスを使用します。トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、制御パラメータが使用されます。 Contrl がデフォルト値です。 |
Contrx | ACB または ACBX インターフェイスを使用します。トリガ要求、トリガコマンド、および修正可能なレスポンスコードフィールドに関する情報を渡すために、制御パラメータが使用されます。 |
Resp | プレコマンドトリガの場合には、コマンドの実行を防ぐために、修正可能なレスポンスコードフィールドが使用されます。 レスポンスコードは同期トリガでのみ使用されます。レスポンスコードには、すでに完了している可能性のある非同期トリガに対する値や意味はありません。 |
None | パラメータは渡されません。 |
値は access(読み取り専用)、update(読み書き)、または update(なし)です。
エラーが発生したときに、このフィールドにエラーメッセージが表示されることがあります。 エラーの説明は画面の下部に表示されます。
次の表で、トリガ定義の画面のコマンド行に入力できるコマンドについて説明します。
注意:
コマンドは、大文字、小文字、または大文字と小文字を混在させて入力することができます。
コマンド | 説明 |
---|---|
PRTY | [Modify Trigger Definitions]画面を表示します。トリガに割り当てられたプライオリティを修正できます。 |
UPDATE | 入力した値でトリガファイルを更新します。 |
BACK、- | 前のページを表示します。 |
FWD、+ | 次のページを表示します。 |
RESEQ | トリガ定義のリストをプライオリティ順に並べ替えます。 |
POST | このファイルとコマンドのポストコマンドトリガを表示します。 |
PRE | このファイルとコマンドのプレコマンドトリガを表示します。 |
ACTIVATE | プレコマンドトリガまたはポストコマンドトリガをアクティブ化します。 |
DEACTIVATE | プレコマンドトリガまたはポストコマンドトリガを非アクティブ化します。 |
DELETE | 選択したトリガ定義をトリガファイルから削除します。 |
MODIFY | トリガ定義を修正します。 |
単一のトリガ定義を追加、表示、修正、または削除する手順
[Trigger Definitions]メニューで、コード(A、D、M、または P)、ファイル名、およびフィールド名を入力します。
コマンドタイプの指定は任意です。空白のままにしておくと、デフォルトで All(すべてのコマンド)になります。
入力したコードに応じて、追加、表示、修正、または削除機能のポップアップウィンドウが表示されます。 これらのウィンドウには、指定したトリガ定義に関するトリガ情報とプロシージャ情報が表示されます(「修正機能画面」を参照)。
トリガ情報には、ファイルの名前と番号、コマンドタイプ(読み込み、更新など)、ロングファイル名、および Adabas フィールド名があります。 また、次の表に示すようなトリガの現在の状態も表示されます。
ステータス | 説明 |
---|---|
アクティブ | トリガファイルと現在アクティブなニュークリアスに対するトリガが現在アクティブです。 |
非アクティブ | トリガの永続的な非アクティブ化が要求されました。アクティブ化されるまで、トリガはこの状態のままになります。 |
Temp Inactive | トリガは実行中のニュークリアスでのみ非アクティブです。 一時的な "非アクティブ化" が要求されました。"アクティブ化" が発行されるまで、トリガはこの状態のままになります。 |
File Not Used | トリガ定義で指定されたファイル番号が、データベースの最大ファイル番号(使用されている最大のファイル番号 + 10)よりも大きい値です。 「トリガテーブルの作成」を参照してください。 |
Not Loaded | 最後にニュークリアスがアクティブ化された後で、トリガがファイルに追加されました。 次回 REFRESH コマンドが発行されるか、ニュークリアスが再スタートすると、トリガはアクティブになります。 |
Not Checked | トリガメンテナンス機能はニュークリアスでアクティブではありません。そのため、トリガのステータス確認を実行できません。 |
Inaccessible | Adabas ニュークリアスは、トリガステータスに関するすべての要求を受け入れていません。 |
プロシージャ情報には、プロシージャ名、プレコマンドステータスまたはポストコマンドステータス、トリガタイプ(非同期、関与、非関与)、CALLNAT パラメータタイプ(cntrl、resp、または none)、およびレコードバッファオプション(access、update、または none)があります。
トリガ定義を追加する手順
プロシージャの名前を入力します。
必要に応じてオプションを修正します。
PF5 キーを押して追加を確認します。
トリガ定義を修正する手順
[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 |
[Procedure Information]の[Field Prty/Seq](プライオリティまたはシーケンス)などのフィールドを修正します。
トリガをアクティブ化または非アクティブ化する場合は、コマンド行に「ACTIVATE」または「DEACTIVATE」を入力します。 次に、トリガのステータスを一時的にするか、永続的にするかを選択します。
コマンド | 意味 | |
---|---|---|
アクティブ化 | 一時的 | ニュークリアスでトリガをアクティブ化しますが、トリガファイルでは非アクティブステータスのままにします。 |
永続的 | ニュークリアスでトリガをアクティブ化し、トリガファイルから非アクティブステータスを削除します。 | |
非アクティブ化 | 一時的 | データベースに対して発行されたすべてのコマンドのイベント条件を確認するトリガを無視します。つまり、この定義に対してトリガを起動できません。 |
永続的 | ステータス "非アクティブ" でトリガファイルにトリガを格納します。ニュークリアスが開始してもアクティブ化されません。 ただし、トリガを後で開始することはできます。 アクティブな Adabas セッションは直ちに非アクティブ化されます。 |
PF5 キーを押して更新を確認します。
トリガ定義を削除する手順
PF5 キーを押して削除を確認します。
ファイルのすべてのフィールドをプライオリティ順に表示する手順
PF4 キーを押すか、コマンド行に「PRTY」を入力します。
注意:
トリガでコマンドタイプ "Delete"
を指定した場合は、ユーザーがプレトリガ定義やポストトリガ定義を同時に定義することができる画面が表示されます。
次に示す[Procedure Reporting]メニューでは、トリガされたプロシージャのリストを取得できます。このリストは、ファイルまたはプロシージャ名をアルファベット順にソートしたリストです。 レポートは、特定のファイルに制限することも、すべてのファイルを含めることもできます。 プロシージャレポートを使用すると、例えば重複したプロシージャを特定したり、特定のプロシージャが使用されている各インスタンスを識別したりすることができます。
[Procedure Reporting]メニューを表示する手順
メインメニューで、[Procedure Reports]を表す「R」を入力します。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Procedure Reporting Menu - DBnr 105 Code Function ---- -------------------------- F Display Procedures by File N Display Procedures by Name ? Help . Exit ---- ------------------------- Code ......... N File Number .. _____ Procedure .... PROC0001 Command ==> Enter PF1---PF2--PF3--PF4---PF5---PF6---PF7---PF8--PF9--PF10--PF11--PF12 Help Menu Exit Field Trigr Admin Canc |
特定のファイルのみのプロシージャをリストする手順
[Display Procedures by File]を表すコード「F」とファイル番号を入力します。
特定の名前から始まるプロシージャをリストする手順
[Display Procedures by Name]を表すコード「N」とプロシージャ名を入力します。
どちらの場合も表示される画面には、次の例で示すように、情報のタイプが含まれます。
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 | プロシージャを実行するタイミング。
|
Type | トリガのタイプ。
|
ParmTy | プロシージャが呼び出されるときに渡されるパラメータのタイプ。
|
特定のプロシージャの詳細情報を取得する手順
プロシージャ名の隣の[Sel]列に「D」を入力します。
ポップアップウィンドウに、トリガ定義とプロシージャに関する情報が次のように表示されます。
Trigger Information currently displayed HH:MM:SS *** Define Trigger Info *** YYYY-MM-DD - Display Function - Trigger Information File Number ....... 4 File Name ......... AUTOMOBILES Command Type ...... Read Long Field Name ... BODY-TYPE Adabas Field ...... AC Field Prty/Seq .... ____ Procedure Information Name (Subpgm)...... PROC0001 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 |
トリガ情報には、トリガイベント条件、つまりファイルの名前と番号、コマンドタイプ、ロングファイル名、および Adabas フィールド名があります。
プロシージャ情報には、Natural サブプログラム名、プロシージャがプレコマンドとポストコマンドのどちらであるか、トリガタイプ(非同期、関与、非関与)、CALLNAT パラメータタイプ(cntrl、resp、または none)、および RecBuffer アクセスステータス(A= アクセス、N= アクセスなし、U= アクセス/更新)があります。
管理者機能では、トリガアクティビティを監視したり、プロファイルを表示および修正したり、ジョブステータス設定やバッファサイズを保守したりすることができます。
[Administrator Functions]メニューを表示する手順
メインメニューで、[Administrator]を表す「A」を入力します。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Administrator Functions Menu - DBnr 105 Code Function ---- --------------------------- A Active Session Settings D Display Profile Information M Modify Profile Information S Subsystem Activity T Trigger Activity ? Help . Exit ---- --------------------------- Code ... D Command ==> Enter PF1---PF2---PF3---PF4---PF5---PF6--PF7--PF8---PF9---PF10--PF11--PF12-- Help Menu Exit Field Trigr Procs FTRG Canc |
アクティブなセッションの設定には、ジョブステータス設定やバッファサイズなどが含まれます。
アクティブなセッションの設定を修正する手順
[Administrator Functions]メニューで、[Active Session Settings]を表す「A」を入力します。
フィールドの値を修正し、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 |
|
||||||||||||
Trigger File Number | データベースのトリガファイルのファイル番号。 | ||||||||||||
Max File to be accepted | Adabas トリガとストアドプロシージャが受け入れ可能な最大ファイル番号。 データベースの起動時や初期化時に、ロード済みの最大のファイル番号に 10 を足した値として設定されます。 その後、さらに大きいファイル番号がデータベースに追加された場合、ファイルで検出されたすべてのトリガが無視されます。 Max File 値を超えるトリガをアクティブ化するには、データベースをシャットダウンしてから再スタートする必要があります。 | ||||||||||||
Session Buffer Sizes in Bytes |
|
REFRESH コマンドを使用すると、データベースをシャットダウンせずに新しいトリガをトリガテーブルに追加できます。 ニュークリアスクラスタ環境では、REFRESH コマンドですべてのクラスタニュークリアスのトリガテーブルが更新されます。
ロードされる追加トリガの数が、最初にロード済みの数よりも非常に大きい場合は、増加したトリガを処理するのに十分な追加スペースを手動で割り当てます。 トリガテーブルバッファが十分大きくない場合、Adabas トリガプロファイルのエラーアクションフィールドの値に基づいて Adabas トリガとストアドプロシージャが終了するような不整合が発生することがあります。
必要なトリガを使用するアプリケーションを実装する前に、それらのトリガをあらかじめロードしておくと、トリガテーブルの更新を回避できます。
トリガテーブルを更新する手順
コマンド行で「REFRESH」と入力するか、トリガフィールドに「refresh」と入力します。
トリガテーブル、プレトリガキュー、およびポストトリガキューには、バッファが必要です。
トリガテーブルのバッファサイズは、次のように計算します。
((TOT TRG + TOT FILE)) * TRG ELEMENT) + 4096 = TOTAL SIZE
ここでは次の内容を表しています。
TOT TRG | トリガテーブルで定義されたトリガの合計数 |
TOT FILE | トリガが存在するファイルの合計数 |
TRG ELEMENT | トリガ要素のサイズ(28 バイト) |
Adabas トリガドライバで TOTAL SIZE を計算すると、結果は 256 の倍数に切り捨てられます。
データベースに渡される 1 秒当たりのコマンド数、実際にプロシージャが実行される時間、およびトリガが同期と非同期のどちらであるかによって、キューイングが起こる場合と起こらない場合とがあります。 各バッファは、プレトリガとポストトリガを個別にキューイングするように設定されています。 キューがいっぱいになると、トリガを起動するそれ以降のコマンドは、レスポンスコード 154 を受け取ります。 キューイングが消去された場合、DBA はキューサイズを大きくすることを検討してください。
バッファサイズを設定する場合は、プレトリガとポストトリガの比率についても考慮してください。 例えば、まったくプレトリガを使用しない場合、プレトリガキューは必要ないため、すべてのバッファスペースをポストトリガキューに割り当てる必要があります。
プレトリガキューが必要になるのは、プレコマンドトリガがトリガファイルで定義されている場合に限られます。 プレトリガキューのバッファサイズは、次のように計算します。
(NC / 2) * 148 = TOTAL SIZE
"NC" は、ADARUN パラメータ NC の値です。
この計算は、すべてのトリガが同期の場合に有効です。 非同期トリガを使用する場合、コマンドは、前のコマンドによるプロシージャが完了する前に、連続して発行される可能性があります。 このため、キューイングが発生し、さらに大きなバッファサイズが必要になります。
バッファの量を増やすかどうかは、発行されるコマンドの数と発行される速さ(つまり、コマンドのレスポンスと次のコマンドの発行までの時間間隔)、および各トリガのプロシージャが完了するまでにかかる時間によります。 例えば、バッチジョブが非同期トリガを起動する数千ものコマンドを発行する場合、非常に大きなバッファが必要になります。
ポストトリガキューが必要になるのは、ポストコマンドトリガがトリガファイルで定義されている場合に限られます。 バッファサイズは、プレトリガキューのバッファサイズとまったく同じ方法で計算します。サイズに関して同様の検討が必要です。
プロファイルには、Adabas トリガとストアドプロシージャで必要なシステム情報があり、指定したデータベース ID とファイル番号から生成されます。 プロファイルが生成されたら、そのプロファイルを表示したり、プロファイル内の値を修正したりすることができます。
プロファイル表示する手順
[Administrator Functions]メニューで、[Display Profile Information]を表す「D」を入力します。
[Display Profile Information]画面が次の例のように表示されます。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Display Profile Information - DBnr 105 Triggers Status .......... Active__ Total Triggers ..34 Stored Proc. Status ...... Active__ Natural Subsystem Parameters Batch Natural Name ..... NATAPT Maximum Subsystems ..... 6_ Activity Timeout ....... 600/80 NATPARM Parameters ..... DU=OFF,INTENS=1,ETID=' ' __________ ____________________________________ Fixed NATPARM Parm ..... STACK=(LOGON:SYSSPT;STP),PROGRAM=STPEND CMPRINT Assignment ..... TSPRT Required .. N UserID ... USER**__ Password .. PSWD**__ Adabas Session Parameters Error Action .......... Halt__ Trigger Table Size ....... __10K Log Trigger Activity ... Active__ Pre Trigger Queue Size ... __35K Post Trigger Queue Size .. __50K Command ==> Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12- Help Menu Exit Mod Canc |
Adabas トリガとストアドプロシージャによって、プロファイル内のフィールドにデフォルト値が割り当てられ、これらの値が初期化時に使用されます。 この情報は、初期化時(つまり Adabas ニュークリアスの開始時)のみ有効です。 プロファイルを修正した場合、新しい値は、ニュークリアスが次回バウンスされるときに有効になります。
プロファイルを修正する手順
[Display Profile Information]画面で、PF5 キーを押します。 [Administrator Functions]メニューで、[Modify Profile Information]を表す「M」を入力します。
[Modify Profile Information]画面が表示されます。
新しい値を入力し、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 |
|
||||||||
Log Trigger Activity |
|
||||||||
Trigger Table Size | このフィールドは変更できます。 これは、トリガテーブルバッファのサイズ(バイト単位)です。 追加のトリガがトリガテーブルにロードされる場合は、バッファサイズを増やす必要がある可能性があります(「トリガテーブルの更新」を参照)。 デフォルト値は、トリガファイルに定義されたトリガの数に基づいて計算されます。 「バッファサイズの計算」を参照してください。 | ||||||||
Pre-Trigger Queue Size | このフィールドは変更できます。 これは、プレトリガキューバッファのサイズ(バイト単位)です。このバッファは、処理の選択前にプレコマンドトリガを格納します。 デフォルト値が計算されます(「バッファサイズの計算」を参照)。 | ||||||||
Post-Trigger Queue Size | このフィールドは変更できます。 これは、ポストトリガキューバッファのサイズ(バイト単位)です。このバッファは、処理の選択前にポストコマンドトリガを格納します。 デフォルト値が計算されます(「バッファサイズの計算」を参照)。 |
サブシステムアクティビティでは、現在実行中の Natural サブシステムに関する情報が表示されます。
サブシステムアクティビティ情報を表示する手順
[Administrator Functions]メニューで、[Subsystem Activity]を表す「S」を入力します。
[Subsystem Activity]画面は、次の例のようになります。
HH:MM:SS - Subsystem Activity - YYYY-MM-DD Nmbr Started Status Type Start / TimeOut of Trigger Trig Count ---- ------- ------ ----- ---------------------------- ---------- 01 09:25:57 Busy Sync 09:41:37 09:46:37 350 02 09:25:57 Busy Async 09:41:39 09:46:39 280 03 09:25:57 Wait 212 04 09:25:57 Wait 156 05 09:25:57 Wait 51 Subsystems . . 5 of 5 Command ==> |
[Subsystem Activity]画面の情報について次の表で説明します。
フィールド | 説明 |
---|---|
Nmbr | Natural サブシステムの番号。 |
Started | サブシステムが初期化された時刻。 リストされている他のサブシステムと[Started]の時刻が異なる場合、タイムアウト、キャンセル、または終了が発生したことを表します。 この場合、照合を行う必要があります。 |
Status | サブシステムの現在のステータス。busy(ビジー)、active(アクティブ)、wait(処理を待機中)、shutdown(シャットダウン)、cancelled(キャンセル)、または abended(アベンド)(エラー発生時)。 |
Type | トリガのタイプ。sync(同期)または async(非同期)。 |
Start | プロシージャが実行を開始した時刻。 |
Timeout | プロシージャが最大タイムリミットを超えて実行される場合にプロシージャがキャンセルされる時間。 タイムアウト前にエラーが発生した場合は、エラーが表示されます。 |
Trig Count | 初期化後にサブシステムによって実行されたトリガの数。 |
Command | DBA がアクティブまたは待機中のサブシステムをキャンセルするには、CANCEL コマンドを入力し、次にキャンセルするサブシステムの[Status]にカーソル位置を合わせて「C」と入力します。 |
アクティブまたは待機中のサブシステムをキャンセルする手順
コマンド行に「CANCEL」と入力します。
キャンセルするサブシステムの[Status]フィールドに、「C」(キャンセル)と入力します。
終了するには、PF3 キーを押します。
トリガアクティビティでは、現在実行中のトリガに関する情報が表示されます。
トリガアクティビティ情報を表示する手順
[Administrator Functions]メニューで、[Trigger Activity]を表す「T」を入力します。
[Current Trigger Activity]画面は、次の例のようになります。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Current Trigger Activity - DBnr 105 Nmbr Status Cmd Fnr Field ProcName Type RecBu UserID (hex) ---- ------ --- --- ----- -------- ---------- ----- ------------- 01 Active PROC0002 Pre Non-P None ABD6EA375DE96A01 Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting L3 11 ** SYMP0002 Pre Async None Waiting S4 11 ** SYMP0002 Pre Async None Waiting N1 11 LE SYMP0001 Pre Non-P Upd Command ==> Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12- Menu Exit Sact Refr -- - + > Canc |
[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 進数値)。 |
追加情報を表示する手順
PF10 キーを押します。
画面が右にスクロールし、次の図のようになります。
HH:MM:SS ***** TRIGGER MAINTENANCE ***** YYYY-MM-DD User USR01 - Current Trigger Activity - DBnr 105 Nmbr Status Cmd Fnr Field ProcName CID CID (hex) ISN in ACB Timeout ---- ------ --- --- ----- -------- --- --------- ---------- --------- 01 Active ** PROC0002 00000000 11:30:41 Waiting L3 11 ** SYMP0002 ??? 00200101 Waiting L3 11 ** SYMP0002 ??? 00200101 1 Waiting L3 11 ** SYMP0002 ??? 00200101 16 Waiting L3 11 ** SYMP0002 ??? 00200101 15 Waiting L3 11 ** SYMP0002 ??? 00200101 14 Waiting L3 11 ** SYMP0002 ??? 00200101 20 Waiting L3 11 ** SYMP0002 ??? 00200101 23 Waiting L3 11 ** SYMP0002 ??? 00200101 2 Waiting S4 11 ** SYMP0002 ???? 02100101 Waiting N1 11 LE SYMP0001 00000000 Command ==> Enter PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12- Menu Exit Sact Refr -- - + < Canc |
フィールド | 説明 |
---|---|
Nmbr | トリガを実行する Natural サブシステムの数。 有効な値の範囲は 01~10 です。 |
Status | サブシステムの現在のステータス(アクティブまたは待機中)。 |
Cmd | トリガを開始した Adabas コマンド。 |
Fnr | コマンドが呼び出されたファイル番号。 このフィールドの値がトリガファイルと同じである場合、これはストアドプロシージャです。 |
Field | トリガの起動元となったフィールドの名前。 |
ProcName | トリガされたプロシージャの名前。 |
CID | Adabas コントロールブロック(ACB)のコマンド ID。 |
CID (hex) | 16 進数形式で再表示したコマンド ID。 |
ISN in ACB | Adabas コントロールブロック(ACB)からの ISN。 |
Timeout | プロシージャが最大タイムリミットを超えて実行される場合にプロシージャがキャンセルされる時間。 |