7 z/OS上のIMSからUNIX上のOracle Tuxedo Application Runtime for IMS UsersへのCアプリケーションの移行
z/OS上のIMSの制御の下に実行されているCアプリケーションを移行するには、次のステップを実行する必要があります。
prepro-ims.pl
を使用してCソース・コードを変換します- z/OS上のIMSマクロに従って、Tuxedo ART for IMSの構成ファイルをカスタマイズします。
- Tuxedo ART for IMSサーバーで構成されているOracle Tuxedoアプリケーションを定義および起動し、3270端末上でトランザクション・コードを送信することで、目的のCアプリケーションを実行するか、ARTバッチ・ランタイムによってJOBを実行します。
- Cソース・ファイルおよび依存関係ヘッダーファイルをUNIX上のローカル・ディレクトリにダウンロードします。
たとえば、2つのCソース・プログラムおよびims.hがダウンロードされます。
testmpp1.c
はMPPプログラムですtestbmp1.c
はBMPプログラムですims.h
は、IBM IMSでサポートされているヘッダー・ファイルです。 - ソース・コードを変換します
prepro-ims.pl -i source-file -o dest-file [-m yourmakefile]
メインフレームのims.hも、
prepro-ims.plで処理できます。"??=
"または"#pragma
"で始まる行はコメントアウトされます。 - 構成ファイルを設定します
MPPプログラムを実行するには、下のリスト5に示すプログラムに対応するトランザクション・コードが必要です。
リスト5 imstrans.descの例
[imstran] name=TRAN3 response=no edit=ULC appname=TESTMPP1 class=1
ファイルimsapps.descでLANGを構成します。LANGは、次のように、実行するプログラムがCOBOLまたはCタイプであることを示します。
リスト6 2つのアプリケーションを定義するimsapps.desc
[imsapp] name=TESTMPP1 type=TP LANG=C [imsapp] name=TESTBMP1 type=BATCH LANG=C
IMSでアプリケーションを実行するには、1つのPSBが必要です。Tuxedo ART for IMSでは、アプリケーションのPSBマクロは
.psb
構成ファイルにマップされます。MPPプログラムの場合、その.psb
ファイルの接頭辞はアプリケーション名、つまり、$appname.psb
である必要があります。BMPプログラムの場合、その.psb
ファイルの接頭辞はIMSアプリケーションのネーミング・ルールに従った任意の名前にすることができます。TESTMPP1
およびTESTBMP1
の.psb
ファイルは、次のとおりです。1つのI/O PCBおよび.psb
に定義されているPCBは、Cプログラムが起動されたときにそのパラメータとしてそのプログラムに渡されます。リスト7 TESTMPP1.psbの例
TESTMPP1.psb [imspcb] modify=yes express=no [imspcb] modify=yes express=no
リスト8 2つの代替PCBを持つTESTBMP1.psb
TESTBMP1.psb [imspcb] type=GSAM name=DFSIVD6I procopt=G [imspcb] type=GSAM name=DFSIVD6O procopt=LS [imspcb] type=GSAM name=TSTIVD6O procopt=LS
- Cソース・ファイルおよび依存関係ヘッダーファイルをUNIX上のローカル・ディレクトリにダウンロードします。
- ソース・コードをコンパイルします。
makefileを変更し、
gmake
を実行します。ZOSINC=-I/path/containing/ims/header/from/mainframe
を設定することでmakefileを変更します。1つのプログラムに複数のソース・ファイルが必要であるため、makefileを変更します。
例:
testmpp.c
は、libartimstestmpp.so
にコンパイルされますtestbmp.c
は、libartimstestbmp.so
にコンパイルされます構成ファイルの
APPNAME
は、プリプロセッサによって変換されたアプリケーション名と同じであることが必要です。つまり、
<filename> corresponds libartims<filename>.so
となります。 - ライブラリ検索パスを設定します。
環境変数
LD_LIBRARY_PATH
は、その元のリストの最初にこれらのライブラリ・ファイルが含まれているディレクトリを追加することで再定義する必要があります。ただし、
たとえば、LD_LIBRARY_PATH
はLinuxおよびSolarisのみに対応します。AIXでは、かわりにLIBPATH
が使用されます。libartimstestmpp.so
およびlibartimstestbmp.so
は、LD_LIBRARY_PATH
(Linux/Solaris)またはLIBPATH(AIX)
の下に配置されている必要があります。
7.1 MPP Cプログラムの実行
MPP
プログラムtestmpp
を実行するには、3270端末を開き、UBBCONFIG
ファイルで定義されているホスト名およびポートを使用してARTICTL
サーバーに接続し、画面を書式設定して、トランザクション・コードTRAN3
を入力します。testmpp
がARTIMPP
サーバーによって起動されます。