6 z/OS上のIMSからUNIX上のOracle Tuxedo Application Runtime for IMS UsersへのCOBOLアプリケーションの移行
z/OS上のIMSの制御の下に実行されているCOBOLアプリケーションを移行するには、次のステップを実行する必要があります。
- ART Workbenchを使用してCOBOLソース・コードを変換します
- z/OS上のIMSマクロに従って、Tuxedo ART for IMSの構成ファイルをカスタマイズします。
- Tuxedo ART for IMSサーバーで構成されているOracle Tuxedoアプリケーションを定義および起動し、3270端末上でトランザクションを送信することで、目的のCOBOLアプリケーションを実行するか、ARTバッチ・ランタイムによってJOBを実行します。
6.1 COBOLプログラムの変換
z/OS上のIMSからのCOBOLソース・プログラムは、最初にART Workbenchによって変換する必要があります。変換後、変換されたソース・プログラムはMicro Focus COBOLまたはCOBOL-ITコンパイラで.gntファイルにコンパイルできます。COBOLソース・プログラムの変換の詳細は、ART Workbenchのドキュメントを参照してください。COBOLソース・プログラムのコンパイルの詳細は、Micro Focus COBOLまたはCOBOL-ITのドキュメントを参照してください。
たとえば、2つのCOBOLソース・プログラムが変換され、コンパイルされます。
DFSIVAP1.cbl (DFSIVAP1.gntにコンパイル)は、MPPプログラムです
DFSIVAP2.cbl (DFSIVAP2.gntにコンパイル)は、BMPプログラムです
.gntファイルは、$COBPATH (Micro Focus COBOL)または$COB_LIBRARY_PATH (COBOL-IT)の下に置く必要があります。
6.2 IMSランタイムでのCOBOLプログラム・デバッグの実装
この項の内容は次のとおりです。
6.2.1 ユースケース1
2人のユーザーが2つのMF BMP COBOLプログラムをそれぞれデバッグします。
ユーザーAがCOBOL Program1をデバッグし、ユーザーBがCOBOL Program2をデバッグする場合、次のステップを実行します。
- COBOLデバッグ情報を次のように
imsdebug.desc構成ファイルに追加します。[cobol] USER=A APPNAME=program1 DEBUGID=myDebugID1 [cobol] USER=B APPNAME=program2 DEBUGID=myDebugID2 - ART IMSサーバーを起動します。
ユーザーAおよびBは、animユーティリティを起動する同じLinuxアカウントで独自のART IMSサーバーを起動します。animユーティリティによって指定される
DEBUGIDのみがデバッグされます。 - animコマンドラインを入力します。
ユーザーAは、端末から
anim %XmyDebugID1というコマンドラインを入力します。ユーザーBは、端末からanim %XmyDebugID2というコマンドラインを入力します。
- COBOLプログラムを起動してデバッグします。
親トピック: IMSランタイムでのCOBOLプログラム・デバッグの実装
6.2.2 ユースケース2
1人のユーザーが1つのトランザクション内のすべてのCIT COBOLプログラムをデバッグします。
ユーザーCがトランザクションtranAでCOBOL Program1およびProgram2をデバッグする場合、次のステップを実行します。
- COBOLデバッグ情報を次のように
imsdebug.desc構成ファイルに追加します。[cobol] USER=C TRANNAME=tranA DEBUGID = 111 - deetコマンドラインを入力します。
ユーザーCは、端末から
Deet -p 111というコマンドラインを入力し、デバッグします。ノート:
デバッグが完了したらデタッチする必要があります。
親トピック: IMSランタイムでのCOBOLプログラム・デバッグの実装
6.3 構成ファイルのカスタマイズ
Tuxedo ART for IMSでz/OS上のIMSから移行されたCOBOLアプリケーションを実行するには、いくつかの重要な構成ファイルを、そのCOBOLアプリケーションに関連するIMSマクロに基づいてカスタマイズする必要があります。
MPPプログラムを実行するには、リスト1に示すプログラムに対応するトランザクション・コードが必要です。
リスト1 imstrans.descの例
[imstran]
name=TRAN1
response=no
edit=ULC
appname=DFSIVAP1
class=1トランザクション・コードTRAN1は、アプリケーションDFSIVAP1に対応しています。
各COBOLアプリケーションは、それがMPPとBMP (BMPT)のどちらのプログラム(TPまたはBATCH)であるかを識別するそれ自体の定義を持っている必要があります。次のリストに、2つのアプリケーションを定義するimsapps.descの例を示します。
リスト2 2つのアプリケーションを定義するimsapps.desc
[imsapp]
name=DFSIVAP1
type=TP
[imsapp]
name=DFSIVAP2
type=BATCHIMSでアプリケーションを実行するには、1つのPSBが必要です。Tuxedo ART for IMSでは、アプリケーションのPSBマクロは.psb構成ファイルにマップされます。MPPプログラムの場合、その.psbファイルの接頭辞はアプリケーション名、つまり、$appname.psbである必要があります。BMPおよびBMPTプログラムの場合、その.psbファイルの接頭辞はIMSアプリケーションのネーミング・ルールに従った任意の名前にすることができます。DFSIVAP1およびDFSIVAP2の.psbファイルを、次に示します。1つのI/O PCBおよび.psbに定義されているPCBは、COBOLプログラムが起動されたときにそのパラメータとしてそのプログラムに渡されます。
リスト3 DFSIVAP1およびDFSIVAP2 .psbの例
DFSIVAP1.psb
[imspcb]
modify=yes
express=no
[imspcb]
modify=yes
express=noDFSIVAP1.psbから、アプリケーションDFSIVAP1には、1つのI/O PCBと2つの代替PCBがその引数として必要であることがわかります。
リスト4 2つの代替PCBを持つDFSIVAP1
DFSIVAPX.psb
[imspcb]
type=GSAM
name=DFSIVD5I
procopt=G
[imspcb]
type=GSAM
name=DFSIVD5O
procopt=LS
[imspcb]
type=GSAM
name=TSTIVD5O
procopt=LSDFSIVAPX.psbから、アプリケーションDFSIVAP2には、1つのI/O PCBと3つのGSAM PCBが必要であることがわかります。
詳細は、『Oracle Tuxedo Application Runtime for IMSリファレンス・ガイド』を参照してください
6.4 Oracle Tuxedoアプリケーションの定義
Tuxedo ART for IMSでIMS COBOLアプリケーションを実行するには、次のサーバーをTuxedoアプリケーションで起動する必要があります。
ARTICTL - 3270端末との接続を担当するサーバー
ARTIMPP - MPPアプリケーションの実行を担当するサーバー
ARTIBMP - BMPアプリケーションの実行を担当するサーバー
詳細は、Oracle Tuxedoドキュメントのファイル形式、データ記述方法、MIBおよびシステム・プロセスのリファレンスの第5項UBBCONFIG(5)および『Oracle Tuxedo Application Runtime for IMSリファレンス・ガイド』のTuxedo ART for IMSサーバー・パラメータに関する項を参照してください
6.5 MPP COBOLプログラムの実行
MPPプログラムDFSIVAP1を実行するには、3270端末を開き、UBBCONFIGファイルで定義されているホスト名およびポートを使用してARTICTLサーバーに接続し、画面を書式設定して、トランザクション・コードTRAN1を入力します。DFSIVAP1.gntがARTIMPPサーバーによって起動されます。
6.6 BMP COBOLプログラムの実行
BMPプログラムDFSIVAP2を実行するには、ユーザーは、ART Workbenchによってz/OS上の対応するJCLをシェル・スクリプトに変換し、それをJOBとしてART Batchランタイムによって実行できるようにする必要があります。そのJOBによって、ユーティリティDFSRRC00が起動され、ARTIBMPサーバーによって公開されている特定のサーバーが起動され、それによってリクエストされたCOBOLアプリケーションが起動されます。詳細は、ART Workbenchのドキュメントを参照してください。