ユーティリティ SYSRDC は、Natural アプリケーション内の内部プロセスフローに関するデータのモニタリングおよび計算を記録するために使用します。 このデータは、外部プログラムまたは Natural プログラムの Natural セッション活動を評価する場合に使用できます。 データは、Natural 内で実行されたイベントで収集されます。
「SYSRDC ユーティリティ」ドキュメントでは、次のトピックについて説明します。
SYSRDC ユーティリティには、データを収集してその後の処理用に提供するためのコンポーネントが用意されています。次のセクションでは、これらのコンポーネントをリストして説明します。
Natural ニュークリアスの一部としての Natural Data Collector:
RDCSIZE バッファでデータを収集し、データ記録を制御します。
ユーザー出口:
データを外部モニタリングプログラムおよび計算プログラムに渡します。
CMRDC インターフェイス:
Natural プログラム内の現在の Natural セッション用のデータを評価します。
Natural 内のアクティビティを指定するイベント。 次の表に、Natural 内でデータを収集するイベントおよび使用可能なイベントのタイプを示します。
イベントの各タイプには、1 文字か 2 文字のイベントコードが割り当てられています。最初の文字はイベントのタイプを表し、2 番目の文字はサブタイプを表します。
例えば、イベントコード PL で、P はイベントタイプ "プログラム" を表し、L はサブタイプ "ロード" を表します。
内部トレースコールイベントをアクティブにするには
Natural プロファイルパラメータ ITRACE=ON を指定します。
次の方法によって、内部トレースコールを発行する Natural コンポーネントを定義します。
Natural パラメータモジュールの NTTRACE マクロを使用。
または、ダイナミック Natural プロファイルパラメータ TRACE を使用。
NTTRACE マクロおよび ITRACE パラメータと TRACE パラメータの詳細については、『パラメータリファレンス』ドキュメントを参照してください。
Natural Data Collector がイベントで収集するデータについては、次のセクションで説明します。
データのレイアウトの詳細については、Natural ソースデータセット NAMRDC、または Natural システムライブラリ SYSRDC に提供されているローカルデータエリア RDCDATA を参照してください。
収集されるデータは、一般データとイベント固有データの 2 つのカテゴリに分類されます。
次の一般データは、すべてのイベントで収集されます。
Software AG 製品名
製品バージョン
オペレーティングシステム
TP モニタ
Natural ニュークリアスとバッファプールのアドレッシングモードや常駐モードなどの実行モード。
TP ユーザーまたはバッチジョブ名
TP 端末 ID
現在の Natural ユーザー ID
現在の Natural Security ユーザーグループ ID
現在の Natural ライブラリ
現在の Natural プログラム、
現在のプログラムレベル、
現在実行されているプログラムステートメントの行番号。
次のデータは、次のイベントでのみ収集されます。
イベント | データ要素 |
---|---|
セッションの初期化 | なし |
セッションの終了 |
終了リターンコード。 |
プログラムのロード |
ロードされるプログラムの名前。 |
プログラムの開始/終了 |
プログラムタイプ。 |
データベースコール |
データベースタイプ。 |
端末 I/O |
送信されるバイト数。 |
Natural 以外のプログラムのコール |
呼び出されたプログラムの名前。 |
ランタイムエラー |
Natural システムエラーメッセージコード。 |
内部トレース |
Natural ニュークリアスコンポーネントに関する最大 250 バイトの情報。 |
RPC 要求 | RPC-specific 情報:
環境:C = クライアント、S = サーバー。 RDC サブタイプ S: RDC サブタイプ O および I: |
ユーザー定義イベント | 最大 250 バイトのユーザー定義情報。 |
Natural Data Collector は、Natural プロファイルパラメータ RDCSIZE によってアクティブ化され、制御されます(『パラメータリファレンス』ドキュメントも参照)。
このパラメータでは、Natural Data Collector の RDCSIZE バッファのサイズ(KB 単位)が決定され、トレースの記録が制御されます(該当するセクションを参照)。
デフォルトでは、パラメータは RDCSIZE=0 に設定されます。この場合、Natural Data Collector は非アクティブになります。
Natural Data Collector をアクティブにするには
RDCSIZE=2 に設定します。
Natural Data Collector はアクティブになり、収集されたデータがユーザー出口に供給されます。 データは RDCSIZE バッファに記録されません。
データを RDCSIZE バッファに記録する方法については、次の「トレースの記録」を参照してください。
収集されたイベントデータは、常にユーザー出口に供給され、外部モニタリング/計算プログラムで使用されます(該当するセクションを参照)。 現在の Natural セッションのイベントデータは、ユーザー出口を使用せずに RDCSIZE バッファに記録できます。 この機能は、テストの目的に使用すると便利です。 このセクションでは、RDCSIZE バッファへのデータの記録をトレースの記録と呼びます。
トレースの記録は、セッションの開始時に開始され、セッションの終了時に終了します。 RDCSIZE バッファに記録されたデータには、同じセッション内の任意の Natural プグラムからアクセスできます。
RDCSIZE バッファはラップアラウンドモードでデータが記録されます。つまり、バッファがいっぱいになると、最も古い記録が上書きされます。 セッションの終了時に、バッファの内容は削除されます。
トレースの記録は、プロファイルパラメータ RDCSIZE でアクティブにされます(『パラメータリファレンス』ドキュメントの該当するセクションも参照)。 このパラメータでは、RDCSIZE バッファのサイズも決定されます。
トレースの記録をアクティブにし、使用するには
Natural プロファイルパラメータ RDCSIZE を 2 より大きい値に設定します。
次の式を使用して、RDCSIZE バッファに収まるレコードの数を計算します。
11 * (RDCSIZE - 2) = レコードの数 |
現在の Natural セッションについて収拾されたすべてのイベントデータは、RDCSIZE バッファに記録されます。
「CMRDC インターフェイスの呼び出し」の説明に従って、CMRDC インターフェイスを使用し、RDCSIZE バッファの内容を取得します。
必要に応じて、CMRDC インターフェイスを使用して、停止または再開、および RDCSIZE バッファでのトレースの記録を実行し、データを記録するイベントを指定したり、「CMRDC インターフェイスの呼び出し」で説明されている追加機能を実行します。
イベントデータは、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 つのイベントにのみサポートされます。
データベースコールの前。ここでは、コントロールブロックに格納された Adabas レスポンスコードをレジスタ 15 に格納できます。Adabas コールは実行されません。
プログラムの起動時。ここでは、Natural エラーメッセージコードをレジスタ 15 に格納できます。プログラムは実行されませんが、指定した数でエラー条件が発生します。
次のユーザー出口プログラムの例が、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 インターフェイス。 |
CMRDC アプリケーションプログラミングインターフェイスは、RDCSIZE バッファに記録されたトレースデータを取得および制御するために使用されます。 この機能は、テストの目的に使用すると便利です。
CMRDC インターフェイスを呼び出すには
Natural プログラムで、CALL ステートメントを発行します。
CMRDC インターフェイスで使用できる機能および対応する Natural CALL ステートメントに適用される構文については、次のセクションで説明します。
また、Natural システムライブラリ SYSRDC には、プログラム例および該当するローカルデータエリア RDCDATA が含まれています。
以降のセクションでは、次の項目について説明します。
RDCSIZE バッファからデータを読み込むには、次の Natural ステートメントを使用して CMRDC を呼び出します。
CALL 'CMRDC' function event-time gen-data event-data
seq.-number |
次のパラメータが渡されます。
パラメータ | フォーマット/長さ | 説明 | ||||||
---|---|---|---|---|---|---|---|---|
function | A1 |
使用可能な関数:
|
||||||
event-time |
N10 |
イベントの時刻。 時刻は次のいずれかの形式で返されます。
|
||||||
gen-data | A252 | 一般データ | ||||||
event-data | A252 | イベント固有データ | ||||||
seq.-number | I4 | レコードのシーケンス番号。
関数 N にのみ適用されます(上記参照)。 |
取得機能は、RDCSIZE バッファでのデータ記録を暗黙的に停止します。 記録を再開するには、次に示す関数 S を使用します。
RDCSIZE バッファでデータのトレースの記録を停止または再開するには、次のステートメントを使用して CMRDC を呼び出します。
CALL 'CMRDC' function |
次のパラメータが渡されます。
パラメータ | フォーマット/長さ | 説明 | ||||
---|---|---|---|---|---|---|
function | A1 |
使用可能な関数:
|
デフォルトでは、トレースの記録にすべてのイベントが選択されます。 特定のイベントのみを記録する場合は、この関数を使用します。
注意:
この関数では、RDCSIZE バッファにデータが記録されるイベントのみが選択されます。 ユーザー出口に渡されるデータには影響を与えません。 また、トレースの記録のステータス(開始/停止)にも影響を与えません。
記録するイベントのタイプを選択するには、次のステートメントを使用して CMRDC を呼び出します。
CALL 'CMRDC' function type... |
次のパラメータが渡されます。
パラメータ | フォーマット/長さ | 説明 | ||||||
---|---|---|---|---|---|---|---|---|
function | A1 |
使用可能な関数:
|
||||||
type | A1、A2、A3 |
「データ収集イベント」で示した、記録するイベントのタイプの 1 文字または 2 文字のイベントコード。 必要なイベントコードの任意の数のパラメータを指定します。 または、イベントの範囲を選択することも、イベントを選択しないこともできます。
|
ユーザー定義イベントを指定するには、次のステートメントを使用して CMRDC を呼び出します。
CALL 'CMRDC' function record |
次のパラメータが渡されます。
パラメータ | フォーマット/長さ | 説明 | ||
---|---|---|---|---|
function | A1 |
使用可能な関数:
|
||
record | Annn | 最大 250 バイトの長さ(nnn)のトレース記録 |
トレースのステータスを取得するには、次のステートメントを使用して CMRDC を呼び出します。
CALL 'CMRDC' function status types |
次のパラメータが渡されます。
パラメータ | フォーマット/長さ | 説明 | ||||
---|---|---|---|---|---|---|
function | A1 |
使用可能な関数:
|
||||
status | A1 |
現在のトレースのステータス:
|
||||
types | Ann |
現在設定されているイベントタイプの 2 文字のイベントコード(「トレースの記録のイベントタイプの選択」を参照)。 すべてのイベントタイプに十分なスペースを提供するには、types 変数に 64 バイトの最小長(nn)が必要です。 このパラメータは任意指定です。 |
コード | 意味 |
---|---|
0 | 機能は正常に実行されました。 |
4 | |
8 | この関数のパラメータが少なすぎます。 |
12 | ファンクションコードが正しくありません。 |
16 | Natural Data Collector は非アクティブです。例えば、RDCSIZE=0 です。 |
20 | エラーの後、Natural Data Collector は無効になっています。 |
24 | トレースの記録に使用できるバッファスペースがありません(RDCSIZE=2 以下)。 |
28 |
Natural システムライブラリ SYSRDC には、次のプログラム例が含まれています。
プログラム | 機能 |
---|---|
RDCDISP | RDCSIZE バッファ内のすべてのレコードを表示し、プログラムで指定されたフィールドを示します。 次の「プログラム RDCDISP の出力例」も参照してください。 |
RDCSTART | トレースの記録を再開します。 |
RDCSTOP | トレースの記録を停止します。 |
RDCSET | トレース記録のイベントを選択します。 |
RDCUSER | ユーザー定義イベント。 |
RDCSTAT | トレースのステータスを取得します。 |
次の画面例は、プログラム例 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。 |
PRNAM | イベントのタイプについてロードされるプログラムの名前。 |
CO | データベースコマンド。 |
DB | データベース ID。 |
FN | データベースのファイル番号。 |
RC | データベースのレスポンスコード。 |