Hitachi

COBOL2002 Professional Tool Kit データ影響波及分析ガイド


1.5 データ影響波及分析を使用するときの注意

データ影響波及分析を使用するときの注意です。

同名のプログラムが複数存在する場合の注意

同名の最外側プログラムまたは利用者定義関数が存在する場合,CALL文や利用者定義関数の参照では同名のプログラムがすべて呼び出されるものと仮定された解析結果になります。実際にはありえない実行可能ファイルの中のプログラムが,ほかの実行可能プログラムやDLLから呼び出される解析結果になることもあります。

データ影響波及分析の画面にこのような結果が表示されている場合は,「6.5 解析結果の表示を絞り込む」の手順で,不要なプログラムの表示を除外してください。

複数のサブシステムを調査対象とする場合の注意

複数のサブシステムを調査対象にすると,同名のプログラムが存在する可能性が高くなります。複数のサブシステムを調査対象とする場合は,次のケースに限定して使用してください。

実行文の順序に関する注意

データ影響波及分析では,プログラムの制御フローは解析しません。このため,実行文の実行順序では影響がないはずのデータ項目が影響を受ける表示になることがあります。

(例)

次の文の並びの場合,プログラムの実行ではCはAの影響を受けません。

MOVE B TO C.
MOVE A TO B.

しかし,制御フローを解析しないため,分析では次の文の並びと同じ扱いになります。

MOVE A TO B.
MOVE B TO C.

このため,CはAの影響を受ける扱いになります。

データ影響波及分析の画面にこのような結果が表示されている場合は,「6.5 解析結果の表示を絞り込む」の手順で,不要なプログラムの表示を除外してください。

サブシステム内のソースファイルが大量にある場合の注意

サブシステム内のソースファイルが大量にあり,調査対象データ項目の影響が多岐に及んでいる場合,解析に時間が掛かることがあります。

この場合,次の方法で1回の解析で処理されるCOBOLソースファイルを減らしてください。

COBOLソースファイルのフィルタリングについては,「5.2.1 COBOLエディタから影響波及を解析する」,「5.2.2 Windowsのプログラム一覧から影響波及の解析を開始する」および「付録A.1 プログラム情報フィルタリングファイル」を参照してください。

データ影響波及分析の性能を確認するため,パフォーマンスログを取得できます。パフォーマンスログは,環境変数CBLDIA_PERFORMANCELOGを指定すると取得できます。解析が正常終了またはエラー終了した時点で,読み込まれたCOBOLソースファイルの解析情報の一覧が出力されます。この内容を参照して,不要なCOBOLソースファイルを選択してください。パフォーマンスログについては,「13.2 パフォーマンスログを参照する」を参照してください。

データベース作成時と影響波及調査時のソースファイルの同期の注意

データ影響波及分析用データベースの作成時のCOBOLソースファイルと影響波及調査時に参照するCOBOLソースファイルは,同じ内容である必要があります。データベースを作成したあとで,COBOLエディタなどでCOBOLソースファイルを変更した場合は,変更したソースファイルを再解析してデータ影響波及分析用データベースを更新してください。開発マネージャでは「ビルド」を使うことで,cbldraコマンドでは-Quickオプションを使うか,または変更したソースファイルだけをコマンドに指定すると,変更したCOBOLソースファイルだけを更新できます。ただし,内容は変更されないで,ファイルのタイムスタンプだけが変更になっている場合は,そのまま影響波及を調査できます。

データ影響波及分析で実行する同期チェックを次に示します。

影響波及調査ウィンドウの場合
  • 調査環境の設定直後

    分析範囲のすべてのサブシステム内にあるCOBOLソースファイルに対して,タイムスタンプをチェックします。タイムスタンプがデータベース作成時と異なるファイルや存在しないファイルがあった場合,警告のメッセージダイアログが表示されます。解析を続行するか終了するかを選択してください。

  • 影響範囲の解析中

    影響範囲の解析で使用するCOBOLソースファイルや登録集原文ファイルのサイズがデータベース作成時と異なる場合と,ファイルが存在しない場合は,エラーメッセージダイアログが表示されます。ダイアログを閉じると,解析を中止して[調査環境の設定]画面が表示されます。

  • 影響範囲解析の終了後(解析結果の調査中)

    解析結果の調査中にCOBOLソースファイルや登録集原文ファイルを開くと,ファイルのタイムスタンプが解析を開始した時点(登録集原文ファイルはデータベース作成時点)と異なる場合は,警告のメッセージダイアログが表示され,ファイルを開く操作がキャンセルされます。ファイルが存在しない場合は,警告のメッセージダイアログが表示され,ファイルを開く操作がキャンセルされます。

cbldiaコマンドの場合
  • 調査環境の設定直後

    分析範囲のすべてのサブシステム内にあるCOBOLソースファイルに対して,タイムスタンプをチェックします。タイムスタンプがデータベース作成時と異なるファイルや存在しないファイルがあった場合,エラーメッセージが表示されてプログラムが中止します。ただし,-Forceオプションを指定していた場合は,メッセージが表示されないで処理が続行します。

  • 影響範囲の解析中

    影響範囲の解析で使用するCOBOLソースファイルや登録集原文ファイルのサイズがデータベース作成時と異なる場合と,ファイルが存在しない場合は,エラーメッセージが表示されてプログラムが中止します。

デッドコードがCOBOLソースファイルに含まれる場合の注意

データ影響波及分析では,デッドコードを検知しません。そのため,実際には実行されないプログラムや影響がないはずのデータ項目も影響を受ける扱いになることがあります。

例1:

次のプログラムを実行してもCALL文に制御が到達することはないため,プログラムSUBにはAの影響は波及しません。

MOVE A TO B.
STOP RUN.
CALL SUB USING BY REFERENCE B.

しかしデータ影響波及分析ではデッドコードを検知しないため,CALL文が実行されるものとして扱われ,プログラムSUBにAの影響が波及している扱いになることがあります。

例2:

次のプログラムを実行しても「MOVE B TO C」に制御が到達することはないため,CはAの影響を受けません。

MOVE A TO B.
STOP RUN.
MOVE B TO C.

しかしデータ影響波及分析ではデッドコードを検知しないため,「MOVE B TO C」が実行されるものとして扱います。そのため,CはAの影響を受ける扱いになります。

プログラム呼び出し関連図の画面上に,例1のように実行されないプログラムが影響ありとして表示されている場合や,影響波及関連図の画面に例2のような結果が表示されている場合は,「6.5 解析結果の表示を絞り込む」の手順で,デッドコード部分への影響を除外して再表示してください。

データ影響波及分析用データベースの運用に関する注意

COBOLソースファイルを繰り返し解析していると,組み込みデータベース内で領域の断片化が発生し,データ影響波及分析用データベースの作成・更新の処理が遅くなることがあります。その場合は,次の方法でデータベースのデータを整理してください。

組み込みデータベースにトラブルが起こった場合,DBユティリティのeaunsetupコマンドとeasetupコマンドで,組み込みデータベース全体の再セットアップが必要になることがあります。その場合,格納されていたデータは削除されるため,次のどちらかの手順で復旧してください。