DB2 ECM では、ネストされた COBOL プログラムおよび PL/I 外部ルーチンがサポートされますが、場合によっては、追加の DB2 コンパイラ指令オプションの指定が必要になります。
ネストされていない COBOL プログラムの場合、BND ファイルの形式の DB2 インターフェイス コードが生成され、DB2 LUW パッケージにバインドされます。BND およびパッケージ ファイルのベース名は、どちらもデフォルトではソース ファイルのベース名になります。このベース名は、PACKAGE 指令を使用して代替名を指定することでオーバーライドできます。詳細については、「PACKAGE」を参照してください。
ネストされたプログラムの場合は、次の DB2 ECM 指令のいずれかを使用して、単一のソース ファイルに対する DB2 インターフェイス コードの生成方法を定義できます。これらの指令は相互に排他的であり、特定のソース ファイルに対していずれか 1 つしか指定できません。
生成される BND ファイルおよびパッケージの名前は、PACKAGE 指令で MULTI_PACKAGE のほかにもパラメーターを指定したかどうかによって異なります。
例 1:MULTI_PACKAGE を指定して DEMO.cbl をコンパイル
生成される BND およびパッケージ ファイルの名前は、ネストされた各プログラムのプログラム ID に基づきます。メイン プログラムの BND ファイルおよびパッケージの名前は、ソース ファイルのベース名に基づきます。
例 2:MULTI_PACKAGE および PACKAGE=TEST を指定して DEMO.cbl をコンパイル
BND ファイルおよびパッケージの名前は、次のようにパッケージ名を含む名前に変更されます。
プログラム ID | 生成される BND ファイルの名前 | 生成されるパッケージの名前 |
---|---|---|
MAIN | DEMO | TEST |
SUB1 | TESTSUB1 | TESTSUB1 |
SUB2 | TESTSUB2 | TESTSUB2 |
この指令の使用の詳細については、「MULTI_PACKAGE」を参照してください。
EXEC SQL 文を使用するネストされたプログラムがソース ファイルに複数ある場合は、プログラム ID を指定して IGNORE-NESTED を指定できます。プログラム ID を指定すると、そのプログラムが検出された時点で、そのプログラムのみについて DB2 インターフェイス コードの生成が開始されます。生成される BND およびパッケージ ファイルのベース名は、指定したプログラム ID と同じになります。
EXEC SQL 文を使用するネストされたプログラムがソース ファイルに複数ある場合にプログラム ID を指定せずに IGNORE-NESTED を指定すると、プログラム ID がソース ファイルのベース名と一致するプログラムが DB2 ECM で特定されます。この場合、生成される BND およびパッケージ ファイルのベース名は、ソース ファイルのベース名と同じになります。
この指令の使用の詳細については、「IGNORE-NESTED」を参照してください。