Micro Focus Enterprise Developer / Enterprise Server

37
White Paper Micro Focus Enterprise Developer Micro Focus Enterprise Developer / Enterprise Server を活用したリホスト IBM メインフレームは現在も世界のビジネストランザクションの主要な部分を担い 日々稼働し続けています。メインフレーム上の基幹システムは、多くの企業にとってそ の業務の心臓部分を担うものであり、欠くことのできない経営資源となっています。 しかしながら、メインフレームアプリケションの稼動には多大な運用コストが必要であ り、さらに周辺システムでのデータ利用にも制約があるため、既に多くの企業が基幹シ ステムをオープン環境に移行しています。 Micro Focus Enterprise Developer / Enterprise Server は実績ある既存の COBOL や PL/I 資産を活用したオープン環境へのリホストを実現する開発/実行環境製品です。 Enterprise Developer の COBOL コンパイラーは IBM メインフレームのコンパイ ラー各種バージョンに対して高い互換性を持ち、PL/I コンパイラーは常に機能拡張を 行い高い互換性を目指しています。さらに Enterprise Server が備える JES、CICS、 IMS のミドルウェアエミュレーション機能によりオープン環境移行後も JCL、EXEC CICS 構文、CBLTDLI /PLITDLI 構文などを利用できるので、アプリケーションの品質 を損なうことなく最小限の移行コストでメインフレーム撤廃を実現します。 また、Enterprise Developer / Enterprise Server は Visual COBOL / COBOL Server の全機能を含むので、リホスト後の先進的な資産活用も追加投資なしで可能です。 当文書では、Enterprise Developer / Enterprise Server を活用したリホストについて 解説します。

Transcript of Micro Focus Enterprise Developer / Enterprise Server

White Paper

Micro Focus Enterprise Developer

Micro Focus Enterprise Developer / Enterprise Server を活用したリホスト

IBM メインフレームは現在も世界のビジネストランザクションの主要な部分を担い

日々稼働し続けています。メインフレーム上の基幹システムは、多くの企業にとってそ

の業務の心臓部分を担うものであり、欠くことのできない経営資源となっています。

しかしながら、メインフレームアプリケションの稼動には多大な運用コストが必要であ

り、さらに周辺システムでのデータ利用にも制約があるため、既に多くの企業が基幹シ

ステムをオープン環境に移行しています。

Micro Focus Enterprise Developer / Enterprise Server は実績ある既存の COBOL

や PL/I 資産を活用したオープン環境へのリホストを実現する開発/実行環境製品です。

Enterprise Developer の COBOL コンパイラーは IBM メインフレームのコンパイ

ラー各種バージョンに対して高い互換性を持ち、PL/I コンパイラーは常に機能拡張を

行い高い互換性を目指しています。さらに Enterprise Server が備える JES、CICS、

IMS のミドルウェアエミュレーション機能によりオープン環境移行後も JCL、EXEC

CICS 構文、CBLTDLI /PLITDLI 構文などを利用できるので、アプリケーションの品質

を損なうことなく最小限の移行コストでメインフレーム撤廃を実現します。

また、Enterprise Developer / Enterprise Server は Visual COBOL / COBOL Server

の全機能を含むので、リホスト後の先進的な資産活用も追加投資なしで可能です。

当文書では、Enterprise Developer / Enterprise Server を活用したリホストについて

解説します。

White Paper

Micro Focus Enterprise Developer

目次

1. 「リホスト」の定義........................................................................................................... 1

2. モダナイゼーション支援製品の名称 ....................................................................................... 1

3. モダナイゼーション支援製品の機能分布 ................................................................................. 2

4. 周辺機能 ......................................................................................................................... 2

5. リホスト後のイメージ ........................................................................................................ 3

■ プレゼンテーション ........................................................................................................ 3

■ アプリケーション ........................................................................................................... 3

■ トランザクション処理 ..................................................................................................... 3

■ ジョブコントロール ........................................................................................................ 4

■ データ管理 ................................................................................................................... 4

■ OS ............................................................................................................................. 5

■ ハードウェア ................................................................................................................ 5

6. リホストの工程 ................................................................................................................ 5

■ 準備フェーズ ................................................................................................................ 6

■ 分析・設計フェーズ ........................................................................................................ 6

■ 開発フェーズ ................................................................................................................ 6

■ テストフェーズ .............................................................................................................. 7

■ 移行フェーズ ................................................................................................................ 7

7. メインフレーム資産の転送方法 ............................................................................................ 7

■ プログラム、コピー句、JCL、プロシージャファイル ................................................................ 8

■ CICS 資源定義 ................................................................................................................ 8

■ IMS トランザクション定義 ................................................................................................ 9

■ IMS DBD, PSB, MFS ファイル ......................................................................................... 10

■ 固定長 SAM ファイル .................................................................................................... 10

■ 固定長 VSAM ファイル .................................................................................................. 11

■ 可変長 SAM, VSAM ファイル .......................................................................................... 12

■ IMS データベース .......................................................................................................... 13

8. Enterprise Developer を利用する利点 ................................................................................ 14

■ COBOL コンパイラー方言指定 ........................................................................................ 14

■ PL/I コンパイラー指定 .................................................................................................. 14

■ JCL 機能 .................................................................................................................... 15

■ CICS 構文 .................................................................................................................. 15

■ IMS DB/DC ................................................................................................................ 15

■ 開発支援機能 .............................................................................................................. 16

■ ステップ実行 .............................................................................................................. 16

White Paper

Micro Focus Enterprise Developer

■ デフォルト静的解析 ...................................................................................................... 17

9. コンパイラーの違い......................................................................................................... 18

■ COBOL 構文の差異 ........................................................................................................ 18

■ COBOL 実行時挙動の差異 ................................................................................................ 18

■ PL/I の差異 .................................................................................................................. 19

10. ファイル情報認識の違い ................................................................................................... 20

11. コード体系の違い ........................................................................................................... 20

■ ASCII 運用モード適用時の注意点 ...................................................................................... 21

■ EBCDIC 運用モード適用時の注意点 ................................................................................... 21

12. エンディアン形式の違い ................................................................................................... 21

■ CPU アドレッシング方式に依存する COBOL データ形式 ........................................................ 21

■ CPU アドレッシング方式に依存しない COBOL データ形式 ..................................................... 22

■ CPU アドレッシング方式に依存する PL/I データ形式 ............................................................ 22

13. PL/I リホストにおける注意点 ............................................................................................ 23

■ ビットモードの選択 ...................................................................................................... 23

■ コンパイルとリンクコマンド ........................................................................................... 23

■ PL/I コーディングの注意点 ............................................................................................ 25

■ コンパイラオプション指定の注意点 .................................................................................. 27

■ 生成されるファイル ...................................................................................................... 28

■ マイグレーション:Web サービスの利用 ........................................................................... 29

■ COBOL プログラムと PL/I プログラムの混在 .................................................................... 30

14. Enterprise Developer チュートリアルと例題 ....................................................................... 33

15. おわりに ....................................................................................................................... 34

補足:稼働環境 .................................................................................................................... 34

1) OS ........................................................................................................................... 34

2) プロセッサ ................................................................................................................. 34

3) システムの種類 ............................................................................................................ 34

4) Micro Focus 製品 バージョン ......................................................................................... 34

各機能の詳細に関しては、製品マニュアルページからご利用になるバージョンを選択後、内容をご確認ください。

https://www.microfocus.co.jp/

[サポート] > [COBOL・エンタープライズ製品のカスタマーケア:詳細をみる] > [製品マニュアル]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

1

1. 「リホスト」の定義

「リホスト」という言葉の意味は様々な解釈がありますが、当文書では「IBM メインフレームの既存資産を

有効活用するため、それらを出来るだけ修正せずにオープン環境へ移行してメインフレームの運用や開発に

かかるコストの削減を目指す方法」とします。

2. モダナイゼーション支援製品の名称

COBOL, PL/I コンパイラーを含む開発環境製品は Enterprise Developer であり、開発用 Enterprise

Server インスタンスを内蔵しています。一方、COBOL, PL/I ランタイムのみを含む実行環境製品は

Enterprise Server であり、本番用 Enterprise Server インスタンスを内蔵しています。Enterprise Server

インスタンスは、例えば JCL を対象としたバッチ用、CICS などのオンライン用など、運用用途に合わせて

複数設定することが可能です。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

2

3. モダナイゼーション支援製品の機能分布

Enterprise Developer は JCL, CICS, IMS のエミュレーション機能を持つリホストをターゲットとした製

品です。また、Visual COBOL を包括した上位製品のため、将来的には COBOL ソースをそのまま

Java, .NET 言語で作られたプログラムと連携して稼働させることも可能となります。また、常に最新技術

に追随するよう製品をアップデートしており、Docker コンテナ内で COBOL アプリケーションを動作させ

ることも可能になりました。

4. 周辺機能

メインフレームではセキュリティ機能、監視などの周辺機能がデフォルトで提供されますが、Enterprise

Server インスタンスにはベンダーロックインを防ぐ意味においても自由にツールを選択できるようこれら

の機能を内包していません。オープン環境向けのツールには無料のものや求めるレベルに応じた有償のもの

など様々な選択肢があり、Enterprise Server インスタンスはこれらの外部ツールと連携する機能を備えて

います。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

3

5. リホスト後のイメージ

実際に Enterprise Developer を使用してリホストを行った結果、何がどのように変化するのかをイメージ

していただくために、大きく機能分類したステップ例を基に概要を説明します。

■ プレゼンテーション

リホスト後は 3270 端末の接続先をメインフレームから Enterprise Server インスタンスが持つポー

ト番号へ変更します。ユーザーが使用する画面はメインフレーム接続時と同様のため、ユーザートレー

ニングの必要がありません。

■ アプリケーション

リホストの対象は COBOL, PL/I です。COBOL 標準言語仕様に則ったコーディングであればそのまま

使用可能です。PL/I は COBOL と異なり、一部未サポート構文1がありますが製品のバージョンアップ

のたびに機能拡張を重ねています。

アセンブラや EASY などは 他開発言語に書き換える必要があります。

■ トランザクション処理

CICS, IMS といったトランザクション処理は Enterprise Server インスタンスが TP モニターの役割

1 製品マニュアル)[Micro Focus Enterprise Developer] > [リファレンス] > [Mainframe Reference] > [Open PL/I リファレンス] > [Open

PL/I Language Reference Manual] > [Open PL/I でサポートされていない機能]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

4

を持つため、他にツールを用意する必要はありません。運用者は Web ベースの管理画面からリスナー

やプロセスを監視することになります。PCT などの CICS リソース定義はコマンドで一括登録するか、

管理画面から個別登録が可能です。

■ ジョブコントロール

Enterprise Server インスタンスには JCL のエミュレーション機能が搭載されており、Web ベースの

管理画面から JCL の実行結果をスプールで確認することや、データセットをカタログすることが出来

ます。運用者はこの管理画面を基本として結果を確認し、異常終了があった際にはログを参照し、出力

したダンプファイルなどから原因を追究することになります。

管理画面)

スプール画面)

■ データ管理

リホスト後も標準ファイルである SAM, VSAM などのファイルに関するプログラム記述はそのまま使

用できます。データファイル自体は、固定長 SAM ファイルはそのまま、固定長 SAM ファイル以外と

IMS データベースはメインフレーム上で一定のファイル形式に変換後、バイナリ形式でオープン環境へ

転送します。オープン環境では Micro Focus 形式のヘッダ情報を持つファイルへ Enterprise

Developer に内包されているコマンドを利用して書き換える必要があります。また、XA スイッチモジ

ュールを介してデータベースへの接続も可能です。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

5

■ OS

リホスト後は Linux, UNIX, Windows などオープン環境の OS2 となります。

■ ハードウェア

Enterprise Developer はインストールする OS に依存するため、対応可能な OS が載っているオープ

ンサーバーやクラウドにおいて稼働が可能です。

6. リホストの工程

現状と将来像をイメージして実際にリホストを決断しても、その計画内容によっては手戻りが発生したり、

想定外の機能が後々発覚したり、スケジュールの遅延につながる事象が発生することがあります。これらの

リスクを軽減するためにも事前にリホストの工程を綿密に計画し、丁寧に実施することが大切です。次の表

にリホストを実施する際の一般的な工程を示し、各フェーズの実施概要を説明します。

2 https://www.microfocus.co.jp/mfproducts/enterprise/faq/#101

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

6

■ 準備フェーズ

1) なぜリホストを行うのか、これによって何が得られるのかをチーム全体で共有します。

2) メインフレームとオープンサーバーの OS による違いや環境の違いなどを理解し、より効果が得ら

れるリホストの対象システムを決定します。この際に簡易的な PoC を実施することも検討します。

3) 対象システムが決定したのちはリホストにかかる総コストや、このコストが何年で回収可能である

かなどの試算を行い、本番稼働時期の目標を決定します。

■ 分析・設計フェーズ

1) リホスト対象システム内で使用されていない資産の洗い出し、リホスト出来ない言語のプログラム

本数、その機能内容を調査するなど、移行作業のコストを少しでも削減するために機能内容を把握

しながら対象の資産を選別します。

2) オープンサーバーへ移行できない資産や不足する機能をどのような方法で補うのか、厳密に移行設

計します。移行設計に伴い運用設計も作成します。

3) Enterprise Server インスタンスは ASCII 文字コードまたは EBCDIC 文字コードでデータを運

用することが可能なため、どちらを選択するか決定します。例えばお客様と EBCDIC 文字コード

データの受け渡しが多いなどの理由から EBCDIC モードを選択するなど業務内容に合わせて決定

します。詳細については後述の「11.コード体系の違い」をご参照ください。

4) メインフレームのコンパイラー指令を精査し、Enterprise Developer ではどのようなコンパイラ

ー指令を指定するのかを決定します。

5) 調査時に判明する特徴的な機能をピックアップしてプロトタイプを作成し、Enterprise Developer

を使用した PoC を実施します。

6) PoC の結果を受けて変更するべき移行設計と運用設計を改修します。

■ 開発フェーズ

1) メインフレームでは EBCDIC 文字コードを持つプログラムソース類やデータを使用しますが、オ

ープン環境に合わせてプログラムソース類は ASCII 文字コードへ変換し、データ類は移行設計に

合わせた文字コードでオープン環境へ転送を行います。

2) 開発環境にインストールされた Enterprise Developer を使用して、計画されたコンパイラー指令

を指定後、コンパイルを行います。

3) 開発担当者による単体テストやステップ実行、デバッグを開発用 Enterprise Server インスタンス

を利用して実施し品質を保ちます。Enterprise Developer にはカバレッジ機能や簡易的な静的解

析機能も含まれています。

4) 単体テスト完了後は開発用 Enterprise Server インスタンス に向けて JCL の実行、外部ツール

との連携などのテストも実施します。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

7

■ テストフェーズ

1) 例として、Windows 開発環境の他に Linux 本番環境と同等のスペックを持つ Linux テスト環境

と Linux ステージング環境を用意すると想定します。

2) 開発環境と異なる OS を持つテスト環境ではプログラムソース類を転送後、再コンパイルを行い、

一定の照合テスト結果が正常であれば Enterprise Server がインストールされたステージング環

境へ実行ファイルを転送します。

3) ステージング環境では本番を想定した結合テスト、システムテストを実施し、正常な結果を得たの

ち実行ファイルを本番環境へ転送します。

■ 移行フェーズ

1) リホスト後の運用手順や、必要であればユーザートレーニングなどの教育を行います。

2) サービスインを実施し、必要であればメインフレームとの並行テストの結果を比較し確認します。

3) オープンサーバーへ完全に切り換えます。

7. メインフレーム資産の転送方法

準備や設計フェーズを完了して Enterprise Developer を使用したリホストを実施するためには、まずメイ

ンフレームからリホスト対象の資産をオープンサーバーへ転送することから始めます。データファイルはそ

の種類によってメインフレーム上で処理を行う必要がありますので、ファイルの種類別に転送方法と注意点

について説明します。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

8

■ プログラム、コピー句、JCL、プロシージャファイル

1) 転送

ASCII 文字コードへ変換後、テキスト形式で転送します。変換時に固定値の2バイト文字のシフトコ

ードを削除するか否かはリホスト後の運用文字コードに依存します。

2) 拡張子

メインフレームではファイルに拡張子がありませんが、オープン環境ではファイル種別を判別するた

めに拡張子を追加する必要があります。また、1ソースファイルには1プログラムだけが含まれるよ

うにします。

例)

smpsrc(COBOL ソースファイル) → smpsrc.cbl

smpcpy(COPY 句ファイル) → smpcpy.cpy

smppli(PL/I ソースファイル) → smppli.pli

smpinc(PL/I インクルードファイル)→ smpinc.inc

smpjcl(JCL ファイル) → smpjcl.jcl

■ CICS BMS ファイル

1) 転送

ASCII 文字コードへ変換後、テキスト形式で転送します。2バイト文字のシフトコードは変換時に削

除します。

2) 拡張子

拡張子を追加します。

例)smpbms(BMS ファイル) → smpbms.bms

■ CICS 資源定義

1) メインフレームからの抽出

DFHCSDUP EXTRACT コマンドを使用して CBDOUT 出力ファイルを生成します。

2) 転送

出力したファイルを ASCII 文字コードへ変換後、テキスト形式で転送します。

3) 拡張子

拡張子を追加します。

例)samprdt(抽出した資源定義) → samprdt.csd

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

9

4) 登録方法

一括登録

Enterprise Developer に含まれている casrdtup コマンドを使用して一括登録を行います。

例)

casrdtup /f<csd ファイル名> /op<作業フォルダパス名> /r<Enterprise Server インスタンス名>

個別登録

インスタンス管理画面から個別に登録します。

■ IMS トランザクション定義

1) メインフレームからの抽出

IMS ステージ 1 ファイルを利用します。

2) 転送

IMS ステージ 1 ファイルを ASCII 文字コードへ変換後、テキスト形式で転送します。

3) 拡張子

拡張子を追加します。

例)sampims(抽出した資源定義) → sampims.txt

4) IMS トランザクションファイルのエクスポート

Enterprise Developer に含まれている stage1ext コマンド3を使用して IMS ステージ 1 ファイ

ルからトランザクションファイルにエクスポートします。

5) IMS トランザクションファイルのインポート

Enterprise Developer に含まれている stage1imp コマンド4を使用してトランザクションファイル

から imsgen2.dat データファイルにインポートします。

3 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [メインフレームプログラミング] > [IMS サポート] > [リファ

レンス] > [mfims コマンド ライン ユーティリティ] > [mfims エクスポート/インポート] > [mfims stage1ext コマンド]

4 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [メインフレームプログラミング] > [IMS サポート] > [リファ

レンス] > [mfims コマンド ライン ユーティリティ] > [mfims エクスポート/インポート] > [mfims stage1imp コマンド]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

10

■ IMS DBD, PSB, MFS ファイル

1) 転送

ASCII 文字コードへ変換後、テキスト形式で転送します。変換時に2バイト文字のシフトコードは削

除します。

2) 拡張子

拡張子を追加します。

例)smpdbd(DBD ファイル) → smpdbd.dbd

例)smppsb(PSB ファイル) → smppsb.psb

例)smpmfs(MFS ファイル) → smpmfs.mfs

■ 固定長 SAM ファイル

1) 転送

リホスト後の運用文字コードに依存しますので、必要であれば2バイト文字のシフトコード削除と

ASCII 文字コードへの変換を行ったのち、バイナリ形式で転送します。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

11

■ 固定長 VSAM ファイル

1) ファイルコピー

メインフレームの IDCAMS REPRO ユーティリティを使用して固定長 SAM ファイルへコピーしま

す。

2) 転送

リホスト後の運用文字コードに依存しますので、必要であれば2バイト文字のシフトコード削除と

ASCII 文字コードへの変換を行ったのち、バイナリ形式で転送します。

3) 変換

Enterprise Developer に含まれている DFCONV コマンド5を使用してデータファイルを変換しま

す。

5 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [データアクセス] > [データファイルの操作] > [データファイ

ル ツール] > [ファイル変換ユーティリティ] > [DFCONV バッチ ファイル変換]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

12

■ 可変長 SAM, VSAM ファイル

1) ファイルコピー

メインフレームの IDCAMS REPRO ユーティリティを使用して SAM ファイルへコピーします。

2) ファイル変換

メインフレームの SORT ユーティリティを使用して、コピーしたファイルを VRECGEN 形式のファ

イルへ出力します。

3) 転送

リホスト後の運用文字コードに依存しますので、必要であれば2バイト文字のシフトコード削除と

ASCII 文字コードへの変換を行ったのち、バイナリ形式で転送します。

4) 変換

Enterprise Developer に含まれている DFCONV コマンド6を使用してデータファイルを変換しま

す。

6 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [データアクセス] > [データファイルの操作] > [データファイ

ル ツール] > [ファイル変換ユーティリティ] > [DFCONV バッチ ファイル変換]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

13

■ IMS データベース

1) アンロード

メインフレームの DFSRRC00 ユーティリティを使用して IMS データベースをアンロードします。

2) ファイル変換

メインフレームの SORT ユーティリティを使用して、アンロードしたファイルを VRECGEN 形式の

ファイルへ出力します。

3) 転送

リホスト後の運用文字コードに依存しますので、必要であれば2バイト文字のシフトコード削除と

ASCII 文字コードへの変換を行ったのち、バイナリ形式で転送します。

4) 拡張子

転送済みのファイルをコピーして、拡張子を DBU へ変更します。

例)MFIJTF.VARSEQ.VRECGEN → DEMO03DD.DBU

5) GEN

Enterprise Developer に含まれている mfims 生成コマンド7を使用して IMS 関連ファイルを生成

します。

7 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [メインフレームプログラミング] > [IMS サポート] > [リファ

レンス] > [mfims コマンド ライン ユーティリティ] > [mfims 生成] > [mfims 生成コマンド]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

14

8. Enterprise Developer を利用する利点

メインフレームからリホスト対象の資産をオープンサーバーへ転送終了後は Enterprise Developer を使用

した開発フェーズに入ります。業界標準の統合開発環境(以降 IDE)である Eclipse や Visual Studio を使

用することで開発言語や世代を超えた開発環境が整います。もちろんテキストエディターでソースを編集後、

コマンドでコンパイルも可能ですので開発者のスタイルに合わせた選択ができます。まずは Enterprise

Developer ができることを抜粋して説明します。

■ COBOL コンパイラー方言指定

IBM メインフレーム COBOL コンパイラーバージョンによる方言を指定8できます。これにより方言に

沿った指令が暗黙的に指定され、メインフレームとの高い互換性を保つことが可能となります。

注意点)

メインフレームで指定しているコンパイラー指令を精査し、デフォルトと異なる指令が存在する場合

は同様の意味を持つコンパイラー指令を個別に指定する必要があります。

■ PL/I コンパイラー指定

どのミドルウェア制御の下で実行されるのか、MVS, CICS, IMS から選択することでメインフレームと

の互換性を保つことが可能となります。

8 製品マニュアル)[Micro Focus Enterprise Developer] > [リファレンス] > [コンパイラ指令] > [Compiler Directives - Alphabetical List] >

[DIALECT]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

15

■ JCL 機能

JCL エミュレーション機能によりメインフレームで使用していた JCL をオープン環境でも実行できま

す。一般的に使用される IBM JCL ユーティリティの大部分をサポートしており、スプール、カタログ

ファイル、プロシージャ、世代管理ファイルもサポートしています。また、ACCEPT 文による入力要求

もスプール画面にて対応が可能です。

■ CICS 構文

CICS エミュレーション機能により EXEC CICS 構文や、一般的に使用される API, SPI の大部分をサ

ポートしています。3270 端末を開発用 Enterprise Server インスタンスが持つリスナーポートへ接続

するだけでメインフレームと同じ画面が表示されます。BMS 定義もサポートしています。

■ IMS DB/DC

IMS エミュレーション機能により、IMS プログラム構文をサポートしており、データのセグメント構

成も保持できます。MPP, BMP, DLI もサポートしています。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

16

■ 開発支援機能

COBOL エディター、PL/I エディター、JCL エディターを使用することにより、リアルタイムに入力エ

ラーを検出できます。項目定義位置へジャンプすることや、マウスオーバーによる項目定義の確認、転

送先候補の表示も可能です。

■ ステップ実行

COBOL デバッガー、PL/I デバッガーを使用することにより、プログラムのステップ実行や変数の値を

確認できます。また、Enterprise Developer に含まれているカバレッジ機能を利用すれば、通過ロジ

ックは緑、未通過ロジックは赤と色分けされたカバレッジ結果やパーセンテージを確認できます。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

17

PL/I のデバッグは、Eclipse では内部のデバッガーを使用し、Visual Studio では独自のデバッガーを

利用します。カバレッジ機能は Eclipse のみ対応しています。

■ デフォルト静的解析

COBOL ソースは Enterprise Developer にデフォルトで組み込まれている静的解析が利用可能で、コ

ンパイル後にコーディングチェックを目的とした静的解析を行うことができます。また、将来 DevOps

を目指す際には、ソースチェックイン → コンパイル → 静的解析 → デプロイなどのサイクルに組み

込むことが可能になります。追加で解析クエリーを作成するには Micro Focus Enterprise Analyzer9

が必要になります。

次の章からはメインフレーム環境とオープン環境の違いによる注意点や対策を具体的に説明します。

9 https://www.microfocus.co.jp/mfproducts/enterprise/analyzer/

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

18

9. コンパイラーの違い

メインフレームと Enterprise Developer では当然コンパイラーが異なるため、これに起因してコンパイル

エラーが発生する可能性があります。次に示す代表的なエラーが発生するプログラムが存在し、それについ

て Enterprise Developer のサポートがない場合は独自のプリコンパイラーを使用する、もしくはプログラ

ムを修正するなどの対策が必要となります。

■ COBOL 構文の差異

1) 準拠する COBOL 規格が異なる場合10

Enterprise Developer のサポート内容:

コンパイラー指令により EXAMINE などの旧構文を使用可能にします。

2) 古い COBOL コンパイラー方言を使用している場合

3) COBOL 言語仕様としては不正であるがメインフレームコンパイラーが許容している場合

4) 追加された予約語が利用者語と衝突している場合

Enterprise Developer のサポート内容:

REMOVE コンパイラー指令により予約語から排除することが可能です。また、別の予約語に読み

替える指令も用意しています。

5) 特殊構文を使用している場合

Enterprise Developer のサポート内容:

コンパイラー指令を指定することにより PANVALET ++INCLUDE 文などを使用可能にします。

■ COBOL 実行時挙動の差異

COBOL 言語仕様により結果不定と定義されている事柄について、メインフレーム実行時と Enterprise

Server インスタンス実行時の挙動が異なる可能性がある代表的なものを列挙します。

1) ON SIZE ERROR 句が指定されていない桁あふれの結果

Enterprise Developer のサポート内容:

CHECKDIV, HOSTARITHMETIC などのコンパイラー指令により不定の結果を回避可能です。

2) 数値データ項目に数値以外の値が含まれている場合

3) 初期値を設定していないデータを参照する場合

Enterprise Developer のサポート内容:

INIT-BY-TYPE, DEFAULTBYTE コンパイラー指令により初期値を設定することが可能です。

10 製品マニュアル)[Micro Focus Enterprise Developer] > [リファレンス] > [COBOL 言語リファレンス] > [サポートされる COBOL 言語お

よび著作権]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

19

4) 算術結果が異なる場合

Enterprise Developer のサポート内容:

Enterprise Developer では IBM 社が公開している中間結果精度の仕様をシミュレートするコン

パイラー指令を用意しており、これにより互換性を保っています。例えばコンパイラー指令

ARITHMETIC"OSVS" を指定した場合は、OS/VS の規則に則って切り捨てを行うなど、COBOL バ

ージョンの指定に依存して中間結果仕様を適用しています。

■ PL/I の差異

Enterprise Developer が搭載している PL/I は ANSI 1987 規格に準拠した Open PL/I11 が起源とな

っており、IBM メインフレーム PL/I への互換性を追求しながらブラッシュアップしています。

11 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [メインフレームプログラミング] > [PL/I プログラミング] >

[Open PL/I ユーザーガイド]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

20

10. ファイル情報認識の違い

メインフレームではプログラムと JCL のファイル情報(レコード長など)が異なる場合、プログラムの情

報が優先されますが、Enterprise Developer では正確性を保つため JCL 実行時のチェックによりエラーと

なります。プログラムと JCL のファイル情報を一致させる対応をお願いしています。

11. コード体系の違い

メインフレームではプログラムソース類やデータを含めて EBCDIC 文字コードを使用していますが、オー

プンサーバーでは異なる文字コードを使用することになります。Enterprise Developer は一般的に多く使

用されている ASCII/SJIS 文字コードを採用しており、プログラムソース類は ASCII 文字コードにする必

要があります。Enterprise Server インスタンスでは EBCDIC 文字コードを持つデータを扱うことが可能

な EBCDIC モードを 用意しており、業務の内容によりどちらの文字コードを持つデータを扱うか選択が可

能です。

モードの選択にあたっては、オープン環境では他システムとのデータ連携や EBCDIC 文字コードはテキス

トエディターでデータを確認できないなどの理由から ASCII 文字コードを選択されることが一般的ですが、

システムが担う業務がメインフレームとのデータ連携であれば、リホスト後も EBCDIC 文字コードを選択

することも検討します。この運用文字コードをリホストの設計フェーズで決定することになります。

例えば、 ’A’ という 1 バイト文字を表現する 16 進数は EBCDIC 文字コートでは X’C1’ ですが ASCII

文字コードでは X’41’ となります。また、EBCDIC 文字コードでは 2 バイト文字の前後にシフトコードを

必要とするのに対し、ASCII 文字コードではこれを必要としません。この違いから ASCII 文字コードを選

択して運用する場合はデータのシフトコードを削除する必要があり、次の点について注意が必要です。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

21

■ ASCII 運用モード適用時の注意点

注意点1:桁ずれ)

プログラムソースに含まれるシフトコードを削除する際、桁ずれが発生し、コンパイルエラーを引き起

こすことがあります。エラーを発生させないため、事前にプログラムソースの整形が必要となります。

Enterprise Developer ではシフトコードの有無についてコンパイラー指令で吸収することができます。

注意点2:構文)

データにはシフトコードがなくなるため、シフトコードが存在することを前提とした IF X’0E’ などのコ

ーディングが含まれる場合にはプログラムソースの見直しが必要となります。

■ EBCDIC 運用モード適用時の注意点

注意点1:データベース)

SQL 文に大小比較条件が存在する場合、対象データベースも EBCDIC 照合順序を指定して構築する必

要があります。

12. エンディアン形式の違い

バイナリ形式のデータ項目では、メインフレームの CPU はビッグエンディアンを、インテル CPU ではリ

トルエンディアンを採用しています。バイナリ項目のビットを利用した計算を行っている場合などは注意が

必要です。

■ CPU アドレッシング方式に依存する COBOL データ形式

1) USAGE COMPUTATIONAL-5

例)01 A PIC X(4) COMP-5 VALUE 1.

ビッグエンディアン=X‘00000001’ リトルエンディアン=X'01000000'

注意点)

数値データ項目として扱う場合はどちらも 1 のため動作の差異が発生することはありませんが、こ

の項目を集団項目として参照する場合や、この項目を再定義してバイト位置に依存した処理を行う

場合は動作の差異が発生します。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

22

■ CPU アドレッシング方式に依存しない COBOL データ形式

常にビッグエンディアンとなるデータ形式

1) USAGE COMPUTATIONAL

2) USAGE BINARY

3) USAGE COMPUTATIONAL-4

4) USAGE COMPUTATIONAL-X

注意点)

インテルアドレッシング方式と COBOL の形式が異なるため、他開発言語と連携する関数にバイナリ

数値を渡す場合は意図した結果になりません。

■ CPU アドレッシング方式に依存する PL/I データ形式

COBOL と同様にインテル CPU ではリトルエンディアンが採用されますが、コンパイラー指令12でビッ

グエンディアンを保つことができます。

例)2 AAA BIT(01),

12 製品マニュアル)[Micro Focus Enterprise Developer] > [プログラミング] > [メインフレームプログラミング] > [PL/I プログラミング] >

[Open PL/I ユーザーガイド] > [Open PL/I の使用] > [プログラムのコンパイル] > [コンパイラ オプション]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

23

13. PL/I リホストにおける注意点

Micro Focus Enterprise 製品をご利用いただくことにより、リホストを目的とした IBM メインフレーム

PL/I アプリケーションのオープン化を実現することができます。ただし、一部未サポートの PL/I 構文13や

実装形式の違いがあり、この点において注意が必要になります。この章では、よくあるご質問をもとに、そ

の注意点やコンパイルとリンクの方法を説明します。製品のバージョンアップに伴い利用可能な構文や機能

が追加されますので、サポート内容については必ずご利用バージョンに合った製品マニュアルをご確認くだ

さい。

補足)

開発環境製品である Micro Focus Enterprise Developer は COBOL と PL/I 両方のコンパイラーを提供

しますが、実行環境製品である Micro Focus Enterprise Server は COBOL ランタイムのみ、もしくは PL/I

ランタイムのみという製品を選択することも可能です。

■ ビットモードの選択

64 ビットマシン上では 32 ビットまたは 64 ビットのどちらかを選択して実行可能ファイルを生成する

ことができます。プラットフォームにより対応が異なりますので、詳細は製品マニュアルをご確認くだ

さい。

バージョン 6.0 の例)

32、64 ビット両方のサポート有:Windows, Solaris (SPARC), Red Hat Linux (Intel), SUSE Linux (Intel)

32 ビットのみサポート有:AIX

サポートなし:Solaris(Intel), HP-UX Itanium , z/Linux

■ コンパイルとリンクコマンド

統合開発環境(IDE)である Eclipse , Visual Studio を利用すれば、コマンドを意識する必要なく PL/I

プロジェクトのプロパティ指定に沿ってコンパイルとリンクが実行されますが、 makefile やスクリプ

トによるコンパイルやリンクを行う場合はコマンドを使用することになります。

製品ではプリプロセッサによるマクロや INCLUDE の展開、

コンパイラーによるオブジェクトファイルの生成、

13 製品マニュアル)[リファレンス] > [メインフレームリファレンス] > [Open PL/I リファレンス] > [Open PL/I 言語リファレンス マニュ

アル] > [Open PL/I でサポートされていない機能]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

24

リンカーによる実行可能ファイルの生成など、様々なコマンドとそのオプションを提供しています。

コマンド概要)

1) mfplx:プリプロセッサからリンクまで実行可能なコマンド

PL/I ソースファイルから、プリプロセッサ、コンパイラー、リンカーを経由して実行可能ファイル

を生成します。複数のファイル名を指定でき、mfpli コンパイラオプションのほか、-c および -o な

どの、Linux または Windows システムの標準コンパイラオプションおよびリンカーオプションの

多くを使用できます。コンパイルのみ、リンクのみの実行も可能です。ただし、一部のファイル名

ではサフィックスが .pl1 または .pli に制限されます。

コマンド例 1)

mfplx -db2 -cics sample.pli sample2.pli -#

コマンド例 2)マクロ展開後のソースを保持

mfplx -deb -macro -list -verbose sample.pli -incl -isuffix .inc -nodebuginfo -pp sample.pp

例えば、リンクだけ行いたい場合など、次項に続く各フェーズに対応するコマンドを単体で実行す

ることも可能です。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

25

2) mfpp, mfinclpp 他:プリプロセッサコマンド

マクロなどが展開されたソースファイル(.pp)を生成します。このコマンドを使用することもでき

ますが、mfplx コマンドを利用した -macro オプションの指定によるプリプロセッサの実行を推奨

しています。

コマンド例)

mfpp sample.pli -pp sample.pp

3) mfpli:コンパイルコマンド

オブジェクトファイル(.obj)を生成します。指定できるファイル名は 1 つだけです。サフィック

スに制限はなく、PL/I コンパイラオプションのみ指定可能です。

コマンド例)

mfpli sample.pp -o sample.obj

4) ldpli:リンクコマンド

オブジェクトファイルから実行可能ファイルを生成します。Linux または Windows システムの有

効なリンカーコマンドオプションはすべて受け入れられます。

コマンド例)

ldpli -db2 sample.obj sample2.obj

5) Eclipse や Visual Studio の利用

前述のように、プロジェクトプロパティ指定に沿った実行可能ファイルの生成まで、コマンドを意

識せずに実行することができます。

■ PL/I コーディングの注意点

メインフレームで稼動している PL/I コーディングの解釈と異なる代表的な非互換点を説明します。次

に挙げるコーディングが存在する場合は実際に影響出るか否かなど、確認と対策が必要になります。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

26

1) FIXED BINARY 型の小数点

Micro Focus の PL/I では FIXED BINARY 型の小数点以下をサポートしておりません。そのため

小数点以下を定義しても 0 が格納されます。

2) 静的リンクと動的ロード

Micro Focus の PL/I コンパイラーは、ENTRY 属性のコーディング方法により CALL ステートメ

ントの呼出しを静的リンクもしくは動的ロードと認識して実行可能ファイルを生成します。

静的リンクの呼出しとしてコンパイルするコーディング)

DCL XXXXXX ENTRY;

呼出し先が存在しない場合のエラー発生タイミング)リンク時

動的ロードの呼出しとしてコンパイルするコーディング)

DCL XXXXXX ENTRY OPTIONS(FETCHABLE);

呼出し先が存在しない場合のエラー発生タイミング)実行時

3) 非標準文字の使用

本来、PL/I 言語は識別名に文字 @ を許容していますが、Windows の LINK.exe や Linux の ld

コマンドの仕様に由来する外部シンボルの制限から、Windows の DLL または Linux の .so にリ

ンクして動的 CALL を行う場合にのみ @ を外部シンボルとして使用することができません。また、

$ の使用は、AIX および Solaris では、リンカーが $ 記号とアセンブラを混同するため、正常に

リンクできない可能性があります。

4) 配列のクロスセクション

配列のクロスセクションは、代入文、PUT/GET 文、および以下の組み込み関数でサポートされます。

これ以外の組み込み関数や構造体または共用体の配列のクロスセクションでは予期せぬ結果をもた

らす可能性があります。

サポートされる組み込み関数)

SUM, PROD, ALL, ANY, ABS, HBOUND, LBOUND, BOOL, DIMENSION, UPPERCASE,

LOWERCASE, LEFT, RIGHT, CENTERLEFT, CENTERRIGHT, REVERSE

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

27

5) \ 付きの変数またはラベル

\ または Linux 上のバックスラッシュを使用した変数名やラベル名は PL/I 識別子として認められ

ていないためエラーになります。

■ コンパイラオプション指定の注意点

Micro Focus PL/I コンパイラオプションを使用する際の注意点と、メインフレームと実装形式の相違に

より発生する代表的な非互換を説明します。

1) systemcics, systemims, systemmvs コンパイラオプション:制御指定

OPTIONS(MAIN) プログラムが各ミドルウェア配下で制御されるように指定するものです。個別に

プログラムをコンパイルする場合はメインプログラムだけに指定してください。

2) defext コンパイラオプション:外部ファイルを使用する

この指定をしたプログラムにおいて STATIC EXTERNAL 変数と外部ファイル定数の初期値が定義

されるため、サブルーチンとして呼ばれる複数のプログラムに重ねて定義することができません。

1つのプログラムだけに外部ファイルを定義するなどの対策が必要になります。

3) bigendian コンパイラオプション:エンディアン

デフォルトはバイナリ数値のバイトオーダーをターゲットプラットフォームの CPU 固有のバイト

オーダーに合わせます。このため Intel CPU ではリトルエンディアンと解釈して最適化された高速

なコードを生成しますが、データ形式はメインフレームとは異なってしまいます。このオプション

を指定すると、データ項目に対して NATIVE 属性が明示的に適用されていない限り、すべての

FIXED BINARY、CHARACTER VARYING、GRAPHIC VARYING、および WIDECHAR VARYING 項

目は、ビッグエンディアンと解釈したコードを生成します。これによってメインフレームと互換性

のあるデータ形式となりますが、実行時のオーバーヘッドが発生します。

4) zfloat コンパイラオプション:浮動小数点の桁数

BIN FLOAT 型において、メインフレームでは最大 53 桁に対し Micro Focus Enterprise 製品では

52 桁とされています。これはオープン系プラットフォームでは浮動小数点数が IEEE 方式で扱われ

ていることによるもので、メインフレームとのマシンアーキテクチャの相違による制限事項となり

ます。例えばメインフレームとの互換性を重視して -zfloat コンパイラオプションを使用した場合、

BINARY FLOAT (22) の変数が IEEE 仕様の浮動小数点形式では 4 バイトで格納可能であるにもか

かわらず 8 バイトを要するようになります。リホストに当たって 8 バイトでなければならないよう

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

28

な箇所だけを BINARY FLOAT (23) に書き直すという方法を取ることで、より最適化されたコード

で実行できるようになります。

zfloat コンパイラオプション)

浮動バイナリ単精度のデフォルトを「21」に、浮動バイナリ倍精度の最大値を「53」に指定します。

Micro Focus PL/I のデフォルトは、それぞれ 23 および 52 です。

5) graphic コンパイラオプション:DBCS サポート:

このオプションを指定することで GRAPHIC データ型のサポートを有効にします。ただし、-ebcdic

コンパイラオプションを指定する場合は WCHAR および GRAPHIC データ型はサポートされませ

んので、併用は避けてください。

ebcdic コンパイラオプション)

すべての文字データに対して、EBCDIC 文字エンコードを使用することを指定します。

6) ASCII モードにおける EBCDIC サポート

COBOL ではデータ文字コードを ASCII としながらも EBCDIC 順にソートする機能を提供して

いますが、PL/I においてはソートや比較を EBCDIC で行うコンパイラオプションを提供していま

せん。そのため、お客様自身で組み込み関数を作成するなど対策が必要です。

■ 生成されるファイル

コンパイルやリンクの過程で生成されるファイルを拡張子別に説明します。一部のファイルはコンパイ

ルオプションにより生成されない場合もあります。

1) 実行モジュール:必須ファイル

・ dll (Windows), so (Linux) など … 実行可能ファイル

2) デバッグ関連ファイル:デバッグ時に使用

・ std … 独自デバッガーである CodeWatch が使用するデバッグ情報ファイル

・ pdb … デバッグ情報ファイル

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

29

3) 中間ファイル:実行には不要

・ obj … Windows オブジェクトファイル

・ o … Linux オブジェクトファイル

・ def … リンク定義ファイル

・ exp … エクスポートされる関数やデータの情報ファイル

・ lib … インポートライブラリファイル

・ dcf … デバッグ用データ収集ファイル

4) データレイアウト:開発環境製品に含まれているデータファイルツールで使用

・ adt … レコードレイアウトを生成するための情報ファイル

■ マイグレーション:Web サービスの利用

マイグレーションステップ例)

Micro Focus Enterprise 製品は COBOL 製品の上位製品となり、Web サービス(SOAP または

RESTFul)を実装するための機能を含んでいます。上の図のように、リホスト後のステップとしてマイ

グレーションまで到達できる機能を備えていますが、マイグレーションステップの対象言語は COBOL

言語だけとなり、例えば、Web サービスの API を Client から呼び出す際に入り口として使用できる

のは COBOL プログラムのみとなります。しかし、COBOL プログラムと PL/I プログラムは連携可能

なことから、COBOL から PL/I を CALL することで PL/I プログラムを活かすことができます。

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

30

Web サービスのイメージ)

■ COBOL プログラムと PL/I プログラムの混在

Micro Focus COBOL と PL/I の実行可能ファイルはお互いに呼び出すことができます。この方法と注

意点を説明します。

1) AMODE コンパイラー指令

Micro Focus PL/I は COBOL の AMODE(31) コンパイラー指令に相当するメインフレーム形式

のポインタマッピングをサポートしておらず、常にネイティブ OS の実アドレスとなっています。

そのため、PL/I と COBOL を混在させる場合、COBOL プログラムのコンパイル時に AMODE(31)

や AMODE(24) を指定すると正しく動作しません。これは製品設計上の制限事項となります。

2) COBOL メインプログラムから PL/I サブルーチンの呼出し

① PL/I ランタイムの初期化コーディングの追加

COBOL アプリケーションの制御下で実行される PL/I サブルーチンを使用するには、PL/I プ

ログラムを呼び出す前に PL/I ランタイムを初期化し、終了前にシャットダウンするコーディ

ングが必要です14。

14 製品マニュアル) [プログラミング] > [メインフレーム プログラミング] > [PL/I プログラミング] > [Open PL/I ユーザー ガイド] > [Open

PL/I の使用] > [COBOL アプリケーションからの PL/I サブルーチンの呼び出し]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

31

コーディング例)

また、この PL/I ランタイムの初期化とシャットダウンを使用するためにはリンク時にライブ

ラリの指定が必要です。Eclipse や Visual Studio を利用時もプロパティ設定の画面にて「追

加のリンクファイル」へライブラリを指定します。

Windows ライブラリ) mfplimd.lib

Linux ライブラリ) lmfpliz

補足)

PL/I メインプログラムから COBOL サブルーチンを呼出し、さらに PL/I サブルーチンを呼

び出している場合は、既にメインプログラムにて PL/I ランタイムを使用しているため初期化

とシャットダウンのコーディングは必要ありません。

② 静的リンクで実行可能ファイルを生成する場合

Windows のコマンド例:mfplimd.lib)

cobol CBLMAIN.cbl;

mfplx -c PLISUB.pli -o PLISUB.obj

cbllink CBLMAIN.obj PLISUB.obj mfplimd.lib

Linux のコマンド例:-L$COBDIR/lib -lmfpliz64)

cob -xc CBLMAIN.cbl

mfplx -c -pic PLISUB.pli -o PLISUB.o

cob -z CBLMAIN.o PLISUB.o -L$COBDIR/lib -lmfpliz64

special-names.

call-convention 8 is litlink.

*> PL/I ランタイムの初期化

call litlink '__lpi_init' using by value 0 size 4

by reference argv

by reference argv

by value pli-lang

*> PL/I サブルーチンの呼出し

call 'PLISUB'

*> PL/I ランタイムの終了

call litlink '__lpi_fini_and_return' using

by value pli-lang

by reference pli-retcode

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

32

③ 動的ロードで実行可能ファイルを生成する場合

Windows のコマンド例:mfplimd.lib)

cbllink CBLMAIN.cbl mfplimd.lib

mfplx -dll PLISUB.pli

Linux のコマンド例:-L$COBDIR/lib -lmfpliz64)

cob CBLMAIN.cbl -U -o CBLMAIN.so -L$COBDIR/lib -lmfpliz64

mfplx -dll PLISUB.pli -o PLISUB.so

3) PL/I メインプログラムから COBOL サブルーチンの呼出し

PL/I ランタイムの初期化とシャットダウンのコーディングの追加は必要ありませんが、内部的にラ

イブラリを使用するため前項と同様にライブラリの指定が必要です。

① 静的リンク実行可能ファイルを生成する場合

PL/I プログラムソースの ENTRY 属性に、静的リンクによって COBOL プログラムを呼び出

すことを明示的に記述します。

PL/I のコード例)

DCL CBLSUB ENTRY OPTIONS(COBOL);

Windows のコマンド例:mfplimd.lib)

mfplx -c PLIMAIN.pli -o PLIMAIN.obj

cobol CBLSUB.cbl;

cbllink PLIMAIN.obj CBLSUB.obj mfplimd.lib

Linux のコマンド例:-L$COBDIR/lib -lmfpliz64)

mfplx -c -pic PLIMAIN.pli -o PLIMAIN.o

cob -xc CBLSUB.cbl

cob -z PLIMAIN.o CBLSUB.o -L$COBDIR/lib -lmfpliz64

② 動的ロードで実行可能ファイルを生成する場合

PL/I プログラムソースの ENTRY 属性に、動的ロードによって COBOL プログラムを呼び出

すことを明示的に記述します。

PL/I のコード例)

DCL CBLSUB ENTRY OPTIONS(FETCHABLE,COBOL);

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

33

Windows のコマンド例:mfplimd.lib)

mfplx PLIMAIN.pli

cbllink –d CBLSUB.cbl mfplimd.lib

Linux のコマンド例:-L$COBDIR/lib -lmfpliz64)

mfplx PLIMAIN.pli -o PLIMAIN.so

cob –u CBLSUB.cbl -o CBLSUB.so -L$COBDIR/lib -lmfpliz64

14. Enterprise Developer チュートリアルと例題

Enterprise Developer の製品マニュアルには COBOL と PL/I ユーザーに向けた JCL, CICS, IMS など

の様々なチュートリアル15を準備しています。これらのチュートリアルには IDE を使用したプロジェクトの

作成方法からコンパイル、実行、デバッグまでを具体的に記述しており、例題もダウンロードできます。

15 製品マニュアル)[Micro Focus Enterprise Developer] > [ここからはじめよう] > [Getting Started] > [メインフレーム チュートリアル]

White Paper

Enterprise Developer / Enterprise Server を活用したリホスト

34

15. おわりに

メインフレーム環境では資源を開発者全員で共有するため、急を要するコンパイルは優先度を上げる、変数

の値を確認するためにデバッグ文を入れたプログラムを再コンパイルするなどの開発スタイルを採用してい

ることが多くあります。一方、オープン環境の Enterprise Developer は Eclipse, Visual Studio といった

業界標準の IDE にアドオンする形で COBOL や PL/I 言語の開発環境を提供しますので、他開発言語と同

様の開発スタイルを採用することができます。デバッグもステップ実行が可能になり、変数の値や処理の流

れを動的に確認することが可能になります。また、開発用実行環境の Enterprise Server インスタンスを開

発者ごとに占有することができるため、コンパイルや実行時に他開発者との調整は必要なく、これによる開

発工数の削減も見込めます。

メインフレームの熟練された開発者にとってはメインフレーム環境での開発手法が慣習化され、効率的に作

業が進むことは推測できますが、開発言語の多様化や開発言語の適材適所という視点に立てば IDE を使用

した開発スタイルを導入することも一考する価値があると考えます。

リホストの工程やメインフレーム環境との違いおよび注意点をご理解いただき、Enterprise Developer を

活用したリホストをご検討いただければ幸いです。

補足:稼働環境

本書は下記環境を基に記述しています。

1) OS

Windows 10 Enterprise

2) プロセッサ

Intel® Core™ i7-3770 CPU @ 3.40HGz 3.39 GHz

3) システムの種類

64 ビットオペレーティング システム x64 ベース プロセッサ

4) Micro Focus 製品 バージョン

Micro Focus Enterprise Developer 6.0J for Windows

注意)Micro Focus Enterprise Server 6.0J for Windows と同等の開発用実行環境を含んでいます。

記載の会社名、製品名は各社の商標または登録商標です。

本ホワイトペーパーは 2020 年 11 月に作成したものです。

MFWP-1908-00TA | © 2020 Micro Focus. All rights reserved.

マイクロフォーカス合同会社

https://www.microfocus.co.jp/