Technical FAQ - Server Express (開発環境)

質問一覧:

1.1 デバッグ方法
1.2 マルチスレッド対応
1.3 cobrun、cobrun32、cobrun64とcobrun_t、cobrun32_t、cobrun64_tの違いは?
1.4 汎用機のダンプ解析に匹敵する機能
1.5 COPY句の優先順位
1.6  大容量ファイルの扱い
1.7 ファイルハンドラ構成ファイルの記述方法


1.1 デバッグ方法

質問:

デバッキングモードによるデバッグ方法は?

回答・回避策:

IDENTIFICATION DIVISION.に SOURCE-COMPUTER. 計算機名 WITH DEBUGGING MODE.と宣言することにより、7カラム目に""D""を設定した行をデバック時に有効・無効にするデバッキンッグ機能をコントールできます。

1.2 マルチスレッド対応

質問:

cobrun とcobrun_t(マルチスレッド対応)の違い。

回答・回避策:

「cobrun」と「cobrun_t」の違いは、「cobrun」はシングルスレッド対応、「cobrun_t」はマルチスレッド対応となっています。

1.3 cobrun、cobrun32、cobrun64とcobrun_t、cobrun32_t、cobrun64_tの違いは?

質問:

"cobrun"",""cobrun32"",""cobrun64""と""cobrun_t"",""cobrun32_t"",""cobrun64_t""の違いは?

回答・回避策:

cobrun に数字を指定しない場合は、コマンド行に指定したアプリケーションが検索され、自動的にそのアプリケーションに適したモードで実行されます。
指定したアプリケーションが検出されなかった場合は、これらのツールは現在の作業モードで実行されます。
例 : cobrun64 myapp.int 
このように指定すると、myapp.int は 64 ビットモードで実行されます。 myapp.int が 32 ビットアプリケーションの場合は、実行エラーになります。
cobrun myapp.int  このように指定すると myapp.int は 32 ビットモードまたは 64 ビットモードのうち、myapp.int がコンパイルされたモードで実行されます。

Server Express の ユーザーズガイドの「第4章 32ビットモードおよび64ビットモードの作業」のところに、解説がありますのでご参考にしてください。

ちなみにインストール時には、32ビットモードおよび64ビットモード双方がはいります。
ディフォルトは32ビットになっています。

また、cobmode コマンドによりモードの切り替えができます。

1.4 汎用機のダンプ解析に匹敵する機能

質問:

ServerExpressにつき、汎用機のダンプ解析機能に匹敵するデバッグ機能があるのか?

回答・回避策:

デバック機能としましては下記のような機能があります。

1.JITデバック:
JIT (Just-In-Time) デバッグとは、プログラムが実行時エラーで終了したときに Animator を起動し、プログラムのデバッグを開始する方法です。この方法を使えば、プログラムの異常発生時の状態を知ることができます。 

2.動的アタッチによるオンデマンドデバッグ: 
開発サイクルの中では、プログラムがハングアップしたり、予期しない形で異常終了したり、あるいは異常な動作に陥る可能性があります。プログラムに問題が発生した時点で Animator を起動できれば、そのような状況に効果的に対処できます。それを可能にするのが、動的アタッチメントデバッグです。

3.CBL_DEBUGBREAK ルーチン:
CBL_DEBUGBREAK は実行時ライブラリルーチンの 1 つです。このルーチンをCOBOL プログラム内で使用すると、同ルーチンが呼び出された時点で、呼び出した行から Animator によるデバッグが開始されます。

4.FaultFinder: 
FaultFinder とは、プロダクションアプリケーションのデバッグを支援するユーティリティです。このユーティリティを使用すれば、アプリケーションが異常終了した場合の情報を、テキストベースの状態レポートとして取得できます。

1.5 COPY句の優先順位

質問:

UNIX上でのCOPY句の優先順位はどのようになっているのか。

回答・回避策:

COBCPY 環境変数の設定により下記のようなコントロールをします。

COBCPY 環境変数は、単純な COPY ファイル名が、指定されたライブラリ、またはデフォルトのライブラリで検出されなかった場合、検索対象ディレクトリをコンパイラに追加指定します。
COBCPY は、修飾された COPY ファイル名を指定した場合は作用しません。

COBCPY のフォーマットは次のようになっています。

COBCPY=pathname[:pathname]...

pathname の部分には、コンパイラおよび Animator がコピーファイルを検索する場合の、検索対象ディレクトリを指定します。 

たとえば、コマンド行で次のように指定します。 

COBCPY=""/usr/group/sharedcopy:.:/usr/mydir/mcpy""
export COBCPY

コピーファイルは、まず/usr/group/sharedcopy、次にカレントディレクトリ、最後に/usr/mydir/mcpy の順で、各ディレクトリで検索されます。コンパイラは、適切なコピーファイルを検出するか、または該当するコピーファイルがないと認識するまで検索を続行します。

1.6 大容量ファイルの扱い

質問:

4 GBを超える大容量ファイルは扱えるのですか?

回答・回避策:

可能です。ただし、デフォルトの設定では、4 GBを超えるファイルのアクセスはエラーになります。

大容量ファイルを使用するためには、ファイルハンドラ構成ファイルで FILEMAXSIZE=8 と指定する必要があります。

設定方法の詳細は、マニュアルの「ファイル処理」>「第6章:ファイルハンドラの構成」をご覧ください。

なお、システムで使用できるファイルサイズの最大値は、OS で制限されています。最大値を変更するために必要な OS のコマンド、及び操作手順については,お使いの OS のマニュアルをご参照ください。

1.7 ファイルハンドラ構成ファイルの記述方法

質問:

大容量ファイルを使用するため、ファイルハンドラ構成ファイルに”FILEMAXSIZE=8”と記述をするのですが、ファイルハンドラが動作しません。索引ファイルの場合も”IDXFORMAT=8”と記述しますが動作しません。

回答・回避策:

マニュアルの「ファイル処理」>「第6章:ファイルハンドラの構成」にある、ファイルハンドラ構成ファイルの記述方法は具体的に以下のようにしてください。

ファイルハンドラ構成ファイル(extfh.cfg)の記述例

**********************

[XFH-DEFAULT]

FILEMAXSIZE=8

**********************

索引ファイルの場合の記述例

**********************

[XFH-DEFAULT]

FILEMAXSIZE=8
IDXFORMAT=8

**********************

戻る

-----