7 z/OS上のIMSからUNIX上のOracle Tuxedo Application Runtime for IMS UsersへのCアプリケーションの移行

z/OS上のIMSの制御の下に実行されているCアプリケーションを移行するには、次のステップを実行する必要があります。

  1. prepro-ims.plを使用してCソース・コードを変換します
  2. z/OS上のIMSマクロに従って、Tuxedo ART for IMSの構成ファイルをカスタマイズします。
  3. Tuxedo ART for IMSサーバーで構成されているOracle Tuxedoアプリケーションを定義および起動し、3270端末上でトランザクション・コードを送信することで、目的のCアプリケーションを実行するか、ARTバッチ・ランタイムによってJOBを実行します。
    1. Cソース・ファイルおよび依存関係ヘッダーファイルをUNIX上のローカル・ディレクトリにダウンロードします。

      たとえば、2つのCソース・プログラムおよびims.hがダウンロードされます。

      testmpp1.cはMPPプログラムです

      testbmp1.cはBMPプログラムです

      ims.hは、IBM IMSでサポートされているヘッダー・ファイルです。

    2. ソース・コードを変換します

      prepro-ims.pl -i source-file -o dest-file [-m yourmakefile]

      メインフレームのims.hも、prepro-ims.plで処理できます。"??="または"#pragma"で始まる行はコメントアウトされます。

    3. 構成ファイルを設定します

      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
  4. ソース・コードをコンパイルします。

    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となります。

  5. ライブラリ検索パスを設定します。

    環境変数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を入力します。testmppARTIMPPサーバーによって起動されます。

7.2 BMP Cプログラムの実行

BMPプログラムtestbmpを実行するには、ユーザーは、ART Workbenchによってz/OS上の対応するJCLをシェル・スクリプトに変換し、それをJOBとしてART Batchランタイムによって実行できるようにする必要があります。そのJOBによって、ユーティリティDFSRRC00が起動され、ARTIBMPサーバーによって公開されている特定のサーバーが起動され、それによってリクエストされたCアプリケーションが起動されます。詳細は、ART Workbenchのドキュメントを参照してください。