アプリケーション移行の課題 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

アプリケーション移行の課題

アプリケーションを から EBCDIC に移行するときはASCII、アプリケーション内のEBCDIC依存関係を分析して軽減することをお勧めします。これには、ソースコードの依存関係の分析とシーケンスの照合が含まれます。

ソースコードの依存関係

ソースコードが から に変換されると、これらの文字が変更されるため、数値を表すために使用される文字を確認することが重要ですEBCDICASCII。一部のメインフレームプログラマーは、次の例に示すように、コピーブックまたは作業ストレージのCOMPフィールド内の数値データを表すために、次の手法を使用します。

01 CHAR-74        PIC 99 COMP VALUE "¢".

ではEBCDIC、前の例の値は X「41」 (数値として「74」) です。ソースデータが に変換されるとASCII、この文字は X「5B」 (数値として「91」) に変更されます。この変更によってコンパイラの問題は発生しませんが、デバッグが困難なプログラミング上の問題が発生する可能性があります。次の例は、ソースを実際の数値を含むように変更する効果的なソリューションを示しています。

01 CHAR-74        PIC 99 COMP VALUE 74.

また、次の例のように、埋め込まれた 16 進文字が使用されているかどうかを確認することを推奨します。

IF WS-DATA(1:1) = X"5B" …

ではEBCDIC、前の例では、フィールドの最初の文字をテストして、それが「$」であるかどうかを調べています。「$」のASCII表現は X「24」です。次の例は、目的の文字を使用する効果的なソリューションを示しています。

IF WS-DATA(1:1) = "$" …

すべての X"nn" 値が問題を引き起こすわけではありません。例えば、定数 LOW-VALUE は X「00」、 HIGH-VALUE は X「FF」です。LOW-VALUES (X「00」) は通常、署名なしバイナリフィールドの初期化に使用されます。例えば、次のステートメントは変更の必要がありません。

MOVE ALL X"00" TO WS-DATA

HIGH-VALUES (X「FF」) は、レコードが SORTまたは の末尾に配置され、ファイルの末尾にマークを付けるために、データマーカーとして使用されることがあります。例えば、次のステートメントは変更の必要がありません。

MOVE ALL X"FF" TO WS-DATA

上記のステートメントはどちらも、 EBCDICまたは ASCII環境で同じように動作します。

照合順序

ではEBCDIC、アルファベット文字が数値の前に続きます。ではASCII、数値はアルファベットの前にあります。したがって、 の英数字キーフィールド、VSAMまたはアルファベットと数値の混合を含むデータベースは、移行後に異なる順序でデータを返します。照合順序の影響をアプリケーションレベルで分析して、正しい修復戦略を決定することを推奨します。

次の表は、英数字データの簡単な例と、このデータを EBCDIC および でソートする方法を示していますASCII。

EBCDIC

ASCII

A1

1A

A2

2B

1A

A1

2B

A2

 照合順序は、以下の結果に影響します。

  • VSAM キー付きアクセス (注: VSAMファイルは、ファイルが作成される照合順序の順序でデータを返します。 EBCDIC 照合シーケンスを使用するようにCOBOLプログラムがコンパイルされていても、ASCII照合シーケンスで構築されたVSAMファイルはASCII、照合シーケンスを使用してデータを返します。 ASCII 照合シーケンスは、アプリケーションの問題を引き起こす可能性があります。)

  • 内部関数または外部SORT関数

  • 条件ステートメント

  • SQL カーソル (: SQLカーソルは、照合シーケンスがDECLAREステートメントで定義されていない限り、データベースが作成される照合シーケンスの順序でデータを返します。 EBCDIC 照合シーケンスを使用するようにCOBOLプログラムがコンパイルされていても、ASCII照合シーケンスを使用して構築されたデータベースはASCII、照合シーケンスを使用してデータを返します。 ASCII 照合シーケンスは、アプリケーションの問題を引き起こす可能性があります。)

照合順序の依存関係は、アプリケーションだけでなく物理世界にも及ぶ可能性があります。例えば、倉庫内のストレージビンのバーコードは、 EBCDIC値を使用して順序付けることができます。アプリケーションを に変更するにはASCII、ストレージビンのバーコードを物理的に変更する必要があります。