バージョン 4.2.5
 —  ユーティリティ  —

SYSRDC ユーティリティ

ユーティリティ SYSRDC は、Natural アプリケーション内の内部プロセスフローに関するデータのモニタリングおよび計算を記録するために使用します。 このデータは、外部プログラムまたは Natural プログラムの Natural セッション活動を評価する場合に使用できます。 データは、Natural 内で実行されたイベントで収集されます。

SYSRDC ユーティリティ」ドキュメントでは、次のトピックについて説明します。


SYSRDC の機能コンポーネント

SYSRDC ユーティリティには、データを収集してその後の処理用に提供するためのコンポーネントが用意されています。次のセクションでは、これらのコンポーネントをリストして説明します。

Top of page

データ収集イベント

Natural 内のアクティビティを指定するイベント。 次の表に、Natural 内でデータを収集するイベントおよび使用可能なイベントのタイプを示します。

イベントの各タイプには、1 文字か 2 文字のイベントコードが割り当てられています。最初の文字はイベントのタイプを表し、2 番目の文字はサブタイプを表します。

例えば、イベントコード PL で、P はイベントタイプ "プログラム" を表し、L はサブタイプ "ロード" を表します。

イベント イベントコード
セッションの初期化時。 SI
セッションの終了時。 ST
プログラムのロード時。 PL
プログラムの起動時。 PS
プログラムの終了時。 PT
データベースコールの前。 DB
データベースコールの後。 DA
端末 I/O の前。 IB
端末 I/O の後。 IA
Natural 以外のプログラムのコールの前。 CB
Natural 以外のプログラムのコールの後。 CA
ランタイムエラー時。 E

内部トレースコール時。

内部トレースによって提供される情報は、Software AG の担当者によるデバッグの目的でのみ使用されます。
次の「内部トレースコールイベントをアクティブにするには」も参照してください。

N
Natural ステートメント時。 NS
アウトバウンド RPC メッセージ時。 RO
インバウンド RPC メッセージ時。 RI
RPC 要求の実行開始時。 RS
ユーザー定義イベント時。 U

Start of instruction set 内部トレースコールイベントをアクティブにするには

  1. Natural プロファイルパラメータ ITRACE=ON を指定します。

  2. 次の方法によって、内部トレースコールを発行する Natural コンポーネントを定義します。

NTTRACE マクロおよび ITRACE パラメータと TRACE パラメータの詳細については、『パラメータリファレンス』ドキュメントを参照してください。

Top of page

収集されるデータ

Natural Data Collector がイベントで収集するデータについては、次のセクションで説明します。

データのレイアウトの詳細については、Natural ソースデータセット NAMRDC、または Natural システムライブラリ SYSRDC に提供されているローカルデータエリア RDCDATA を参照してください。

収集されるデータは、一般データとイベント固有データの 2 つのカテゴリに分類されます。

一般データ

次の一般データは、すべてのイベントで収集されます。

イベント固有データ

次のデータは、次のイベントでのみ収集されます。

イベント データ要素
セッションの初期化 なし
セッションの終了

終了リターンコード。
Natural 終了メッセージコード NAT99nn
バックエンドプログラムの名前。

プログラムのロード

ロードされるプログラムの名前。
ロードライブラリの名前。

プログラムの開始/終了

プログラムタイプ。
プログラム名。
プログラムライブラリ名。
プログラムライブラリのデータベース ID。

データベースコール

データベースタイプ。
コマンドコード。
コマンド ID。
データベース ID。
レスポンスコード。
パラメータアドレスをリストするポインタ (ユーザー出口にのみ有用)。

端末 I/O

送信されるバイト数。
読み込まれるバイト数。
割り当てられたセッションストレージの合計。
圧縮セッションストレージ長。

Natural 以外のプログラムのコール

呼び出されたプログラムの名前。
ダイナミックモードやスタティックモードなどのコールモード。
プログラムリンクの場所。
パラメータタイプ。
パラメータアドレス。
プログラムのエントリアドレス。
レスポンスコード。

ランタイムエラー

Natural システムエラーメッセージコード。
外部アベンドコード。
Natural プロファイルパラメータ ETA で指定されたエラー処理プログラムの名前(『パラメータリファレンス』ドキュメントの該当するセクションを参照)。

内部トレース

Natural ニュークリアスコンポーネントに関する最大 250 バイトの情報。
提供される情報は、Software AG の担当者によるデバッグの目的でのみ使用されます。

RPC 要求 RPC-specific 情報:

環境:C = クライアント、S = サーバー。

RDC サブタイプ S:
サブプログラム名、
Adabas ユーザー ID(ETID)、
会話ステータス、
ログオンインジケータ(Y = ログオン実行)、
RPC 要求の偽装インジケータ(Y = 偽装実行)。

RDC サブタイプ O および I:
トランスポートプロトコル、
RPC 機能、
クライアントユーザー ID のタイプ、
メッセージの長さ、
トランスポート層のリターンコード、
外部会話 ID、
クライアントユーザー ID、
サーバーノード(クライアント専用アウトバウンドメッセージ)、
サーバー名(クライアント専用アウトバウンドメッセージ)。

ユーザー定義イベント 最大 250 バイトのユーザー定義情報。

Top of page

Natural Data Collector のアクティブ化

Natural Data Collector は、Natural プロファイルパラメータ RDCSIZE によってアクティブ化され、制御されます(『パラメータリファレンス』ドキュメントも参照)。

このパラメータでは、Natural Data Collector の RDCSIZE バッファのサイズ(KB 単位)が決定され、トレースの記録が制御されます(該当するセクションを参照)。

デフォルトでは、パラメータは RDCSIZE=0 に設定されます。この場合、Natural Data Collector は非アクティブになります。

Start of instruction set Natural Data Collector をアクティブにするには

Top of page

トレースの記録

収集されたイベントデータは、常にユーザー出口に供給され、外部モニタリング/計算プログラムで使用されます(該当するセクションを参照)。 現在の Natural セッションのイベントデータは、ユーザー出口を使用せずに RDCSIZE バッファに記録できます。 この機能は、テストの目的に使用すると便利です。 このセクションでは、RDCSIZE バッファへのデータの記録をトレースの記録と呼びます。

トレースの記録は、セッションの開始時に開始され、セッションの終了時に終了します。 RDCSIZE バッファに記録されたデータには、同じセッション内の任意の Natural プグラムからアクセスできます。

RDCSIZE バッファはラップアラウンドモードでデータが記録されます。つまり、バッファがいっぱいになると、最も古い記録が上書きされます。 セッションの終了時に、バッファの内容は削除されます。

トレースの記録は、プロファイルパラメータ RDCSIZE でアクティブにされます(『パラメータリファレンス』ドキュメントの該当するセクションも参照)。 このパラメータでは、RDCSIZE バッファのサイズも決定されます。

Start of instruction set トレースの記録をアクティブにし、使用するには

  1. Natural プロファイルパラメータ RDCSIZE を 2 より大きい値に設定します。

    次の式を使用して、RDCSIZE バッファに収まるレコードの数を計算します。

    11 * (RDCSIZE - 2) = レコードの数

    現在の Natural セッションについて収拾されたすべてのイベントデータは、RDCSIZE バッファに記録されます。

  2. CMRDC インターフェイスの呼び出し」の説明に従って、CMRDC インターフェイスを使用し、RDCSIZE バッファの内容を取得します。

  3. 必要に応じて、CMRDC インターフェイスを使用して、停止または再開、および RDCSIZE バッファでのトレースの記録を実行し、データを記録するイベントを指定したり、「CMRDC インターフェイスの呼び出し」で説明されている追加機能を実行します。

Top of page

外部モニタリング/計算用ユーザー出口

イベントデータは、Natural セッションでの活動を評価するために外部モニタリング/計算プログラムに渡すことができます。 この処理は、ユーザー出口および提供されているユーザー出口プログラムの例によって実行されます。 ユーザー出口プログラムは、アセンブリ言語で作成されます。

Natural Data Collector では、任意の数のユーザー出口がサポートされます。 ユーザー出口は、Natural プロファイルパラメータ RDCEXIT で定義できます(『パラメータリファレンス』ドキュメントの該当するセクションを参照)。 外部モニタリング/計算プログラムは、各ユーザー出口にアタッチできます。

RDCEX1、RDCEX2、および RDCEX3 の 3 つの出口名が事前定義されています。 Natural ニュークリアスにリンクされる出口のエントリポイントとしてこれらの名前の 1 つを使用した場合、Natural プロファイルパラメータ RDCEXIT は必要ありません。

データ収集イベント」で示したすべてのイベントで、ユーザー出口は次の表に示す標準リンケージコール会話を使用して、制御を引き継ぎます。

登録 内容
1 2 つのアドレスで構成されるパラメータアドレスリストをポイントします。1 つのアドレスは一般データをポイントし、もう 1 つのアドレスはイベント固有データをポイントします。 これらのエリアのレイアウトは、それぞれ DSECT RDCGDATA および RDCLDATA によってマップされます。 どちらの DSECT も、Natural マクロ NAMRDC にソース形式で提供されます。
13 72 バイトの標準セーブエリアをポイントします。
14 リターンアドレスを含みます。
15 エントリポイントアドレスまたはユーザー出口のリターンコードのいずれかが含まれます。

注意:
ユーザー出口は CMRDC インターフェイスを使用しないで呼び出されます。

ユーザー出口プログラムは、Natural と同じ属性である必要があります。つまり、同じアドレッシングモードを持ち、リエントラントである必要があります。 ユーザー出口プログラムは、静的にリンクされた Natural 以外のプログラムの規則に従って、Natural ニュークリアスとリンクしている必要があります。 『パラメータリファレンス』ドキュメントで説明しているプロファイルパラメータ「CSTATIC」および「RCA」も参照してください。

デフォルトでは、400 バイトの排他的ワークエリア(セッション当たり)が各ユーザー出口に提供されます(RDCGWRKA フィールド)。 ユーザー出口により大きいワークエリアが必要な場合は、Natural プロファイルパラメータ RDCEXIT のユーザー出口名の後に指定できます(『パラメータリファレンス』ドキュメントの該当するセクションを参照)。 ワークエリアの長さは RDCGWRKL フィールドのユーザー出口に渡され、整合性チェックに使用されます。 このワークエリアの場所は、Natural の再配置によってセッション中に変更される場合がありますが、内容は維持されます。

TP モニタ環境では、CICS での CSA アドレスなどの TP アンカーアドレスが提供されます(RDCGANCH フィールド)。 このアドレスを使用して、システム情報にアクセスできます。

ユーザー出口プログラムの実行中にプログラムチェックが発生した場合、アベンド状況の繰り返しを避けるため、残りのセッションに対する以降のデータ収集は無効になります。

以降のセクションでは、次の項目について説明します。

リターンコード

ゼロ以外のリターンコードは、次の 2 つのイベントにのみサポートされます。

ユーザー出口プログラムの例

次のユーザー出口プログラムの例が、Natural ソースデータセットに含まれています。

プログラム データセット 用途
NAMRDC NATnnn.SRCE 一般データおよびイベント固有データ用の DSECT マクロ。
XNATRDC1 NATnnn.SRCE z/OS および z/VSE オペレーティングシステム環境の Natural TSO インターフェイスと Natural バッチインターフェイス。
XNCFRDC1 NATnnn.SRCE Com-plete。
XNCIRDC1 NCInnn.SRCE Natural CICS インターフェイス。

Top of page

CMRDC インターフェイスの呼び出し

CMRDC アプリケーションプログラミングインターフェイスは、RDCSIZE バッファに記録されたトレースデータを取得および制御するために使用されます。 この機能は、テストの目的に使用すると便利です。

Start of instruction set CMRDC インターフェイスを呼び出すには

CMRDC インターフェイスで使用できる機能および対応する Natural CALL ステートメントに適用される構文については、次のセクションで説明します。

また、Natural システムライブラリ SYSRDC には、プログラム例および該当するローカルデータエリア RDCDATA が含まれています。

以降のセクションでは、次の項目について説明します。

トレースレコードの取得

RDCSIZE バッファからデータを読み込むには、次の Natural ステートメントを使用して CMRDC を呼び出します。

CALL 'CMRDC' function event-time gen-data event-data seq.-number

次のパラメータが渡されます。

パラメータ フォーマット/長さ 説明
function A1

使用可能な関数:

F 最初のトレースレコードを取得します。
G 次のトレースレコードを取得します。
N 指定したシーケンス番号のレコードを取得します。
event-time

N10
または
N12

イベントの時刻。

時刻は次のいずれかの形式で返されます。

HHMMSSXXXX HH = 時間、MM = 分、SS = 秒、XXXX = 秒の小数部分
HHMMSSXXXXXX  HH = 時間、MM = 分、SS = 秒、XXXXXX = 秒の小数部分
gen-data A252 一般データ
event-data A252 イベント固有データ
seq.-number I4 レコードのシーケンス番号。

関数 N にのみ適用されます(上記参照)。

取得機能は、RDCSIZE バッファでのデータ記録を暗黙的に停止します。 記録を再開するには、次に示す関数 S を使用します。

トレースの記録の停止と再開

RDCSIZE バッファでデータのトレースの記録を停止または再開するには、次のステートメントを使用して CMRDC を呼び出します。

CALL 'CMRDC' function

次のパラメータが渡されます。

パラメータ フォーマット/長さ 説明
function A1

使用可能な関数:

S RDCSIZE バッファをクリアし、トレースの記録を再開します。
P トレースの記録を停止します。

トレースの記録のイベントタイプの選択

デフォルトでは、トレースの記録にすべてのイベントが選択されます。 特定のイベントのみを記録する場合は、この関数を使用します。

注意:
この関数では、RDCSIZE バッファにデータが記録されるイベントのみが選択されます。 ユーザー出口に渡されるデータには影響を与えません。 また、トレースの記録のステータス(開始/停止)にも影響を与えません。

記録するイベントのタイプを選択するには、次のステートメントを使用して CMRDC を呼び出します。

CALL 'CMRDC' function type...

次のパラメータが渡されます。

パラメータ フォーマット/長さ 説明
function A1

使用可能な関数:

T トレース記録のイベントを選択します。
type A1、A2、A3

データ収集イベント」で示した、記録するイベントのタイプの 1 文字または 2 文字のイベントコード

必要なイベントコードの任意の数のパラメータを指定します。

または、イベントの範囲を選択することも、イベントを選択しないこともできます。

ALL すべてのイベント。
value* value で始まるイベントコードを持つすべてのイベント。
例えば、P* では、プログラムタイプのすべてのイベント PL、PS、および PT が選択されます。
空白 空白文字ではイベントは選択されません。

User-Defined イベント

ユーザー定義イベントを指定するには、次のステートメントを使用して CMRDC を呼び出します。

CALL 'CMRDC' function record

次のパラメータが渡されます。

パラメータ フォーマット/長さ 説明
function A1

使用可能な関数:

U ユーザー定義トレースイベント。
record Annn 最大 250 バイトの長さ(nnn)のトレース記録

トレースのステータスの取得

トレースのステータスを取得するには、次のステートメントを使用して CMRDC を呼び出します。

CALL 'CMRDC' function status types

次のパラメータが渡されます。

パラメータ フォーマット/長さ 説明
function A1

使用可能な関数:

C トレースのステータスを取得します。
status A1

現在のトレースのステータス:

S トレースはアクティブです。
P トレースは非アクティブです。
types Ann

現在設定されているイベントタイプの 2 文字のイベントコード(「トレースの記録のイベントタイプの選択」を参照)。

すべてのイベントタイプに十分なスペースを提供するには、types 変数に 64 バイトの最小長(nn)が必要です。

このパラメータは任意指定です。

CMRDC リターンコード

コード 意味
0 機能は正常に実行されました。
4

最後のトレース記録
関数 F および G にのみ適用されます(上記参照)。

8 この関数のパラメータが少なすぎます。
12 ファンクションコードが正しくありません。
16 Natural Data Collector は非アクティブです。例えば、RDCSIZE=0 です。
20 エラーの後、Natural Data Collector は無効になっています。
24 トレースの記録に使用できるバッファスペースがありません(RDCSIZE=2 以下)。
28

パラメータ値が正しくありません。
関数 T および N にのみ適用されます(上記参照)。

ライブラリ SYSRDC のプログラム例

Natural システムライブラリ SYSRDC には、次のプログラム例が含まれています。

プログラム 機能
RDCDISP RDCSIZE バッファ内のすべてのレコードを表示し、プログラムで指定されたフィールドを示します。 次の「プログラム RDCDISP の出力例」も参照してください。
RDCSTART トレースの記録を再開します。
RDCSTOP トレースの記録を停止します。
RDCSET トレース記録のイベントを選択します。
RDCUSER ユーザー定義イベント。
RDCSTAT トレースのステータスを取得します。

プログラム RDCDISP の出力例

次の画面例は、プログラム例 RDCDISP によって生成された出力レポートの抽出を示しています。

 ETIME1   TY  GCUID   LV   GPGM   T  GCAPL    PRLIB    PRNAM   CO  DB   FN  RC 
--------- -- -------- -- -------- - -------- -------- -------- -- ---- ---- ---
                                                                               
   0.0000 SI SAG                    SYSTEM                                     
   0.0002 DB SAG                    SYSTEM                     OP   10         
   0.0002 DA SAG                    SYSTEM                     OP   10         
   0.0000 DB SAG                    SYSTEM                     S1   10 1640    
   0.0005 DA SAG                    SYSTEM                     S1   10 1640    
   0.0001 PL SAG                    SYSTEM   SYSLIB   MAINMENU                 
   0.0001 PS SAG       1 MAINMENU F SYSTEM   SYSLIB   MAINMENU      10 1640    
   0.0001 PL SAG       1 MAINMENU   SYSTEM   SYSLIB   NAT00029                 
   0.0000 DB SAG       1 MAINMENU   SYSTEM                     S1   10 1640    
   0.0002 DA SAG       1 MAINMENU   SYSTEM                     S1   10 1640    
   0.0000 PS SAG       2 NAT00029 N SYSTEM   SYSLIBS  NAT00029      10 1640    
   0.0000 CB SAG       2 NAT00029   SYSTEM            CMMPP    S               
   0.0000 CA SAG       2 NAT00029   SYSTEM            CMMPP    S               
   0.0000 PT SAG       2 NAT00029 N SYSTEM   SYSLIBS  NAT00029                 
   0.0000 PL SAG       1 MAINMENU   SYSTEM   SYSLIB   USR2003P                 
   0.0000 PS SAG       2 USR2003P N SYSTEM   SYSLIB   USR2003P      10 1640    
   0.0001 PT SAG       2 USR2003P N SYSTEM   SYSLIB   USR2003P                 
   0.0000 CB SAG       1 MAINMENU   SYSTEM            CMUB     S

次の表で、画面例に表示される列およびそれらの列で参照される変数について説明します。 詳細については、プログラムソースのコメントおよびローカルデータエリア RDCDATA を参照してください。 示されている Natural システム変数の詳細については、『システム変数』ドキュメントを参照してください。

説明
ETIME1 現在のイベントと前のイベントの実行の間隔(秒単位)。
TY データ収集イベント」で示したイベントのタイプ。
GCUID Natural システム変数 *USER によって割り当てられた現在の Natural ユーザー ID。
LV プログラムレベル。
GPGM Natural システム変数 *PROGRAM によって割り当てられた現在のプログラムの名前。
T プログラムのタイプ。
GCAPL Natural システム変数 *APPLIC-ID によって割り当てられた現在のアプリケーションライブラリの ID。
PRLIB

プログラムが格納されるライブラリの ID。
例えば、イベントコード PL などのプログラムタイプのイベントに適用されます。

PRNAM イベントのタイプについてロードされるプログラムの名前。
CO データベースコマンド。
DB データベース ID。
FN データベースのファイル番号。
RC データベースのレスポンスコード。

Top of page