Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 言語解説書


レコード間の遊びバイト

バッファーで処理されるブロック化論理レコードがファイルに含まれており、 そのいずれかのレコードが SYNCHRONIZED 節を指定された 2 進項目を含んでいる場合は、 レコード間に遊びバイトを必要なだけ追加して適切に位置合わせすることにより、 パフォーマンスを向上させることができます。

レコード内のすべての基本データ項目の長さ (すべての遊びバイトを含めて) を加算します。 (可変長レコードの場合には、カウント・フィールド用にさらに 4 バイトを 追加する必要があります。) 次に、 この合計をレコード内の基本項目のいずれかに対応する m の最高値で除算します。

r (剰余) が 0 であれば、遊びバイトは不要です。 r が 0 でなければ、遊びバイトとして m - r バイトが必要です。 これらの遊びバイトは、 レコードの終わりにレベル 02 の FILLER を記述することによって指定することができます。

以下のようなレコード記述があるとします。

01  COMP-RECORD.
    05  A-1    PICTURE X(5).
    05  A-2    PICTURE X(3).
    05  A-3    PICTURE X(3).
    05  B-1    PICTURE S9999  USAGE COMP SYNCHRONIZED.
    05  B-2    PICTURE S99999 USAGE COMP SYNCHRONIZED.
    05  B-3    PICTURE S9999  USAGE COMP SYNCHRONIZED.

A-1、A-2、および A-3 のバイト数の合計は 11 です。 B-1 は 4 桁の COMPUTATIONAL 項目ですから、遊びバイトとして 1 バイトが B-1 の前に加えられる必要があります。このバイトを加えると、B-2 の前にあるバイト数の合計は 14 になります。B-2 は、長さが 5 桁の COMPUTATIONAL 項目ですから、その前に遊びバイトとして 2 バイトなければなりません。B-3 の前には遊びバイトは不要です。

上記の考察によって書き換えたレコード記述項目は、今度は次のようになります。

01  COMP-RECORD.
    05  A-1            PICTURE X(5).
    05  A-2            PICTURE X(3).
    05  A-3            PICTURE X(3).
   [05  SLACK-BYTE-1   PICTURE X.   INSERTED BY COMPILER]
    05  B-1            PICTURE S9999 USAGE COMP SYNCHRONIZED.
   [05  SLACK-BYTE-2   PICTURE XX.  INSERTED BY COMPILER]
    05  B-2            PICTURE S99999 USAGE COMP SYNCHRONIZED.
    05  B-3            PICTURE S9999  USAGE COMP SYNCHRONIZED.

COMP-RECORD には合計 22 バイトありますが、上記の規則により、 m = 4 および r = 2 となります。したがって、ブロック化レコードの適切な位置合わせを得るには、レコードの終わりに遊びバイトを 2 バイト加えなければなりません。

したがって、最終的なレコード記述項目は、次のようになります。

01  COMP-RECORD.
    05  A-1             PICTURE X(5).
    05  A-2             PICTURE X(3).
    05  A-3             PICTURE X(3).
   [05  SLACK-BYTE-1    PICTURE X.   INSERTED BY COMPILER]
    05  B-1             PICTURE S9999 USAGE COMP SYNCHRONIZED.
   [05  SLACK-BYTE-2    PICTURE XX.  INSERTED BY COMPILER]
    05  B-2             PICTURE S99999 USAGE COMP SYNCHRONIZED.
    05  B-3             PICTURE S9999  USAGE COMP SYNCHRONIZED.
    05  FILLER          PICTURE XX.  [SLACK BYTES YOU ADD]

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)