マクロ

本章では、各マクロの使用方法とキーワードについて説明します。

IMS/DCでサポートされるキーワードを受け入れることはできますが、本章で説明していないキーワードは使用されません。

1. APPLCTN

APPLCTNマクロは、アプリケーション・プログラムに必要なリソースを定義します

APPLCTNマクロに続くTRANSACTマクロは、アプリケーションを使用するトランザクションを指定します。

  • 使用方法

    >>-APPLCTN--PSB=name-------------------------------------------->
    
    >--+-------------------------------------------------+---------->
       |             .-TP----.           .-,1-----.      |
       '-,PGMTYPE=-(-+-------+-+-------+-+--------+----)-'
                     '-BATCH-' '-,OVLY-' '-,class-'
    
    >--+------------------------+--+------------------+------------><
       |           .-SERIAL---. |
       '-,SCHDTYP=-+----------+-'
                   '-PARALLEL-'
    Keywords 説明

    PSB

    PSB名を指定します

    PGMTYPE

    プログラムのタイプとクラスを指定します。

    • TP : MPP領域で実行されます。

    • BATCH : BMP領域で実行されます。

    • OVLY : 未使用のパラメータまたは既存の構文との互換性を維持するために使用されます。

    • class : アプリケーションを使用するトランザクション・クラスが指定されていない場合、このマクロで使用したクラスがデフォルト値として使用されます。

    SCHDTYP

    スケジューリング・タイプを指定します。

    • SERIAL : プログラムは複数のサーバー(従属領域)で同時に実行されず、一度に1つのサーバーでのみ実行されます。

    • PARALLEL : 複数のサーバー(依存領域)で同時に実行できます。

2. DATABASE

DATABASEマクロは、OSIで使用するデータベースを定義します。

  • 使用方法

                       .-,----.
                       V      |
    >>-DATABASE--DBD=(---name-+-)----------------------------------><

3. NAME

NAMEマクロは、物理端末と関連付けられる論理端末名を定義します。

NAMEマクロは、TERMINALマクロの下位に定義します。TERMINALマクロの下に物理端末と関連付けられる論理端末のNAMEマクロを1つ以上定義します。

  • 使用方法

               .-,-----.
               V       |
    >>-NAME--+---lterm-+-------------------------------------------->
    Keywords 説明

    lterm

    TERMINALマクロの物理端末と関連付けられるLTERM名を指定します。

4. TERMINAL

TERMINALマクロは、物理端末の属性を指定します。

TERMINALマクロは、TYPEマクロの下位に定義します。端末のタイプを指定するTYPEマクロの下に1つ以上のTERMINALマクロを定義します。

  • 使用方法

    >>-TERMINAL--NAME=nodename-------------------------------------->
    
    >--+----------------------------+------------------------------->
       |            .-CONSOLE--.    |
       '-COMPT1=+-(-+----------+-)--'
                    '-PRINTER1-'
    
    >--+----------------------------------------------------+------->
       '-,FEAT=--(--+-----+--)------------------------------'
                    +-F1--+
                    +-F2--+
                    +-F3--+
                    +-F4--+
                    +-F5--+
                    +-F6--+
                    +-F7--+
                    +-F8--+
                    +-F9--+
                    '-F10-'
    
    >--+-----------------------------+-----------------------------><
       |               .-PROT---.    |
       '-,OPTIONS=-+-(-+--------+-)--'
                       '-UNPROT-'
    Keywords 説明

    NAME

    物理端末名を指定します

    COMPT1

    端末のコンポーネント・タイプを指定します。

    • CONSOLE : コンソール・タイプ

    • PRINTER1 : プリンター・タイプ

    FEAT

    端末の機能を指定します。

    • F1...F10 : ユーザー定義の機能コードを指定します。MFSではコードに該当する機能を使用できます。

    OPTIONS

    端末と関連付けられている特定の通信オプションを指定します。

    • PROT : 端末を保護モードにし、その端末に送信されるメッセージをブロックします。メッセージを受信するには、PA1またはPA2キーを使用します。

    • UNPROT : 端末を非保護モードにし、その端末にメッセージを送信します。

5. TRANSACT

TRANSACTマクロは、トランザクションの名前と属性を指定します。

TRANSACTマクロは、APPLCTNマクロの下位に定義します。APPLCTNマクロの下に1つ以上のTRANSACTマクロを指定できます。トランザクションは、上位レベルのマクロであるAPPCLTNで指定したアプリケーションを使用します。

  • 使用方法

                          .-,----------------.
                          V                  |
    >>-TRANSACT--CODE=(-----transaction code-+---)------------------>
    
    >--+------------------------------+----------------------------->
       |         .-UC--.              |
       '-,EDIT=(-+-----+-,-+------+-)-'
                 '-ULC-'   '-name-'
    
    >--+------------------------------------------------------+----->
       |            .-MULTSEG-. .-,NONRESPONSE-. .-,1-----.   |
       '-,MSGTYPE=(-+---------+-+--------------+-+--------+-)-'
                    '-SNGLSEG-' '-,RESPONSE----' '-,class-'
    
    >--+-------------------------------------------+---------------->
       |            .-65535-. .-,65535---------.   |
       '-,PROCLIM=(-+-------+-+----------------+-)-'
                    '-count-' '-,limit seconds-'
    
    >--+--------------------------------------------------+--------->
       |         .-1------. .-,1-----. .-,65535-------.   |
       '-,PRTY=(-+--------+-+--------+-+--------------+-)-'
                 '-normal-' '-,limit-' '-,limit count-'
    
    >--+--------------------+--------------------------------------->
       |           .-0----. |
       '-,SEGSIZE=-+------+-'
                   '-size-'
    
    >--+------------------+------+--------------------------+------->
       |          .-NO--. |      |            .-,STRUNC-.   |
       '-,SERIAL=-+-----+-'      '-,SPA=(size-+---------+-)-'
                  '-YES-'                     '-,RTRUNC-'
    >--+----------+-------------------------------------------------><
       '-,WFI-----'
    Keywords 説明

    CODE

    トランザクション名を指定します。

    同じ属性を持つ複数のトランザクションを指定できます。

    EDIT

    入力メッセージがトランザクションに送信される前に前処理を実行します。

    • UC : 入力メッセージの小文字を大文字に変換します。

    • ULC : 入力メッセージの小文字を変換しません。

    • name : 現在サポートされていません。このオプションは、互換性のために受け入れます。

    MSGTYPE

    トランザクションのメッセージ処理タイプとクラスを指定します。

    • MULTSEG : マルチ・セグメントを使用します。

    • SNGLSEG : シングル・セグメントを使用します。OSIでは常にマルチ・セグメントを使用するため、これを無視します。

    • NONRESPONSE : 端末がメッセージの入力後に応答を受信していない状態でも、メッセージを送信できます。

    • RESPONSE : 端末がメッセージの入力後に応答を受信するまで、メッセージを送信できません。

    • class : トランザクション・クラスを指定します。省略した場合は、APPLCTNのクラスが使用されます。

    PROCLIM

    トランザクション・メッセージ処理の制約を指定します。

    • count : アプリケーション・プログラムをロードするとき、再ロードせずに処理できるメッセージの最大数を指定します。現在OSIでは使用されません。

    • limit seconds : トランザクションが1つのメッセージを処理するための制限時間です。メインフレーム・システムでのPROCLIM値はCPU時間として適用されますが、OpenFrameではトランザクション時間として処理しているため、実際には3倍を掛けた時間が適用されます。

    PRTY

    トランザクションの優先順位と属性を指定します。

    • normal : 一般的な場合の優先順位です。

    • limit , limit count : 特定のトランザクションをターゲットとするメッセージが制限値を超えてキューイングされた場合、優先順位を制限に変更します。メッセージの数が0になったら、優先順位はnormalに変更されます。現在このオプションはサポートされていません。

    SEGSIZE

    セグメントの最大長を指定します。

    SERIAL

    トランザクションのシリアル処理のためのオプションです。

    • YES : トランザクションをシリアル処理します。プログラムは複数の従属領域で同時に実行されるのではなく、一度に1つのサーバーでのみ実行されます。

    • NO : トランザクションをシリアル処理しません。複数の従属領域で同時に実行できます。

    SPA

    SPA(Scratch pad area)のサイズを指定します。

    • size : SPAの長さを設定します。

    • STRUNC, RTRUNC : OSIでは使用されません。

    WFI

    BMPトランザクションの属性として制限されます。MQにデータがない場合でも、トランザクションが終了されずに待機する機能です。

6. TYPE

TYPEマクロは、端末の集合の属性を指定します。

一連のマクロ・ステートメント (マクロ TERMINAL および NAME を含む) の始まりを定義

TYPEマクロの後に、1つ以上のTERMINALマクロを定義できます。TYPEマクロでは、TERMINALマクロのオプション・キーワード(EDIT、LTERM、COMPT、COMPT1〜COMPT4を除く)を指定できます。指定した値は、後続のTERMINALマクロのデフォルト値を提供します。

  • 使用方法

    >>-TYPE--------------------------------------------------------><

7. COPY

COPYマクロは、osisdgenの実行時に指定されたファイルだけでなく、同じディレクトリ内の他のファイルのシステム定義も同時に登録します。

COPYマクロは、パラメータとしてファイル名が必要です。指定したファイル名が同じディレクトリに存在しない場合は無視されます。

  • 使用方法

    >>-COPY--filename---------------------------------------------><
  • osisdgenの実行例

    TESTCOPYファイルとTEST0が同じディレクトリに存在し、TESTCOPYに次のようなCOPYマクロが存在する場合の例です。

    ...
    COPY TEST0
    ...
    $ osisdgen -d TESTCOPY IMSA
    [2020-12-30T10:30:32.438748] [osisdgen(5733)          ] [M] [OSI7203M] Processing result : Success[43], Ignore[0], Error[0]
    =================================
    Copy sd file TEST0
    =================================
    [2020-12-30T10:30:32.474049] [osisdgen(5739)          ] [M] [OSI7203M] Processing result : Success[4], Ignore[0], Error[0]