[掲示板に戻る]
データ部1単位領域の大きさ 640Xi 2010-3-24 18:14 |
Re:データ部1単位領域の大きさ 富山清風 2010-3-24 19:21 |
Re:データ部1単位領域の大きさ 640Xi 2010-3-24 20:05 |
Re:データ部1単位領域の大きさ 桃太郎 2010-3-25 11:59 |
Re:データ部1単位領域の大きさ 640Xi 2010-3-25 21:31 |
Re:データ部1単位領域の大きさ 温泉好きのうさぎ 2010-3-26 0:53 |
Re:データ部1単位領域の大きさ 640Xi 2010-3-26 10:03 |
区分化の件、 桃太郎 2010-3-26 15:39 |
Re:データ部1単位領域の大きさ 640Xi 2010-3-26 9:58 |
1 | データ部1単位領域の大きさ |
640Xi 2010-3-24 18:14
[返信] [編集] いつもありがとうございます。 1点教えて下さい。 COBOLプログラムをコンパイルすると、 「F N0004 データ部の1単位領域の大きさが 64K バイトを超えた」というFATALエラーが発生しました。 本メッセージの通り、データ部は非常に大きいのですが、 どの項目も外すに外せない項目なので苦慮しています。 何とかコンパイルを通したいのですが、裏技などありましたら 教えて下さい。 |
|
2 | Re:データ部1単位領域の大きさ |
富山清風 2010-3-24 19:21
[返信] [編集] 苦労していますね。 小生は下記の方法により対応していますが、 640Xiさんの場合の当てはまるかどうかは、わかりませんが・・・ 内容: もともと、「TBL-AREA」だったのですが「TBL-AREA-1」、「TBL-AREA-2」、・・・「TBL-AREA-6」と分けて対応しています。 01レベル1ヶのバイト数が64Kを超えないように分割しています 参考になれば幸いですが・・・ 以上
|
|
3 | Re:データ部1単位領域の大きさ |
640Xi 2010-3-24 20:05
[返信] [編集] 富山さん、早速のレスありがとうございます。 私も、富山さんと同様に、01レベル1ヶのバイト数が 64Kを超えた場合は、作業領域を分割しています。 (コンパイルエラーが出てから対応していますが。。) その際のエラーメッセージは、 「F F0041 単位領域の大きさが 64K バイトを超えている」 です。 このエラーメッセージの場合は、どの作業領域がサイズオーバー かを、コンパイラが行潤・ナ教えてくれます。 しかし、今回のエラーメッセージ、 「F N0004 データ部の1単位領域の大きさが 64K バイトを超えた」 は様子が違い、どの作業領域がサイズオーバーなのか教えてくれません。 もしかしたら、確認漏れで01レベル1ヶのバイト数が64Kを超えている のかも、と、見直してみましたが、制限を超えてはいませんでした。 DATA部全体で 64K を超えるとNGなのか?とも思いましたが、 それでは、他のプログラムも余裕で制限を超えてしまいます。 同じようなエラーメッセージですが、2種類あるところから、 意味合いが違うような気もします。 勉強不足ですみませんがヒントでも構いませんので お気づきの点を教えていただければと思います。 |
|
4 | Re:データ部1単位領域の大きさ |
桃太郎 2010-3-25 11:59
[返信] [編集] こんにちは、桃太郎と申します。 もしかしたら、そのプログラムは入力系とかでPROCEDUREのステップ数の 多いものではないですか? そうだとしたら、PROCEDUREの中で64Kバイトを超えている可能性が考えられます もしそうだとしたら区分化機能で回避することが出来ます。 PROCEDUREの中をSECTION文で区切るだけです、 詳しくはCOBOL85プログラミング手引書の区分化機能の項をご覧下さい。 参考になれば良いのですけど? |
|
5 | Re:データ部1単位領域の大きさ |
640Xi 2010-3-25 21:31
[返信] [編集] 桃太郎さん、ご回答ありがとうございます。 ご指摘の通り、入力系で、ステップ数が多いものです。 区分化機能は設定していたのですが、もっと細かく区分してみます。 後程、結果を報告します。ありがとうございました。 |
|
6 | Re:データ部1単位領域の大きさ |
温泉好きのうさぎ 2010-3-26 0:53
[返信] [編集] COBOLの時代なら手続き部での区分化は必要でしたが、COBOL85になってからは、64KBを越えたらコンパイラが自動的に区分化してしまうので、明示的にSECTIONで分ける必要は無いはずです。 従って、#LINKでオーバレイなど特殊なリンク方法をとらないのであれば、手続き部のSECTIONは全て取り払って、区分化をコンパイラにまかせてしまったほうが良いと思います。 |
|
7 | Re:データ部1単位領域の大きさ |
640Xi 2010-3-26 9:58
[返信] [編集] 桃太郎さん、おはようございます。 区分化を再度見直し、細分化しましたところ、 エラーがなくなりました。 ありがとうございました。 |
|
8 | Re:データ部1単位領域の大きさ |
640Xi 2010-3-26 10:03
[返信] [編集] 温泉好きのうさぎさん、おはようございます。 本プログラムは、COBOL74で作成されております。 本来であれば、COBOL85へ組み替えしなければいけませんが、 私の怠慢でできておりません。 実は、温泉好きのうさぎさんのご回答の下記仕様を知りませんでした。 とても魅力的ですので、本プログラムと、他にCOBOL74で構築している プログラムをCOBOL85へ組み替えていきます。 >「COBOL85になってからは、64KBを越えたらコンパイラが自動的に区 > 分化してしまうので、明示的にSECTIONで分ける必要は無い」 有益な情報をありがとうございました。 |
|
9 | 区分化の件、 |
桃太郎 2010-3-26 15:39
[返信] [編集] 温泉好きのうさぎさん、こんにちは。 3100時代にCOBOL85で64KBを超えたらエラーになっていたので、 そう思っていましたが、温泉好きのうさぎさんのコメントを読んで 改めて現在の600で同じプログラムをSECTION文を外して 同じパラメーターでコンパイルしてみたところ、 エラーが出ないですね、 良いことを教えて頂き、ありがとう御座います。 長年携わっていると、思い込みと惰性で仕事をしているものですから(^^ゞ |
BluesBB ©Sting_Band