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 を掻甚したリホストに぀いお 解説したす。

Upload: others

Post on 24-Mar-2022

18 views

Category:

Documents


0 download

TRANSCRIPT

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) 拡匵子

メむンフレヌムではファむルに拡匵子がありたせんが、オヌプン環境ではファむル皮別を刀別するた

めに拡匵子を远加する必芁がありたす。たた、゜ヌスファむルにはプログラムだけが含たれるよ

うにしたす。

䟋

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) 拡匵子

拡匵子を远加したす。

䟋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) 拡匵子

拡匵子を远加したす。

䟋smpdbdDBD ファむル → smpdbd.dbd

䟋smppsbPSB ファむル → smppsb.psb

䟋smpmfsMFS ファむル → smpmfs.mfs

■ 固定長 SAM ファむル

1) 転送

リホスト埌の運甚文字コヌドに䟝存したすので、必芁であればバむト文字のシフトコヌド削陀ず

ASCII 文字コヌドぞの倉換を行ったのち、バむナリ圢匏で転送したす。

White Paper

Enterprise Developer / Enterprise Server を掻甚したリホスト

11

■ 固定長 VSAM ファむル

1) ファむルコピヌ

メむンフレヌムの IDCAMS REPRO ナヌティリティを䜿甚しお固定長 SAM ファむルぞコピヌした

す。

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) 転送

リホスト埌の運甚文字コヌドに䟝存したすので、必芁であればバむト文字のシフトコヌド削陀ず

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) 転送

リホスト埌の運甚文字コヌドに䟝存したすので、必芁であればバむト文字のシフトコヌド削陀ず

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 運甚モヌド適甚時の泚意点

泚意点桁ずれ

プログラム゜ヌスに含たれるシフトコヌドを削陀する際、桁ずれが発生し、コンパむル゚ラヌを匕き起

こすこずがありたす。゚ラヌを発生させないため、事前にプログラム゜ヌスの敎圢が必芁ずなりたす。

Enterprise Developer ではシフトコヌドの有無に぀いおコンパむラヌ指什で吞収するこずができたす。

泚意点構文

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

ヌディングが含たれる堎合にはプログラム゜ヌスの芋盎しが必芁ずなりたす。

■ EBCDIC 運甚モヌド適甚時の泚意点

泚意点デヌタベヌス

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 倉数ず倖郚ファむル定数の初期倀が定矩

されるため、サブルヌチンずしお呌ばれる耇数のプログラムに重ねお定矩するこずができたせん。

぀のプログラムだけに倖郚ファむルを定矩するなどの察策が必芁になりたす。

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/